为什么React要更新DOM的这一部分?
Why React updates this part of the DOM?
假设我有这个reactjs组件:
var React= require("react");
var LikeButton= React.createClass({
getInitialState: function(){
return {liked: false};
},
handleClick: function(event){
this.setState({liked: !this.state.liked});
},
render: function(){
var text = this.state.liked ? 'like' : 'haven''t liked';
return (
<div>
<h1>{new Date().toTimeString()}</h1>
<p onClick={this.handleClick}>
You {text} this. click to toggle.
</p>
</div>
);
}
});
React.render(<LikeButton/>, document.getElementById('mount'));
当我触发一个onClick
事件时,h1
元素被更新为当前日期,为什么?
当一个组件的状态被改变时,它的render
方法将被触发。
来自React文档:
setState()将总是触发重新渲染,除非有条件呈现逻辑在shouldComponentUpdate()中实现。如果可变对象正在被使用,并且逻辑不能在shouldComponentUpdate(),只在新状态时调用setState()不同于之前的状态将避免不必要的重新渲染。
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 如何在DOM元素上按类型构建此函数
- 获取@ResponseBody的一部分作为主干和Spring MVC控制器之间的参数
- Windows形成web浏览器控件和Javascript更改的DOM
- Datatables:通过DOM数据源中的名称引用列
- 在DOM中查找一个模式并替换它's的内容使用jquery
- 如何使用ViewCompiler手动编译DOM的一部分
- 通过Java加载XML并制作HTML DOM的一部分
- 在表单提交将DOM的一部分替换为分部之后,我应该将ajax成功绑定到什么来使我的javascript工作
- JavaScript:将字符串的一部分放入DOM容器中,保存溢出
- 警报和确认函数是内置在 JavaScript 中,还是 DOM 的一部分
- 是新创建的元素,它不是DOM样式的一部分,或者所有值都设置为默认值
- cookie被认为是DOM树的一部分吗?
- 用jquery添加的内容不是DOM的一部分
- 如何使用变量值作为dom树的一部分
- 作为IIFE的一部分创建的DOM元素会发生什么?
- 元素不可见,但仍然是DOM的一部分用于操作
- 为什么React要更新DOM的这一部分?