Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 常数=()=>;Resact Native中的vs类函数函数名(){}_Reactjs_React Native_Components - Fatal编程技术网

Reactjs 常数=()=>;Resact Native中的vs类函数函数名(){}

Reactjs 常数=()=>;Resact Native中的vs类函数函数名(){},reactjs,react-native,components,Reactjs,React Native,Components,我是一个新的本地人,我对组件有点困惑 当我创建第一个react native应用程序时,我看到app.js中的组件是按照以下代码创建的: export default function App() { ... } const FirstComponents = () => { ... } export default class FirstComponents extends Components(){ ... } 正如我看到的教程所示,许多人几乎所有人都按照以下代码制作组件

我是一个新的本地人,我对组件有点困惑

当我创建第一个react native应用程序时,我看到app.js中的组件是按照以下代码创建的:

export default function App() {
 ...
}
const FirstComponents = () => {
  ...
}
export default class FirstComponents extends Components(){
 ...
}
正如我看到的教程所示,许多人几乎所有人都按照以下代码制作组件:

export default function App() {
 ...
}
const FirstComponents = () => {
  ...
}
export default class FirstComponents extends Components(){
 ...
}
我还混淆了根据以下代码创建的函数组件和基于类的组件:

export default function App() {
 ...
}
const FirstComponents = () => {
  ...
}
export default class FirstComponents extends Components(){
 ...
}
函数和类基组件之间的区别是什么


请给我举例说明答案。您的时间将不胜感激。

前两段在声明方面是相似的。两者都是功能组件。这些组件不同于基于类的组件。有几个不同之处:

  • 只能用于功能组件,不能基于类
  • 构造函数用于在类组件中初始化
    ,但在函数中不需要
  • 生命周期挂钩在功能组件中不可用,它们是类组件的一部分
  • 您可以将钩子用于生命周期钩子,如
    componentDidMount
    举个简单的例子:

    function App(){
    
        const [count, setCount] = useState('');
    
    }
    
    在上面的示例中,
    “count”
    是组件的本地状态属性,
    setCount
    是更新状态的方法

    class App extends React.Component{
       constructor(props){
          super(props);
          this.state = { count: 0 };
          this.increaseCount = this.increaseCount.bind(this);
       }
    
       increaseCount(){
          this.setState({count: this.count+1});
       }
       // lifecycle methods like componentDidMount, componentDidUpdate etc.
       render(){
          return(
            <button onClick={this.increaseCounter}>INCR</button>
          );
       }
    
    }
    
    类应用程序扩展了React.Component{
    建造师(道具){
    超级(道具);
    this.state={count:0};
    this.increaseCount=this.increaseCount.bind(this);
    }
    递增计数(){
    this.setState({count:this.count+1});
    }
    //生命周期方法,如componentDidMount、componentDidUpdate等。
    render(){
    返回(
    增量
    );
    }
    }
    
    在这个类组件中,您可以看到状态是在构造函数中定义的,并且已使用
    setState
    方法对其进行了更新


    实时示例太多,无法添加,我建议您使用简单示例来掌握概念。

    在javascript中,创建函数有多种方法。例如:

    function myFunction () {
    //some action
    }
    const myFunction = () => {
    //some action
    }
    
    这两个函数是相同的

    现在,问题的第二部分是“功能组件和基于类的组件之间有什么区别?”

    过去,基于类的组件用于控制
    状态
    和生命周期方法(ComponentDidMount等…)。如果您在组件或生命周期方法中未使用
    state
    ,则将使用基于函数的组件。基本上,如果您有一个只有一些UI内容的小组件,那么最好使用功能组件。但是,React版本16.8 React团队引入了
    挂钩


    钩子为状态和组件生命周期方法等提供了相同的概念。使用钩子,您可以控制组件,即使它们是功能组件。

    有关类和功能组件的简单搜索将产生数百万篇文章,因此问题、教程、从类到功能组件的迁移方法,....@Amir Mousavi我搜索了一下,但没有找到最好的解决方案,因为我知道有很多开发人员,他们可以给我一些逻辑上的答案,如下所示