分享

React的初体验

 丹枫无迹 2022-11-21 发布于北京
现在的需求是要打印出0这个数字
// 1. 可以使用React.createElement这个函数去实现
 
// 它目前接收三个参数,
/*
1. 元素名称 (div, button,span ......)
2. 元素class 使用 className声明
3. 元素内容
*/
const App1 = React.createElement('div',{className:'red'},0)
 
// 然后在 React中渲染一下,使用Render函数即可
 
/*
render函数目前接收两个参数
1. 需要渲染的框架
2. 需要挂载的元素
*/
ReactDOM.render(App1,document.getElementById('root'))

 

 
 
 
现在我们改动一下,再生成一个按钮试图让0可以+1
let n = 0
const App1 = React.createElement('div',{className:'red'},[n,
  React.createElement('button',{onClick:() => {
    n+= 1
  }},"+1")
])
 
ReactDOM.render(App1,document.getElementById('root'))

 

 
 
然而当我们点击的时候n的显示还是n,使用log可以发现其实n的值是变更了的,这就涉及到一个js的基础知识6个6
我们只需要吧当前函数封装一下,并且在click事件中再次render即可
let n = 0
const App1 = ()=> React.createElement('div',{className:'red'},[n,
  React.createElement('button',{onClick:() => {
    n+= 1
    ReactDOM.render(App1(),
  document.getElementById('root')
  )
  }},"+1")
])
 
ReactDOM.render(App1(),document.getElementById('root'))
注:在js中引入css的方法可以使用 import './xxx.css'
 

 
如果每一个简单的点击按钮都去这么做这将会是一个庞大的工程,不过幸好React拥有JSX
// 我们只需要把  React.createElement 去掉就可以了
// 注意一定要加上return()
const App = ()=>{
    return(
    <div className="red">
    {n}
    </div>
  )
}
 
JSX语法会自动翻译当前语法,如果想在div中插入js语句需要在js语句外面包裹{ }
// 最后在render中使用 <App /> 渲染就可以了
const render = () => (ReactDOM.render(<App/>,
  document.getElementById('root')
  ))
  render()
 

 
控制语句
在Vue中我们只需要使用 v-if , v-else 在React中我们可以这样
let n = 0
const App = ( )=>{
  return(
    <div>
       {
       n===0 ? <div>我被显示了</div> : <div>我被隐藏了</div>
      }
    </div>
  )
}

 

 
甚至可以写成 if else
let a
if(ture){
    a = <div>...</div>
}else{
    a = ...
  
}
  
  renturn a
 

 
循环语句
在Vue中我们可以使用 v-for ,而在React中我们要
const Component = (props) =>{
    props.number.map(...)
}

 

 
 
 
 
 
 
 
 
 
 
 
 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多