国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

react入門筆記

Hanks10100 / 2537人閱讀

摘要:是程序的入口文件自動(dòng)化測(cè)試定義組件擴(kuò)大點(diǎn)擊區(qū)域虛擬的生成數(shù)據(jù)模板數(shù)據(jù)模板生成虛擬虛擬就是一個(gè)對(duì)象,用它來(lái)描述真實(shí)損耗了性能用虛擬的結(jié)構(gòu)生成真實(shí)的來(lái)顯示發(fā)生變化數(shù)據(jù)模板生成新的虛擬極大提升了性能數(shù)據(jù)更新比較原始虛擬和新的虛擬的區(qū)別找到區(qū)別極大

Index.js是程序的入口文件

PWA progressive web application
(registerServiceWorker)

App.test.js自動(dòng)化測(cè)試

定義組件:
class App extends React.component

Label:擴(kuò)大點(diǎn)擊區(qū)域

虛擬dom的生成

1.state數(shù)據(jù)
2.jsx模板
3.數(shù)據(jù)+模板 生成虛擬dom(虛擬dom就是一個(gè)js對(duì)象,用它來(lái)描述真實(shí)dom 損耗了性能)

[‘div’,{id:’abc’},[‘span’,{},’hello’]]

4.用虛擬dom的結(jié)構(gòu)生成真實(shí)的dom 來(lái)顯示

hello

5.state發(fā)生變化
6.數(shù)據(jù)+模板 生成新的虛擬dom(極大提升了性能)
(數(shù)據(jù)更新)
7.比較原始虛擬dom和新的虛擬dom的區(qū)別 找到區(qū)別(極大提升了性能)
8.直接操作dom 改變span中的內(nèi)容

優(yōu)點(diǎn):
1.性能提升
2.使得跨端應(yīng)用得以實(shí)現(xiàn) react native

diff算法:

比對(duì)原始虛擬dom和新的虛擬dom之間的差異
提高了比對(duì)的性能
同層比對(duì) key值

Ref

setState是一個(gè)異步函數(shù),console.log先于執(zhí)行
setState({…},()=>{

console.log(…)

})

生命周期函數(shù)

?

constructor組件創(chuàng)建的時(shí)候被調(diào)用 不屬于生命周期

componentWillMount:在組件即將被掛載到頁(yè)面的時(shí)刻自動(dòng)執(zhí)行
Render:頁(yè)面重新渲染
componentDidMount:組件被掛載到頁(yè)面之后,自動(dòng)執(zhí)行

updation:
shouldComponentUpdate:組件被更新之前,會(huì)自定被執(zhí)行(return false不對(duì)組件進(jìn)行更新)
接收兩個(gè)參數(shù) nextProps nextState
componentWillUpdate:組件被更新之前,會(huì)被自動(dòng)執(zhí)行,在shouldComponentUpdate之后才執(zhí)行(返回true才執(zhí)行)

shouldComponentUpdate-》componentWillUpdate-》Render-》componentDidMount

componentWillReciveProps:當(dāng)一個(gè)組件從父組件接收了參數(shù) 只要父組件的render函數(shù)被重新執(zhí)行了 子組件的這個(gè)生命周期函數(shù)就會(huì)被執(zhí)行(child)
如果這個(gè)組件第一次存在于父組件中,是不會(huì)被執(zhí)行的
如果之前已經(jīng)存在與父組件中,才會(huì)被執(zhí)行
componentWillUnmount:當(dāng)這個(gè)組件即將被從頁(yè)面中剔除的時(shí)候,會(huì)被執(zhí)行 (child)

ajax請(qǐng)求:

componentDidMount
如果放在render會(huì)造成死循環(huán)(render會(huì)被不斷觸發(fā)執(zhí)行)

Redux

?

redux=reducer+flux
?

import store from "./store/index"
this.setState(store.getState())

index
import {createStore} from "redux";
import reducer from "./reducer";

const store = createStore(reducer,window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__());

export default  store;
actionCreators
import {CHANGE_INPUT_VALUE,ADD_TODO_ITEM,DELECT_TDO_ITEM} from "./actionTypes"

export const getInputChangeAction = (value)=>({
    type:CHANGE_INPUT_VALUE,
    value
})

export const getAddItemAction = (value)=>({
    type:ADD_TODO_ITEM
})
export const getDelectItemAction = (index)=>({
    type:DELECT_TDO_ITEM,
    index
})
actionTypes
export const CHANGE_INPUT_VALUE = "change_input_value"
export const ADD_TODO_ITEM ="add_todo_item"
export const DELECT_TDO_ITEM="delect_todo_item"
reducer
import {CHANGE_INPUT_VALUE,ADD_TODO_ITEM,DELECT_TDO_ITEM} from "./actionTypes"
const defaultState = {
    inputValue:"",
    list:["zwt","wollen"]
}//定義倉(cāng)庫(kù)的默認(rèn)數(shù)據(jù)

//reducer可以接受state 但是絕對(duì)不能修改state

//reducer是春函數(shù) :給定固定的輸入 就一定有固定的輸出
//不能使用雷士date的操作

