近幾年前端能夠說是飛速發展,從虛擬dom到flux單項數據流,這些對於前端能夠說是跨時代到發展,對於前端開發者來講不單單是挑戰也是大到機遇,若是你想成爲一名頂尖到前端開發工程師,那我認爲掌握這些概念和由此孕育而出到框架是必不可少的。anglurjs ,vuejs ,reactjs做爲當前前端三大主流框架,也許咱們工做中只會用到一種,但掌握他們,並能運用他們應該咱們必備但技能。 注:本文只是本身重看reactjs文檔的一些總結,主要參考的是reactjs的官方文檔。html
reactjs使用jsx語法有以下特色前端
標記與邏輯共同存放vue
經過大括號嵌入表達式node
jxs能夠看做一個表達式react
有效防止注入攻擊ios
詳細請點擊查看redux
function HelloWorld(props) {
const isLoggedIn = props.isLoggedIn;
if (isLoggedIn) {
return <p>hello world</p>;
}
return <p>not login</p>;
}
複製代碼
const numbers = [1, 2, 3, 4, 5];
const listItems = numbers.map((number) =>
<li>{number}</li>
);
複製代碼
import React from 'react'
class Clock extends React.Component {
constructor(props) {
super(props);
this.state = {date: new Date()};
}
tick() {
//經過setstate來改變狀態
this.setState({
date: new Date()
});
}
render() {
//將狀態渲染到ui頁面
return (
<div>
<h1>Hello, world!</h1>
<h2>如今是 {this.state.date.toLocaleTimeString()}.</h2>
<button onClick={this.tick.bind(this)}>更新時間</button>
</div>
);
}
}
複製代碼
注:reactjs中的狀態能夠稱爲自頂向下或單向數據流。任何狀態始終由某些特定組件全部,而且從該狀態導出的任何數據或 UI 只能影響樹中下方的組件。axios
class WebSite extends React.Component {
constructor() {
super();
this.state = {
name: "菜鳥教程",
site: "https://www.runoob.com"
}
}
render() {
return (
<div>
<Name name={this.state.name} />
<Link site={this.state.site} />
</div>
);
}
}
class Name extends React.Component {
render() {
console.log(this.props)
return (
<h1>{this.props.name}</h1>
);
}
}
class Link extends React.Component {
render() {
return (
<a href={this.props.site}>
{this.props.site}
</a>
);
}
}
複製代碼
reactjs生命週期能夠分爲 mount update destroy每個生命週期對應的api以下所示:api
React 元素的事件處理和 DOM 元素相似。可是有如下兩點注意:數組
HTML 表單元素與 React 中的其餘 DOM元素有所不一樣,表單中可變的狀態保存在state中 而且只能經過setstate來更新
class HelloMessage extends React.Component {
constructor(props) {
super(props);
this.state = {value: 'Hello Runoob!'};
this.handleChange = this.handleChange.bind(this);
}
handleChange(event) {
this.setState({value: event.target.value});
}
render() {
var value = this.state.value;
return <div>
<input type="text" value={value} onChange={this.handleChange} />
<h4>{value}</h4>
</div>;
}
}
複製代碼
本章主要介紹了reactjs的基本內容,主要參考了reactjs的官方文檔。建議初學者完整的把reactjs的官方文檔看幾遍,注意不是看一遍。若是你能堅持多看幾遍,而且在看的過程當中寫幾個demo那你上手項目將很是快。