React<二>入门
前言这是一篇打基础的文章,通过本文的基础学习,会发现打开了新世界的大门,要实现以下几个目标
学习一门技术的最快的方式就是看它的文档,跑官方的demo. 快速开始我使用chrome浏览器,在分离文件时,文档中说要通过http服务,linux下可以创建软链,于是我在在服务器的网站目录下,软链到了现在的项目,这样就能继续使用这个项目的目录,同时又能跑在http服务上。 ln -s /Users/wang-xuan/project/react /XAMPP/xamppfiles/hthocs/react -s 后面是源文件路径 最后是目标文件路径 提高开发效率1.sublime设置 2.React调试工具 教程资源加载
总结
实战进展真正自己去编写代码才能有真正的成长,没有其它人可以代替你,选择一个自己感兴趣的小功能去亲自实战吧,我的实战可以作为你的参考。 在教程中学习了组件的解偶及事件的合适挂载位置,将它应用在实战中:
我重构了React<一>初接触的简历小管家 深入理解 React总结项目的构建过程
问题
实战进展
为什么使用React构建随着时间数据不断变化的大规模应用程序 数据呈现数据呈现的理念React最大的特点就是虚拟DOM,万不得已不会操作真实DOM,主要是通过数据来改变页面的显示,页面分割为若干个组件,每个组件只能渲染单个根节点,接受 props 和 state 来控制数据。 语法React用JSX语法,可以用 HTML 语法去写 JavaScript 函数调用。 深入理解 JSXJSX 里约定分别使用首字母大、小写来区分本地组件的类和 HTML 标签。 转换JSX 把类 XML 的语法转成纯粹 JavaScript var Nav,Profile; // 输入 (JSX): var app = <Nav color="blue"><Profile>click</Profile></Nav>; // 输出 (JS): var app = React.createElement( Nav,{color:"blue"},React.createElement(Profile,null,"click") ); JavaScript 表达式用{}包围,可以是变量、表达式、子节点和注释 表达式 var person = <Person name={window.isLoggedIn ? window.name : ''} />; 子节点 var content = <Container>{window.isLoggedIn ? <Nav /> : <Login />}</Container>; 注释 {/* 一般注释,用 {} 包围 */} 实战进展简历小管家规范化注释 JSX的延展属性如果想要对props属性进行修改和扩展 var component = <Component />; component.props.foo = x; // 不好 好的方式: var props = {}; props.foo = x; var component = <Component {...props} />; JSX 的陷阱JSX 的文本中可以直接使用HTML实体, <td>·已投递公司</td>
但是要在表达式中传递实体会有问题 // 错误: 会显示 “First · Second” <div>{'First · Second'}</div> 4种解决方法:
富交互性的动态用户界面事件处理用React写事件是基本不用做兼容性处理的,也不用给组件的事件处理绑定this,因为它的底层已经处理好了,而且很高效。 复合组件复合方式父组件中通过render返回子组件的方式,将自组件复合起来,Parent 能通过专门的 子级校正及key的意义什么是子级校正校正就是每次 render 方法调用后 React 更新 DOM 的过程。 key的意义通过给子级设置惟一标识的 key,会确保它们被重新排序(而不是破坏)或者删除(而不是重用)。 // 错误! // 子组件ListItemWrapper中 return <li key={this.props.data.id}>{this.props.data.text}</li>; // 正确 :) // 父组件生成子组件时 return <ListItemWrapper key={result.id} data={result}/>; 性能父级控制数据变化,通过props传递给子组件的过程是一个遍历子组件的过程,本身性能就很好,还可以通过shouldComponentUpdate() 方法返回 false ,来跳过一些子组件提高性能 可复用组件复用是一项非常有用的技术,React组件为复用提供了简单、安全的方式,可以设置默认值,还可以对数据进行校验,还可以实现组件及逻辑的复用 Mixins当一些组件需要共用一些耗性能的逻辑,我们希望这个通用的逻辑只存于调用这段逻辑的生命周期,Mixins可以做到! 传递 PropsReact以组件的形式进行封装,用props来进行数据间的传递。
如果上层传递过来的属性有很多,向下传递的属性也很多,一个一个传递事不现实的,需要批量传递,批量的同时又要摘除本层使用的属性。
表单组件在刚开始写React的表单时会感觉奇怪,设置了value后无法在表单中输入值,react由于自身的限制:node.getAttribute('value')一直是初始值,值不能改变。 浏览器中的工作原理DOMReact是很快的,因为它从不直接操作DOM。React在内存中维护一个快速响应的DOM描述。render()方法返回一个DOM的描述,React能够利用内存中的描述来快速地计算出差异,然后更新浏览器中的DOM。 生命周期
关于Refs的更多内容不要试图操作虚拟DOM,过Refs和findDOMNode()操作已挂载的DOM。 工具和插件找自己感兴趣的进行探究 学习资源推荐精益 React 学习指南 (Lean React) 相关博客React<一>初接触 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |