最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

react.js框架Redux基礎案例詳解

 更新時間:2021年09月08日 16:03:52   作者:學習筆記666  
這篇文章主要介紹了react.js框架Redux基礎案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下

react.js框架Redux

https://github.com/reactjs/redux

安裝:

npm install redux react-redux
#基于react,我們在前面已經(jīng)安裝過了

Redux參考文檔:
http://redux.js.org/

Redux核心概念:Store

我們可以簡單的理解為就是用來存儲 各個組件的State或你自己定義的獨立的state,對state進行統(tǒng)一讀取、更新、監(jiān)聽等操作。
http://redux.js.org/docs/basics/Store.html

這里寫圖片描述

Reduce

官方告訴我們redux的基本使用如下:

import {createStore} from "redux";
import todoApp from "./reducers";
let store = createStore(todoApp);

createStore()參數(shù)傳入的是一個函數(shù)Function。
在redux里的概念叫做:Reduce
Reduce的基本形式:

function myFun(state,action){
  // ...
}

當然我們也可以使用esmascript 2015的箭頭函數(shù)形式來定義。

實戰(zhàn)演練

1、我們先來定義一個Reduce

InfoReduce.js:

//測試數(shù)據(jù)
let info = {
    title:"測試標題",
    clicknum:0
};

// 把數(shù)據(jù)通過參數(shù)船體
export  default (state = info, action)=>{


    return state; //返回的就是測試數(shù)據(jù)
}

2、Reduce準備完成,我們開始使用 Redux

import InfoReduce  from "./../redux/InfoReduce";

import {createStore} from "redux";
let store = createStore(InfoReduce);

3、Redux中很重要的概念store已經(jīng)創(chuàng)建,我們看看在組件里如何使用?

// 定義一個名叫InfoDetail的組件
class InfoDetail extends  React.Component{
    // 構(gòu)造
      constructor(props) {
        super(props);
        // 初始狀態(tài)
        this.state = {
            infoData:store.getState() //通過store對象的方法獲取數(shù)據(jù)
        };
      }


        render(){
            return <div>
                <h2>新聞標題:{this.state.infoData.title}</h2>
                <span>點擊量:{this.state.infoData.clicknum}</span>
                <p><button>修改點擊量</button></p>
            </div>
        }
}

通過store.getState()獲取數(shù)據(jù)。

這里寫圖片描述

到這里我們基本明白了:Reducers就是規(guī)定的一種函數(shù),它產(chǎn)生新的state然后傳遞給Store;我們的組件通過Store來獲取state更新組件數(shù)據(jù)。

了解action

官方文檔對action的說明:
http://redux.js.org/docs/basics/Actions.html

其實通過action這個單詞我們可以猜測到是用來處理業(yè)務的操作。

在我們前面的代碼中,哪里還有action?
我們定義Reducer函數(shù)的時候,第二個參數(shù)就是:

export  default (state, action)=>{}

1、既然action是操作,表示我們組件上事件處理函數(shù)中需要它

<button onClick={this.addClick.bind(this)}>修改點擊量</button>

給按鈕綁定一個點擊事件的函數(shù)addClick

2、下面來看看 addClick 函數(shù)里有什么乾坤?

        addClick(){
            //修改state
            store.dispatch({
                type:"INFO_CLICK"
            })

            this.setState({ //更新state
                infoData:store.getState()
            })
        }

this.setState()我們前面學過這是用來更新狀態(tài)(state);
store.dispatch()這又是我們Redux里的東東了,這個方法其實就的調(diào)度action的。
通過type來區(qū)分。

3、根據(jù)我們的需求,我們的action要處理的業(yè)務邏輯是 對clicknum增加

//測試數(shù)據(jù)
let info = {
    title:"測試標題",
    clicknum:0
};

// 把數(shù)據(jù)通過參數(shù)船體
export  default (state = info, action)=>{

    if (action.type == "INFO_CLICK"){
        let oldNum = state.clicknum;
        oldNum++;

        // 返回新的數(shù)據(jù)
        return Object.assign({},state,{clicknum:oldNum});
    }

    return state; //返回的就是測試數(shù)據(jù)
}

我們的Reducer函數(shù)中,通過action.type來判斷,然后處理業(yè)務邏輯相關(guān)。

到這里,我們可能迷惑了,Redux怎么還麻煩了,是的,一般是在業(yè)務邏輯很復雜的項目才使用的

這里寫圖片描述

到此這篇關(guān)于react.js框架Redux基礎案例詳解的文章就介紹到這了,更多相關(guān)react.js框架Redux基礎內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 全棧輕量級搭配之Remix Prisma Sqlite使用分析

    全棧輕量級搭配之Remix Prisma Sqlite使用分析

    這篇文章主要為大家介紹了全棧輕量級搭配之Remix Prisma Sqlite使用示例分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-05-05
  • React深入分析更新的創(chuàng)建源碼

    React深入分析更新的創(chuàng)建源碼

    React組件分為函數(shù)組件與class組件;函數(shù)組件是無狀態(tài)組件,class稱為類組件;函數(shù)組件只有props,沒有自己的私有數(shù)據(jù)和生命周期函數(shù);class組件有自己私有數(shù)據(jù)(this.state)和生命周期函數(shù)
    2023-01-01
  • Redux模塊化拆分reducer函數(shù)流程介紹

    Redux模塊化拆分reducer函數(shù)流程介紹

    Reducer是個純函數(shù),即只要傳入相同的參數(shù),每次都應返回相同的結(jié)果。不要把和處理數(shù)據(jù)無關(guān)的代碼放在Reducer里,讓Reducer保持純凈,只是單純地執(zhí)行計算,這篇文章主要介紹了Redux拆分reducer函數(shù)流程
    2022-09-09
  • react?fiber執(zhí)行原理示例解析

    react?fiber執(zhí)行原理示例解析

    這篇文章主要為大家介紹了react?fiber執(zhí)行原理示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • 比ant更豐富Modal組件功能實現(xiàn)示例詳解

    比ant更豐富Modal組件功能實現(xiàn)示例詳解

    這篇文章主要為大家介紹了比ant更豐富Modal組件功能實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-11-11
  • React中的常用Hooks分享

    React中的常用Hooks分享

    React?提供了許多常用的?Hooks,用于在函數(shù)組件中添加狀態(tài)管理、副作用處理和其他功能,本文主要介紹了其中幾個常用的,需要的可以收藏一下
    2023-07-07
  • react.js組件實現(xiàn)拖拽復制和可排序的示例代碼

    react.js組件實現(xiàn)拖拽復制和可排序的示例代碼

    這篇文章主要介紹了react.js組件實現(xiàn)拖拽復制和可排序的示例代碼,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • 詳解react服務端渲染(同構(gòu))的方法

    詳解react服務端渲染(同構(gòu))的方法

    這篇文章主要介紹了詳解react服務端渲染(同構(gòu))的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-09-09
  • react嵌套路由實現(xiàn)TabBar的實現(xiàn)

    react嵌套路由實現(xiàn)TabBar的實現(xiàn)

    本文主要介紹了react嵌套路由實現(xiàn)TabBar的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • React手寫一個手風琴組件示例

    React手寫一個手風琴組件示例

    這篇文章主要為大家介紹了React手寫一個手風琴組件示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-07-07

最新評論

榆树市| 公主岭市| 田阳县| 手游| 泗水县| 伊金霍洛旗| 合作市| 合山市| 鹤峰县| 临夏县| 土默特左旗| 股票| 巩义市| 延边| 木兰县| 宽城| 九龙城区| 汨罗市| 云林县| 榆社县| 镇巴县| 汝州市| 岱山县| 桐庐县| 上犹县| 宣武区| 大冶市| 庄河市| 合江县| 丹东市| 洪江市| 自治县| 龙井市| 昆明市| 太湖县| 临江市| 北碚区| 黔东| 福鼎市| 海原县| 汝城县|