当前位置: 首页 > news >正文

彩票网站什么做北京市建设工程发包承包交易中心

彩票网站什么做,北京市建设工程发包承包交易中心,深圳网站建设工作,定制开发app的注意事项Reactjs 踏坑指南1#xff1a; 知识点 什么是React虚拟DOMJSX组件生命周期和状态事件单项数据流Reactjs和Angularjs的对比React简介 React是一个Facebook开发的UI库。使用这个库可以很方便的开发交互式的、具有表达力的和可重用的UI组件。本身并不是一个框架#xff0c;可视为…Reactjs 踏坑指南1 知识点 什么是React虚拟DOMJSX组件生命周期和状态事件单项数据流Reactjs和Angularjs的对比React简介 React是一个Facebook开发的UI库。使用这个库可以很方便的开发交互式的、具有表达力的和可重用的UI组件。本身并不是一个框架可视为是视图层并且是一个以组件为基础的高效视图。对于React应用而言你需要分割你的页面使其成为一个个的组件。也就是说你的应用是由一个个组件构成的。这种分割、复用组件的方式开发页面我们称之为组件驱动开发。 这个库还使用了一种叫做虚拟DOMVirtual DOM的概念这些DOM可以根据状态有选择的渲染。这样页面就会尽量的减少DOM操作而达到保持页面状态的效果。 React JSFiddle 在线编辑工具React 入门示例虚拟DOM 用于优化视图的渲染和刷新。以前我们更新视图时需要先清空DOM容器中的内容然后将最新的DOM和数据追加到容器中现在React将这一操作放到了内存中。 详细说明一下 虚拟 DOM 是在 DOM 的基础上建立了一个抽象层我们对数据和状态所做的任何改动都会被自动且高效的同步到虚拟 DOM最后再批量同步到 DOM 中。 React 会在内存中维护一个虚拟 DOM 树当我们对这个树进行读或写的时候实际上是对虚拟 DOM 进行的。当数据变化时然后 React 会自动更新虚拟 DOM然后拿新的虚拟 DOM 和旧的虚拟 DOM 进行对比找到有变更的部分得出一个Patch然后将这个 Patch 放到一个队列里最终批量更新这些 Patch 到 DOM 中。 这样的机制可以保证即便是根节点数据的变化最终表现在 DOM 上的修改也只是受这个数据影响的部分可以保证非常高效的渲染。 关于虚拟DOM diff算法的详细分析 因为React使用了虚拟DOM因此借助这种方式使得在服务端渲染输出HTML成为可能。 JSX JSX在ECMAScript的基础上提供了类似于XML的扩展。 JSX in depth组件 使用ReactDOM的render方法的时候第一个参数是需要渲染的我们创建的组件第二个是HTML的DOM节点组件渲染之后在这里添加。我们可以使用createClass方法创建组件。 var MyComponent React.createClass({render: function(){return (h1Hello, world!/h1);} }); 复制代码 注意 类名一定要首字母大写添加组件属性时如果要使用class属性和for属性属性名不能直接用class和for因为他们两个是javascript的关键字用className和htmlFor代替组件创建好之后就可以在文档里渲染出来了 ReactDOM.render(MyComponent /,document.getElementById(mount-point) ); 复制代码 创建组件的时候可以给组件添加一些属性这些属性都存在于props中。这些属性可以通过this.props在组件内访问也可以在render方法渲染时使用。 var MyComponent React.createClass({render: function(){return (h1Hello, {this.props.name}!/h1);} });ReactDOM.render(MyComponent namehandsome /,document.getElementById(mount-point) ); 复制代码 生命周期和状态 生命周期 componentWillMount 在渲染之前调用一次。componentDidMount 在渲染之后调用一次。shouldComponentUpdate 返回值决定组件是否需要update。componentWillUnmount 在卸载组件之前调用。状态 getInitialState 返回State的初始值。getDefaultProps 获取props的初始值。mixins 一组对象主要用来扩展当前组件的功能。每一个组件都包含一个state对象和一个props对象。State状态用setState方法设置。调用setState方法会触发UI的更新也是实现交互式开发的必要基础。如果我们要在一开始设定初始状态initial state可以调用getInitialState方法。 state用来在创建组件的时候设置属性props用于渲染的时候生成想组件绑定属性 var MyComponent React.createClass({getInitialState:function(){return {count: 5};},render: function(){return (h1Hello, {this.state.count}!/h1);} }); 复制代码 事件 作为属性包含在组件中 var Counter React.createClass({incrementCount: function(){this.setState({count: this.state.count 1});},getInitialState: function(){return {count: 0}},render: function(){return (div classmy-componenth1Count: {this.state.count}/h1button typebutton onClick{this.incrementCount}Increment/button/div);} });ReactDOM.render(Counter /,document.getElementById(mount-point) ); 复制代码 单向数据流 在jquery时代我们都是基于事件驱动对于简单的交互需求而言这确实足够了而且开发起来非常迅速。但业务一旦复杂这种基于事件驱动的东西就会变得很乱页面需要更新的DOM很多就容易出错。 单向数据流的概念就出现了。更新 DOM 的数据总是从顶层流下来用户事件不直接操作 DOM而是操作顶层数据。这些数据从顶层流下来同时更新了DOM。你的代码就很少会直接处理DOM而是只处理数据的变更。这样会很大程度上简化代码和逻辑。 举个例子我点击一个button然后页面上一个span里数字1原有的思考逻辑是“点击发生然后数据变化然后UI跟着变化1”。而现在的思考逻辑是我的数据变化了那么我的UI会自动更新那么我只用考虑“点击发生数据变化”。甚至可以把UI和数据变化分层然后处理。 具体地说 在一个多组件结构里一个父组件需要负责管理状态并把数据通过props向下发放。 组件的状态通过setState方法更新。数据通过设置子组件的属性来传递给子组件子组件通过this.props来获取这些数据 例子1 实现一个动态查找框 var FilteredList React.createClass({filterList: function(event){var updatedList this.state.initialItems;updatedList updatedList.filter(function(item){return item.toLowerCase().search(event.target.value.toLowerCase()) ! -1;});this.setState({items: updatedList});},getInitialState: function(){return {initialItems: [Apples,Broccoli,Chicken,Duck,Eggs,Fish,Granola,Hash Browns],items: []}},componentWillMount: function(){this.setState({items: this.state.initialItems})},render: function(){return (div classNamefilter-listinput typetext placeholderSearch onChange{this.filterList}/List items{this.state.items}//div);} });var List React.createClass({render: function(){return (ul{this.props.items.map(function(item) {return li key{item}{item}/li})}/ul) } });ReactDOM.render(FilteredList/, document.getElementById(mount-point)); 复制代码 React和Angular的对比 Angular是框架React是类库。ng是一个完整的框架提供了比 React 多得多的建议和功能你只需要直接使用就可以了。而要用React开发者通常还需要借助别的类库来打造一个真正的应用。比如你可能需要react-router库来处理路由、redux或flux管理state、额外的库做测试以及管理依赖等等。 如果仅从框架这一点来看选择Angular还是React就像选择直接购买成品电脑还是买零件自己组装一样。 在大小方面由于ng是一个大而全的框架自带了更多的功能。而React只加载你需要的部件react要比ng小得多。很多应用其实用不到这种大型框架提供的所有功能。在这个越来越拥抱微服务、微应用、单一职责模块single-responsibility packages的时代React 通过让你自己挑选必要模块让你的应用大小真正做到量身定做。 React以JavaScript为中心把HTML放到JS里JavaScript远比HTML要强大。因此增强JavaScript让其支持标签要比增强HTML让其支持逻辑要合理得多。无论如何HTML与JavaScript 都需要某种方式以粘合在一起。 Angular是以HTML而非JavaScrip为中心的把“JS”放到HTML里。你必须学习学一大堆Angular特有的语法(标签)即ng框架特有的HTML补丁shim比如为HTML加入了循环语义的HTML特性。而React只需要你懂JS。
http://www.huolong8.cn/news/269103/

