React native Const vs Class函数是React Native函数

React native Const vs Class函数是React Native函数,react-native,React Native,我最近一直在看一些关于RN的教程,我注意到其中一些在创建组件时不使用class,而是使用const。下面的代码显示了该特定教程应用程序的主屏幕。我的问题是:他们这样做而不使用类有什么原因吗?还有,这有关系吗?您使用const而不是class有什么特别的原因吗 const HomeScreen = ({ navigation }) => { return ( <View> <Text style={styles.textStyle}>

我最近一直在看一些关于RN的教程,我注意到其中一些在创建组件时不使用class,而是使用const。下面的代码显示了该特定教程应用程序的主屏幕。我的问题是:他们这样做而不使用类有什么原因吗?还有,这有关系吗?您使用const而不是class有什么特别的原因吗

const HomeScreen = ({ navigation }) => {
    return (
      <View>
        <Text style={styles.textStyle}>This is the Home Screen</Text>
        <Button title="Go to Components Demo"
          onPress={() => navigation.navigate('Components')}
        />
        <Button title="Go to list demo"
          onPress={() => navigation.navigate('List')}
        />
        <Button title="Go to Image Screen"
        onPress={() => navigation.navigate('Image')}
        ></Button>
        <Button title="Go to Counter"
        onPress={() => navigation.navigate('Counter')}
        ></Button>
        <Button title="Colors"
        onPress={() => navigation.navigate('Color')}
        ></Button>
        <Button title="Squares"
        onPress={() => navigation.navigate('Square')}
        ></Button>
      </View>
    );
  };


const styles = StyleSheet.create({
  textStyle: {
    fontSize: 30,
    textAlign: "center"
  },
});

export default HomeScreen;
const主屏幕=({navigation})=>{
返回(
这是主屏幕
navigation.navigate('Components')}
/>
navigation.navigate('List')}
/>
导航。导航('Image')}
>
navigation.navigate('Counter')}
>
导航。导航('Color')}
>
navigation.navigate('Square')}
>
);
};
const styles=StyleSheet.create({
文本样式:{
尺寸:30,
textAlign:“居中”
},
});
导出默认主屏幕;

如果不使用state,则应使用const,它被称为无状态函数。这是关于性能的。如果使用state,则必须使用class。(react的早期版本)如果升级react native并使用挂钩,则情况会有所不同


我认为您应该检查类与无状态函数的关系

您发布的示例是一个
无状态函数组件
。它只是一个分配给变量
const HomeScreen=
的JavaScript
箭头函数。您也可以将其编写为标准匿名函数:

// the props you give to <HomeScreen/> get passed as parameter to the function
// by React. You can destructure them right in place, like with ({navigation}).

const HomeScreen = function({ navigation }) {
   ...
   return (...)
}
//作为参数传递给函数的道具
//通过反应。您可以在适当的位置分解它们,就像({navigation})。
常量主屏幕=函数({navigation}){
...
返回(…)
}
无状态函数组件没有状态。如果您不需要状态和生命周期方法等,可以使用它们。此外,还可以使用挂钩将它们转换为有状态功能组件

钩子是预定义的函数,可以在函数组件内部使用,以增强其状态、生命周期管理等功能,但这是一个更广泛的主题

如果没有钩子,您可以使用无状态组件而不是类组件来保持代码的小型化(函数而不是类,没有这个,没有呈现函数,只需返回,通过导入函数并在组件内部使用它来更轻松地重用代码)


为了提高性能,您需要再次使用钩子(例如useMemo()钩子)。习惯挂钩的概念需要一些时间,但这是值得的。我现在更喜欢它们而不是类组件,主要是因为代码更干净。

这取决于您的React版本和使用状态

有一个简单的技巧,(如果您的react版本高于16.8.0) 选择你想要的

如果没有,并且您的组件没有状态使用,您可以使用功能组件而不是基于类的组件。没有区别