在 React-Native 中渲染
Rendering in React-Native
我对 React Native 比较陌生,一般来说用 UI 构建任何东西。我想知道在编写应用程序时什么时候使用 render{}
函数是合适的。我问这个是因为我想知道对应用程序的影响。例如,如果我创建一个 <LinkedIcon>
组件并尝试在一个屏幕上显示大量组件,那么每个点都应该调用 render
。如果不是,我会怎么做。
示例代码:
import React, { Component } from "react";
import { Linking, View, TouchableHighlight } from "react-native";
import Icon from "react-native-vector-icons/FontAwesome";
class LinkedIcon extends Component<Props> { //will show about up to 20 on one screen
render() {
return (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
);
}
}
export default LinkedIcon;
也许有人可以提供更好的答案,但据我了解,如果您有需要操作的本地状态,您会希望使用 class
。它与 class 与非 class 组件的文件大小有关。在这种情况下,我建议让你的文件成为一个哑组件,因为没有本地状态。你只是从父级传递道具。
const LinkedIcon = props => (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
)
希望对您有所帮助!
您的组件看起来可以作为 stateless/functional 组件实现,但您无法访问 React Native 生命周期方法,这使得组件更 lightweight/faster。
作为 functional/stateless 组件的 LinkedIcon 组件可能如下所示:
const LinkedIcon = (props) => {
return (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
);
}
现在您可以轻松地在可能是有状态组件的父组件中实例化多个 LinkedIcons,您可以在其中处理 LinkedIcons 状态(如果需要)。
class Main extends Component {
render(){
return (
<View>
<LinkedIcon .../>
<LinkedIcon .../>
...
</View>
);
}
}
我对 React Native 比较陌生,一般来说用 UI 构建任何东西。我想知道在编写应用程序时什么时候使用 render{}
函数是合适的。我问这个是因为我想知道对应用程序的影响。例如,如果我创建一个 <LinkedIcon>
组件并尝试在一个屏幕上显示大量组件,那么每个点都应该调用 render
。如果不是,我会怎么做。
示例代码:
import React, { Component } from "react";
import { Linking, View, TouchableHighlight } from "react-native";
import Icon from "react-native-vector-icons/FontAwesome";
class LinkedIcon extends Component<Props> { //will show about up to 20 on one screen
render() {
return (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
);
}
}
export default LinkedIcon;
也许有人可以提供更好的答案,但据我了解,如果您有需要操作的本地状态,您会希望使用 class
。它与 class 与非 class 组件的文件大小有关。在这种情况下,我建议让你的文件成为一个哑组件,因为没有本地状态。你只是从父级传递道具。
const LinkedIcon = props => (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
)
希望对您有所帮助!
您的组件看起来可以作为 stateless/functional 组件实现,但您无法访问 React Native 生命周期方法,这使得组件更 lightweight/faster。
作为 functional/stateless 组件的 LinkedIcon 组件可能如下所示:
const LinkedIcon = (props) => {
return (
<TouchableHighlight>
<Icon title="circle" size={15} />
</TouchableHighlight>
);
}
现在您可以轻松地在可能是有状态组件的父组件中实例化多个 LinkedIcons,您可以在其中处理 LinkedIcons 状态(如果需要)。
class Main extends Component {
render(){
return (
<View>
<LinkedIcon .../>
<LinkedIcon .../>
...
</View>
);
}
}