元素是构成html remove应用的最小单位,它用于描述屏幕上输出的内容。
constelement=<h1>Hello,world!</h1>;
与浏览器的DOM元素不同,html remove当中的元素事实上是普通的对象,html removeDOM可以确保浏览器DOM的数据内容与html remove元素保持一致。
将元素渲染到DOM中
首先我们在一个HTML页面中添加一个的<p>:
<p></p>
在此p中的所有内容都将由html removeDOM来管理,所以我们将其称为"根"DOM节点。
我们用html remove开发应用时一般只会定义一个根节点。但如果你是在一个已有的项目当中引入html remove的话,你可能会需要在不同的部分单独定义html remove根节点。
要将html remove元素渲染到根DOM节点中,我们通过把它们都传递给html removeDOM.render()的方法来将其渲染到页面上:
实例
constelement=<h1>Hello,world!</h1>;
html removeDOM.render(
element,
document.getElementById('example')
);
尝试一下»
更新元素渲染
html remove元素都是不可变的。当元素被创建之后,你是无法改变其内容或属性的。
目前更新界面的较早办法是创建一个新的元素,然后将它传入html removeDOM.render()方法:
来看一下这个计时器的例子:
实例
functiontick(){
constelement=(
<p>
<h1>Hello,world!</h1>
<h2>现在是{newDate().toLocaleTimeString()}.</h2>
</p>
);
html removeDOM.render(
element,
document.getElementById('example')
);
}
html remove(tick,1000);
尝试一下»
以上实例通过html remove()方法,每秒钟调用一次html removeDOM.render()。
我们可以将要展示的部分封装起来,以下实例用一个函数来表示:
实例
functionClock(props){
return(
<p>
<h1>Hello,world!</h1>
<h2>现在是{props.date.toLocaleTimeString()}.</h2>
</p>
);
}
functiontick(){
html removeDOM.render(
<Clockdate={newDate()}/>,
document.getElementById('example')
);
}
html remove(tick,1000);
尝试一下»
除了函数外我们还可以创建一个html remove.Component的ES6类,该类封装了要展示的元素,需要注意的是在render()方法中,需要使用this.props替换props:
实例
classClockextendshtml remove.Component{
render(){
return(
<p>
<h1>Hello,world!</h1>
<h2>现在是{this.props.date.toLocaleTimeString()}.</h2>
</p>
);
}
}
functiontick(){
html removeDOM.render(
<Clockdate={newDate()}/>,
document.getElementById('example')
);
}
html remove(tick,1000);
尝试一下»
html remove只会更新必要的部分
值得注意的是html removeDOM首先会比较元素内容先后的不同,而在渲染过程中只会更新改变了的部分。
html remove安装html removeJSX
改版写法:
1.使用ES6类写法,用this.props.属性名来取值。
2.可以多层props来传值,在html removeDOM.render定义属性值,传给调用方法App,再在调用的ES6类调用中用props.属性直接赋值过去。
varmyStyle={color:'red',textAlign:'center'}
classNameextendshtml remove.Component{
render(){
return<h1style={myStyle}>网站名称:{this.props.name}</h1>;
}
}
classUrlextendshtml remove.Component{
render(){
return<h1>网站地址:{this.props.url}</h1>;
}
}
classNicknameextendshtml remove.Component{
render(){
return<h1>网站地址:{this.props.nickname}</h1>;
}
}
functionApp(props){
return(
<p>
<Namename={props.name}/>
<Urlurl={props.url}/>
<Nicknamenickname={props.nickname}/>
</p>
);
}
多个属性的传入注意不用逗号或分号隔开而是空格符隔开:
html removeDOM.render(
,
document.getElementById('example')
);
下一篇:html submit 教程