export default (state = defaultState,action)=>{
    if(action.type === CHANGE_INPUT_VALUE){
        const newState = JSON.parse(JSON.stringify(state))
        newState.inputValue = action.value
        return newState;
    }
    if(action.type === ADD_TODO_ITEM){
        const newState = JSON.parse(JSON.stringify(state))
        newState.list.push(newState.inputValue)
        newState.inputValue = ""
        return newState;
    }
    if(action.type === DELECT_TDO_ITEM){
        const newState = JSON.parse(JSON.stringify(state))
        newState.list.splice(action.index,1)
        return newState;
    }
    return state
}
//state:整個(gè)倉(cāng)庫(kù)存儲(chǔ)的數(shù)據(jù)內(nèi)容
//action:

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/108605.html

相關(guān)文章

  • React 入門學(xué)習(xí)筆記整理目錄

    摘要:入門學(xué)習(xí)筆記整理一搭建環(huán)境入門學(xué)習(xí)筆記整理二簡(jiǎn)介與語(yǔ)法入門學(xué)習(xí)筆記整理三組件入門學(xué)習(xí)筆記整理四事件入門學(xué)習(xí)筆記整理五入門學(xué)習(xí)筆記整理六組件通信入門學(xué)習(xí)筆記整理七生命周期入門學(xué)習(xí)筆記整理八入門學(xué)習(xí)筆記整理九路由React 入門學(xué)習(xí)筆記整理(一)——搭建環(huán)境 React 入門學(xué)習(xí)筆記整理(二)—— JSX簡(jiǎn)介與語(yǔ)法 React 入門學(xué)習(xí)筆記整理(三)—— 組件 React 入門學(xué)習(xí)筆記整理(...

    daryl 評(píng)論0 收藏0
  • react入門學(xué)習(xí)筆記(一)

    摘要:選擇的主要原因大概是因?yàn)樵摽蚣艹霈F(xiàn)較早,感覺(jué)上會(huì)相對(duì)成熟,日后學(xué)習(xí)中遇到問(wèn)題想要查找答案相對(duì)簡(jiǎn)單一些,對(duì),就是這么簡(jiǎn)單。多說(shuō)無(wú)益,接下來(lái)開(kāi)始的學(xué)習(xí),我按照我學(xué)習(xí)中帶著的問(wèn)題來(lái)一一解答,完成我的入門筆記。主要是針對(duì)前端的組件化開(kāi)發(fā)。 這兩天得空,特意來(lái)折騰了以下時(shí)下火熱的前端框架react,至于為什么選react,作為一個(gè)初學(xué)者react和vue在技術(shù)上的優(yōu)劣我無(wú)權(quán)評(píng)論,也就不妄加評(píng)論了...

    leon 評(píng)論0 收藏0
  • React入門筆記(一)

    摘要:環(huán)境配置新版的要求統(tǒng)一使用作為的編譯工具,因此我們選擇,新建文件,內(nèi)容如下設(shè)置候選版本為和這里因?yàn)橐玫剑园言诤蜻x版本里加入對(duì)的支持組件里引入的組件這個(gè)概念里的組件就像,里的控件一樣,能方便快捷的作為界面的一部分實(shí)現(xiàn)一定功能,我們可以 環(huán)境配置 新版的React要求統(tǒng)一使用babel作為JSX的編譯工具,因此我們選擇babel,新建.babelrc文件,內(nèi)容如下 { pre...

    OpenDigg 評(píng)論0 收藏0
  • Flux架構(gòu)小白入門筆記

    摘要:架構(gòu)小白入門筆記是提出的一種處理前端數(shù)據(jù)的架構(gòu),學(xué)習(xí)就是學(xué)習(xí)它的思想。這個(gè)筆記是我在學(xué)習(xí)了阮一峰老師的架構(gòu)入門教程之后得出,里面的例子和部分原文來(lái)自于其不同在于我用將其改寫了,并加入了注釋。 Flux架構(gòu)小白入門筆記 Flux是facebook提出的一種處理前端數(shù)據(jù)的架構(gòu),學(xué)習(xí)Flux就是學(xué)習(xí)它的思想。 這個(gè)筆記是我在學(xué)習(xí)了阮一峰老師的Flux 架構(gòu)入門教程之后得出,里面的例子和部分原...

    lily_wang 評(píng)論0 收藏0
  • AI開(kāi)發(fā)書(shū)籍分享

    摘要:編程書(shū)籍的整理和收集最近一直在學(xué)習(xí)深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后也找了很多的書(shū)和文章,隨著不斷的學(xué)習(xí),也整理了下自己的學(xué)習(xí)筆記準(zhǔn)備分享出來(lái)給大家后續(xù)的文章和總結(jié)會(huì)繼續(xù)分享,先分享一部分的 編程書(shū)籍的整理和收集 最近一直在學(xué)習(xí)deep learning深度學(xué)習(xí)和機(jī)器學(xué)習(xí)的東西,發(fā)現(xiàn)深入地去學(xué)習(xí)就需要不斷的去提高自己算法和高數(shù)的能力然后...

    huayeluoliuhen 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<