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()

 

posted @ 2019-10-09 19:34  燕子fly  阅读(573)  评论(0编辑  收藏  举报