12-JSX得class得设置.html
<body> <div id='root'></div> <script src="./react.js"></script> <script src="./react-dom.js"></script> <script src="./babel.min.js"></script> <script type="text/babel"> var arr=['111','222','333'] //只给第一项加active 如果多项要active 可以用插件,后面讲 ReactDOM.render(( <ul> {arr.map((val,index)=>{ return (<li key={index} className={index==0?'active':''}>{index}---{val}</li>) }) } </ul> ),document.getElementById('root')) </script>
13-JSX得样式.html
<div id="root"></div> <script src="./react.js"></script> <script src="./react-dom.js"></script> <script src="./babel.min.js"></script> <script type="text/babel"> //jsx中元素得style属性不能设置为字符串,应该设置为对象 // const el=(<div style="width:100px;height:100px;background:red"></div>); //样式属性名做key(如果属性名有多个单词,要以驼峰命名, 例如padding-left写成paddingLeft),属性值为value const el=(<div style={{width:'100px',height:'100px',background:'red',paddingLeft:'50px'}}></div>); ReactDOM.render(el,document.getElementById('root')) </script>
14-JSX.html
<div id="root"></div> <script src="./react.js"></script> <script src="./react-dom.js"></script> <script src="./babel.min.js"></script> <script type="text/babel"> let value="112" function change(){ value *= Math.random()*0.2 alert(value)//value变了 但视图没有因为value变化而更新 const el=(<div><p>{value}</p><button onClick={change}>点击修改value值</button></div>) //重新调用render函数才能更新 //但是React只会更新视图中发生改变得部分 //不会重新渲染DOM,render每次拿到得是一个对象, 元素对象得描述对象,对象里面有一些键值对,例如{div } //react一开始里面有一个完整得对象,对象一开是空得,第一次ReactDOM.render渲染后内存里就有对象了,后面再render就会和内存里得对象进行比较 ReactDOM.render(el,document.getElementById('root')) } const el=(<div><p>{value}</p><button onClick={change}>点击修改value值</button></div>) ReactDOM.render(el,document.getElementById('root')) </script>
15-举例.html
<div id='root'></div> <script src="./react.js"></script> <script src="./react-dom.js"></script> <script src="./babel.min.js"></script> <script type="text/babel"> var arr=['aaa','bbb','ccc'] function render(){ ReactDOM.render(( <div>{arr.map((item,index)=>{ return ( <div key={index}> {item} <button onClick={()=>moveUp(index)}>上移</button> <button onClick={()=>moveDown(index)}>下移</button> </div> ) })} </div>),document.getElementById('root')) } function moveDown(index){ if(index===arr.length-1){ alert('无法下移') return } let newArr=[] newArr=arr.splice(index,1) arr.splice(index+1,0,newArr[0]) render() } function moveUp(index){ if(index===0){ alert('无法上移') return } let newArr=[] newArr=arr.splice(index,1) arr.splice(index-1,0,newArr[0]) render() } render() </script>
16-JSX.html
<div id='root'></div> <script src="./react.js"></script> <script src="./react-dom.js"></script> <script src="./babel.min.js"></script> <script type="text/babel"> var arr=['aaa','bbb','ccc'] function render(){ ReactDOM.render(( <div>{arr.map((item,index)=>{ return ( <div key={index}> {item} <button onClick={()=>moveUp(index)}>上移</button> <button onClick={()=>moveDown(index)}>下移</button> </div> ) })} </div>),document.getElementById('root')) } function moveDown(index){ if(index===arr.length-1){ alert('无法下移') return } let newArr=[] newArr=arr.splice(index,1) arr.splice(index+1,0,newArr[0]) render() } function moveUp(index){ if(index===0){ alert('无法上移') return } let newArr=[] newArr=arr.splice(index,1) arr.splice(index-1,0,newArr[0]) render() } render()