下載安裝包並導入react
npm i react react-dom -S
程序員
使用js建立虛擬dom節點,並渲染到指定節點中算法
import React from 'react';
import ReactDom from 'react-dom';
// React中若要建立dom元素,只能使用react提供的js api
// createElement 接收三個及以上參數,
// 參數1 :字符串,表示建立的元素類型, 參數二:對象,元素屬性,參數三~n:虛擬dom對象,子節點
// <div class="ttt" id="myDiv">這是一個div</div>
var myDiv1 = React.createElement('h1',null,'這是一個div')
var myDiv = React.createElement('div',{id:'myDiv',className:'ttt'},'這是一個div',myDiv1)
// render('要渲染的元素','渲染元素的位置[原生的dom對象]')
ReactDom.render(myDiv,document.getElementById('app'))
npm
npm i babel-preset-react -D
api
var titles = '這是一個jsx div'
var myJSDiv = <h1 className="ttt" id="myDiv" title={ titles + 'ffff' }>{ titles }</h1>
ReactDom.render(myJSDiv,document.getElementById('app'))
瀏覽器
// 在react中一個構造函數就是一個最基本的組件
// 經過props傳遞的數據都是隻讀的,不能從新賦值
function Hello(props) {
return <div>這是組件定義的div=== {name}==={props.age}</div>
}
var name ="zhangsan"
var person = {name: 'zh',age:20}
ReactDom.render(<div><Hello name={name} {...person}></Hello></div>,document.getElementById('app'))
babel
js文件抽離 Hello.jsx ```import React from 'react';``` ```function Hello(props) {``` ```return <div>這是組件定義的div=== {name} === {props.name}</div>``` ```}``` ```export default Hello``` 調用組件的頁面 ```import Hello from './components/Hello.jsx' ``` ```var name ="zhangsan" ``` ```var pesron = { ``` ```name:"zhangsan", ``` ```age:20, ``` ```sex: 1 ``` ```} ``` ```ReactDom.render(<div><Hello name={name} {...pesron}></Hello></div>,document.getElementById('app')) ``` 使用class建立組件 ```class Hello2 extends React.Component {``` ```this.props.name="123"``` ``` render() {``` ``` return <div>這是class定義的div==={this.props.name} ==={this.props.pss}</div>``` ```}``` ```}``` ``` ReactDom.render(<div><Hello2 name='nihao' pss="xxx"></Hello2></div>,document.getElementById('app'))```