React简介
官网地址:
英文官网: https://reactjs.org/
中文官网: https://react.docschina.org/
介绍描述以及特点
用于动态构建用户界面的javascript库,由Facebook开源
声明式,组件化编码
高效(优秀的Diffing算法)
使用虚拟(virtual)DOM,不总是直接操作页面真实DOM
DOM Diffing算法,最小化页面重绘
React JSX
全称:JavaScript XML
作用:用来简化创建虚拟DOM
语法:var ele=<h1>Hello JSX</h1>
语法基本规则:{} 里写javascript
[] 里面可以直接写html标签
import './App.css';
function App() {
var arr = [
<h2>花满楼</h2>,
<p>周美灵</p>,
<p>awd awdawda</p>
]
var styles = {
fontSize: "40px",
color: "#f70",
}
return (
<div>你好react
<p className='active'>赤妖蝶</p>
<p>{2 + 3}</p>
{arr}
<p style={styles}>文本行</p>
</div>
)
}
export default App;
模板语法
文本渲染:
文本渲染: {}
html文本渲染:dangerouslySetInnerHTML={{__html.xxx}}
条件渲染:
条件?<></>
&&符号{{条件&&<></>}}
事件
onClick={this.dian} onClick={this.dian.bind(this,参数)} onClick={()=>{this.dian(参数)}
更新状态State
this.setState({key:value})
this.setState({key:value},()=>conlose.log("欧尼酱“))
import React, { Component } from 'react'
export default class App extends Component {
constructor(props) {
super(props)
this.state = {
msg: "赤<strong>妖</strong>蝶",
isShow: false,
list: [
"赤妖蝶", "温斯顿", "死神"
],
}
}
sayHi(msg = "欧巴") {
alert(msg)
}
render() {
return (
<div>
{/* 更新数据 */}
<button onClick={() => {
this.setState({ isShow: !this.state.isShow }, () => {
console.log("瞎搞完了")
})
}}>咔咔咔</button><br />
{/* 事件 */}
<button onClick={this.sayHi.bind(this, "欧尼酱")}>点击传参2</button>
<button onClick={() => { this.sayHi("阿尼哈撒哟") }}>点击传参</button>
<button onClick={this.sayHi}>点击</button>
<button onClick={() => alert("元旦快乐")}>元旦快乐</button>
{/* 列表渲染 */}
{this.state.list.map(item => <p key={item}>{item}</p>)}
你好吗?{this.state.msg}
<div dangerouslySetInnerHTML={{ __html: this.state.msg }}></div>
{this.state.isShow ? <p>欢迎回来</p> : <p>滚蛋吧</p>}
{this.state.isShow && <p>番茄炒蛋</p>}
</div >
)
}
}