1、子组件接收父组件的参数,要在子组件的componentDidMount函数中更改当前组件的state,若写在componentWillMount函数中,则会导致初始化界面UI的时候不能得到预期的效果。这是因为willMount方法会在dom还没有渲染完成的时候就会触发,而这时父组件传给子组件的界面初始状态state还未到达,而didMount方法是组件在完全挂载到网页上才会被调用执行,保证数据的加载。在这方法中调用setState方法会触发重渲染,从而能达到预期效果。

2、与组件界面UI无关的变量,不要都放在state中。这是因为setState方法更改state的过程是异步的。举个栗子:更改state中A属性的状态后,立即调用另一个方法,而另一个方法是需要用到属性A的,经调试发现马上更改后立即获取,是获取不到最新的state中的变量值的。通常如果一个属性值并不控制整体界面的UI,可以将其直接挂在this对象上,而不需要放进state中。这样就能实时获取到属性的最新值了。即使这个属性控制着子组件的UI,也是可以这么做的。

3、设置同样字体大小,chromel浏览器上有时会显示偏大的解决方案:给指定元素设置max-height的值即可。

4、封装好的组件A,在渲染的时候为列表接收来自父组件的参数。渲染这样一个组件A列表,有可能只有第一个组件的状态能正确的跟数据状态匹配上,而其他组件不能,这个时候需要用componentDidMount方法与componentWillReceiveProps搭配使用,前者用于组件第一次接收父组件传来的contentInformation redux,而非首次接收参数则需要使用componentWillReceiveProps(nextProps)接收。

5、组件中设置定时器时需要注意销毁,否则会出现bug。比如在重复获取验证码这种操作的时候,会重复定时,从而出现倒计时非常快的现象。

H5页面开发笔记(react技术栈)的更多相关文章

  1. react技术栈实践(2)

    本文来自网易云社区 作者:汪洋 这时候还没完,又有两个问题引出来了. 按照上面的配置,第三方库 antd 竟然也被编译了,导致样式失败. react中,一旦包裹了子组件,子组件没办法直接使用 styl ...

  2. C#开发微信门户及应用(44)--微信H5页面开发的经验总结

    在我们开发微信页面的时候,需要大量用到了各种呈现的效果,一般可以使用Boostrap的效果来设计不同的页面,不过微信团队也提供很多这方面的资源,包括JSSDK的接口,以及Weui的页面样式和相关功能页 ...

  3. 重谈react优势——react技术栈回顾

    react刚刚推出的时候,讲react优势搜索结果是几十页. 现在,react已经慢慢退火,该用用react技术栈的已经使用上,填过多少坑,加过多少班,血泪控诉也不下千文. 今天,再谈一遍react优 ...

  4. 移动端H5页面开发,碰到一个字体变大的BUG

    移动端H5页面开发,碰到一个字体变大的BUG webkit内核下,对不定高宽的元素可能会放大其字体.那么,就可以设置一个max-width:或者使用-webkit-text-size-adjust: ...

  5. react技术栈实践(1)

    本文来自网易云社区 作者:汪洋 背景 最近开发一个全新AB测试平台,思考了下正好可以使用react技术开发. 实践前技术准备 首先遇到一个概念,redux.这货还真不好理解,大体的理解:Store包含 ...

  6. React技术栈梳理

    一.react是什么? react是一个js框架,可以用它来编写html页面,使用react后我们可以完全抛弃html(只需要一个主index文件),而用纯js来编写页面: 二.为什么要使用react ...

  7. iOS原生App与H5页面交互笔记

    文/MikeZhangpy(简书作者)原文链接:http://www.jianshu.com/p/4ed3e5ed99c6著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 最近在做一个项 ...

  8. H5页面开发的touchmove事件

    在做一屏滚动的H5页面的时候,必须移除touchmove事件,如果不移除,在安卓机上会触发微信原生的向下滚动拉出刷新.在IOS上出现上下都可以继续滑动,所以需要移除document的touchmove ...

  9. 深入React技术栈之初入React世界

    1.1 react简介 react并不是完整的MVM/MVVM框架,专注于提供清晰.简洁的View层解决方案. 传统开发模式,要更新页面需要手动操作DOM元素.如图1.1所示,React在DOM上封装 ...

随机推荐

  1. ubuntu12.04安装ruby2.3

    为了搭建github-pages博客,而github-pages后端依赖于ruby,且对版本有严格要求,自己尝试了各种姿势升级ruby2.3无果,最终在查阅了各种资料之后找到一个可行方案. icebu ...

  2. [android] The_connection_to_adb_is_down__and_a_severe_error_has_occured解决方案

    初学安卓,这是我碰到的第一个问题,从网上找了些解决方法,同时也把问题解决了. 方案一 1.先把eclipse关闭. 2.在管理器转到你的android SDK 的platform-tools下, 如图 ...

  3. 关于 poScreenCenter 与 poDesktopCenter

    主要是窗体水平方向与垂直方向的的 居中问题,由于水平方向 没有什么,所以不探讨.而垂直方向由于底部有个工具栏,工具栏自身有个高度,所以垂直方向的居中问题,需要探讨下. 结论: poScreenCent ...

  4. HDU 1507 Uncle Tom's Inherited Land(最大匹配+分奇偶部分)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1507 题目大意:给你一张n*m大小的图,可以将白色正方形凑成1*2的长方形,问你最多可以凑出几块,并输 ...

  5. Kubernetes 部署kafka ACL(单机版)

    一.概述 在Kafka0.9版本之前,Kafka集群时没有安全机制的.Kafka Client应用可以通过连接Zookeeper地址,例如zk1:2181:zk2:2181,zk3:2181等.来获取 ...

  6. #JS 异步处理机制的几种方式

    Javascript语言的执行环境是"单线程"(single thread,就是指一次只能完成一件任务.如果有多个任务,就必须排队,前面一个任务完成,再执行后面一个任务,以此类推) ...

  7. 【LOJ】#2430. 「POI2014」沙拉餐厅 Salad Bar

    题解 波兰人的j是苹果,p是橘子 还真是跟中国过不去啊= =写的时候很难受 我们先求出每个点作为起点,能延伸到的最大长度,这个可以处理成前缀和,查询一下区间最小值是不是小于0,用st表实现,如果区间最 ...

  8. network出错

    1.更改IP之后,执行service network restart时出现 shutting down interface eth0:Device state :3(disconnected)的问题时 ...

  9. 因为修改linux selinux修改错误产生的问题及解决办法

    会出现这个错误: not syncing attempted to kill init 解决办法是: 开机后一直按e 然后按这个修改: https://www.deep-silver.com/kern ...

  10. js 参数传递

    最近在读<javascript高级程序设计>时碰到了js传递方式的问题,花费了些时间,不过总算明白了. 数据类型 在 javascript 中数据类型可以分为两类: 基本类型值 primi ...