React.creatElement 创立虚构dom
对于虚构DOM:
实质是Object类型的对象 (个别对象)虚构DOM比拟轻 实在DOM比拟重 因为虚构DOM是React外部应用 无需实在DOM上那么多属性虚构DOM最终会被React转化为实在DOM 出现在页面上
jsx的语法规定
1.定义虚构Dom时不要写引号2 标签中混入js表达式时用{}3 款式的类名指定不要用class 要用className4 内联款式 要用style={{key:value}}的模式去写4 只有一个根标签6 标签必须闭合7 标签首字母 1 若小写字母结尾 则将标签转为html 中的同名元素 ,若html中无该标签对应的同名元素 则报错。 2 若大写字母结尾 react 就去渲染对应的组件 若组件没有定义 则报错
js语句(代码)与js表达式
1 表达式:一个表达式会产生一个值 能够放在任何一个须要值的中央 上面这些都是表达式: 1 a 2 a+b 3 demo(1) 4 arr.map() 5 function test(){}2 语句(代码) 上面这些都是语句(代码) 1 if(){} 2 for(){} 3 switch(){}
React中的ref
字符串的ref
回调模式的ref
class GetValue extendsReact.Component{ getValue = () =>{ let {input1} = this console.log(input1.value); } changeHot= ()=>{ let {isHot} = this.state this.setState({ isHot:!isHot }) } state = { isHot:false } refInput1=(c)=>{ this.input1 = c } render(){ console.log(this); let {isHot} = this.state return( <div> <h1>今天天气{isHot?'晴朗':'阴天'}</h1> <button onClick={this.changeHot}>扭转天气</button> <input ref={this.refInput1} type="text"/> <button onClick={this.getValue}>获取Input1的value</button> </div> ) } } ReactDOM.render(<GetValue/>,document.getElementById('test'))
createRef的ref
class GetValue extendsReact.Component{ myRef = React.createRef() //React.createRef调用后返回一个容器,该容器返回能够存储被ref标识的节点。该容器是专人专用的 myRef2 = React.createRef() getValue = () =>{ console.log(this.myRef.current.value); } showData= ()=>{ console.log(this.myRef2.current.value); } render(){ return( <div> <input ref={this.myRef} type="text"/> <input ref={this.myRef2} type="text" onBlur={this.showData}/> <button onClick={this.getValue}>获取Input1的value</button> </div> ) } } ReactDOM.render(<GetValue/>,document.getElementById('test'))