前端框架react研究
摘要:
最近公司要做一个嵌套在app中的应用,考虑着用Facebook的react来开发view,所以就研究了下。下面是我在开发中遇到的坑,希望能给你帮助。
项目地址:https://github.com/baixuexiyang/react
Issue:https://github.com/baixuexiyang/react/issues
欢迎star和fork!
react优势:
- 仅仅只要表达出你的应用程序在任一个时间点应该长的样子,然后当底层的数据变了,React 会自动处理所有用户界面的更新。
- 数据变化后,React 概念上与点击“刷新”按钮类似,但仅会更新变化的部分。
- React 都是关于构建可复用的组件,使代码复用、测试和关注分离(separation of concerns)更加简单。
注意点:
- 加载组件的首字母大写,比如:<HeaderComponent />
- 每一个组件的render最外层都要有一个包裹元素
- this.props不能修改,this.state可以修改
- 页面oclick事件在ios中的Safari不起效果,onClick={this.detail.bind(this, item)} 需要使用其他方式,比如jQuery的绑定事件
- string转换成html,dangerouslySetInnerHTML={{__html: ''}}
- getInitialState:在组件挂载之前调用一次。返回值将会作为
this.state
的初始值。
getDefaultProps:在组件类创建的时候调用一次,然后返回值被缓存下来。如果父组件没有指定 props 中的某个键,则此处返回的对象中的相应属性将会合并到this.props
(使用in
检测属性)。该方法在任何实例创建之前调用,因此不能依赖于
this.props
。另外,getDefaultProps()
返回的任何复杂对象将会在实例间共享,而不是每个实例拥有一份拷贝。
组件的生命周期:
componentWillMount:
服务器端和客户端都只调用一次,在初始化渲染执行之前立刻调用。
componentDidMount:
在初始化渲染执行之后立刻调用一次,仅客户端有效(服务器端不会调用)。
componentWillReceiveProps:
在组件接收到新的 props 的时候调用。在初始化渲染的时候,该方法不会调用。
shouldComponentUpdate:
在接收到新的 props 或者 state,将要渲染之前调用。该方法在初始化渲染的时候不会调用,在使用 forceUpdate
方法的时候也不会。
如果确定新的 props 和 state 不会导致组件更新,则此处应该 返回 false
。
componentWillUpdate:
在接收到新的 props 或者 state 之前立刻调用。在初始化渲染的时候该方法不会被调用。
componentDidUpdate:
在组件的更新已经同步到 DOM 中之后立刻被调用。该方法不会在初始化渲染的时候调用。
componentWillUnmount:
在组件从 DOM 中移除的时候立刻被调用。
小结:
使用react开发,所有html都写在js文件里,所以开发起来不是很顺畅。推荐一个chrome插件:React Developer Tools
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2014-08-24 带箭头提示框
2014-08-24 文本溢出显示省略号