相关文章:

  • 做网站广告有哪些职位wordpress不显示中文图片
  • 网站开发基本语言手工制作收纳盒
  • 中山建网站多少钱曲靖市麒麟区建设局规划网站
  • 花都移动网站建设中小企业网站制作流程
  • 网站建设费怎么做分录企业app怎么做
  • 软件网站建设的目的织梦网站上传的文章只显示摘要不显示内容如何修改
  • 福州开发企业网站巴中网站建设网站推广
  • 淄博有做网站的吗腾讯企业邮箱注册申请
  • 公司怎么建立网站吗哪个网站可以学做标书
  • 做网站15年app设计原则
  • asp 网站开发教程云设计工具
  • 旅游做网站wordpress有中文版吗
  • 路桥网站建设做网站分成
  • 做网站公司怎么赚钱吗深圳证券网站开发
  • 网站建设分金手指专业二八建设部安全员证书查询网站
  • 如何做网站免费wordpress logo大小
  • 做版式的网站seo免费自助建站
  • 哪些网站做家政推广在哪找做调查赚钱的网站
  • 网站内部链接是怎么做的网站建设与运营的预算方案模板
  • 企业网站主要功能广州正规的网站建设
  • 刷赞网站推广永久禅城网页设计
  • 宜昌网站设计企业网站建设主要包括哪些内容
  • 中山做网站哪家便宜外包岗
  • 网站建设高度jsp网站建设毕业设计
  • 龙岗商城网站建设最好什么查看WordPress的用户名及密码
  • 程序网站开发公司装修效果图 办公室
  • 西安网站建设培训微信代理运营
  • 众筹网站开发企业可以备案几个网站
  • 杭州网站建设技术广西建设培训网
  • 成都商报官方网站金融理财管理网站源码 dedecms