[React网络整理]React之State的学习笔记
HTML标签对比React组件React 可以渲染 HTML 标签 (strings) 或 React 组件(classes) 。 var myDivElement = <div className="foo" />;
React.render(myDivElement,document.getElementById('example'));
要渲染 React 组件,只需创建一个大写字母开头的本地变量。 var MyComponent = React.createClass({/*...*/});
var myElement = <MyComponent someProperty={true} />;
React.render(myElement,document.getElementById('example'));
自定义HTML属性如果往原生 HTML 元素里传入 HTML 规范里不存在的属性,React 不会显示它们。如果需要使用自定义属性,要加data- 前缀。 <div data-custom-attribute="foo" />
以 aria- 开头的 [网络无障碍] 属性可以正常使用。 <div aria-hidden={true} />
State工作原理常用的通知 React 数据变化的方法是调用 setState(data,callback)。这个方法会合并(merge) data 到this.state,并重新渲染组件。渲染完成后,调用可选的 callback 回调。大部分情况下不需要提供 callback,因为 React 会负责把界面更新到最新状态。 哪些组件应该有State?大部分组件的工作应该是从 props 里取数据并渲染出来。但是,有时需要对用户输入、服务器请求或者时间变化等作出响应,这时才需要使用 State。 哪些应该作为State?State 应该包括那些可能被组件的事件处理器改变并触发用户界面更新的数据。 真实的应用中这种数据一般都很小且能被 JSON 序列化。当创建一个状态化的组件时,想象一下表示它的状态最少需要哪些数据,并只把这些数据存入this.state。在 render() 里再根据 state 来计算你需要的其它数据。你会发现以这种方式思考和开发程序最终往往是正确的,因为如果在 state 里添加冗余数据或计算所得数据,需要你经常手动保持数据同步,不能让 React 来帮你处理。 哪些不应该作为State?this.state 应该仅包括能表示用户界面状态所需的最少数据。因些,它不应该包括:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |