React初识

2022-05-07  本文已影响0人  张_何
React 是什么
React 特点
引入 React依赖
<script src="https://unpkg.com/react@16/umd/react.development.js" crossorigin></script>
<script src="https://unpkg.com/react-dom@16/umd/react-dom.development.js" crossorigin></script>
<script src="https://unpkg.com/babel-standalone@6/babel.min.js"></script>

这里有一个crossorigin的属性,这个属性的目的是为了拿到跨域脚本的错误信息。

<script src = '../react/react.development.js'> </script>
<script src = '../react/react-dom.development.js'> </script>
<script src = '../react/babel.min.js'> </script>
ReactDOM.render 函数
ReactDOM.render(<h3>{"hello react"}</h2>, document.getElementById("app"));
state 对象和 setState 函数
function test() {
  this.setState({
    property: "newValue";
  })
  console.log(this.state.property); // 这里输出的依然是 oldValue, 因为 JS 需要将当前的事务处理完后才执行后面的任务
}
事件绑定问题
this 绑定问题解决方案
constructor(props) {
      super(props);
      ....
      this.btnClick = this.btnClick.bind(this);
}
<button onClick={this.btnClick}>按钮2</button>
btnClick = () => {
   console.log(this.state.property);
}
<button onClick={this.btnClick}>按钮2</button>
btnClick(param) {
    console.log(this.state.property);
}

<button onClick={()=>{this.btnClick("message")}}>按钮2</button>
事件参数传递
this.state.movies.map((item, index, arr) => {
  return (
    <li className="item" 
        onClick={ e => { this.liClick(item, index, e) }}
        title="li">
      {item}
    </li>
  )
})

 liClick(item, index, event) {
    console.log("li发生了点击", item, index, event);
  }

React 条件渲染

const titleDisplayValue = isShow ? "block": "none";
<h2 style={{display: isShow}}>你好</h2>
虚拟 DOM 的创建过程
为什么要使用虚拟 DOM
创建项目并启动

1、全局安装: npm i -g create-react-app
2、切换到想创建项目的目录,使用命令:create-react-app 项目名称 创建项目
3、进入到项目文件夹 cd 项目名
4、启动项目: npm start

上一篇 下一篇

猜你喜欢

热点阅读