国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用

這篇具有很好參考價值的文章主要介紹了React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

本文的話 我們講一下定義Model
也就是Dva中redux的部分
我們打開一個剛創(chuàng)建的Dva項目 看到 src下的models 下 就是Model部分 這里 他給我們了一個案例
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
如果用 react-redux 管理 模塊多了之后會看著比較亂 或 很麻煩
但是 大家會發(fā)現(xiàn) 在Model中 他將這些都放在一起了
只需要創(chuàng)建一個這樣的文件就可以了

我們在這個models下創(chuàng)建一個自己的 就叫 product.js
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
然后編寫代碼如下

export default {
    namespace: "product",
    state: {
        productList: [
            {
                name: "小貓貓"
            },
            {
                name: "小狗狗"
            }
        ]
    },
    reducers: {
        updatelist(state,action) {
            let stateClon = deepCopy(state);
            stateClon.productList.push(action.payload);
            return stateClon;
        }
    }
}

function deepCopy(obj) {
    let str = JSON.stringify(obj);
    let appobj = JSON.parse(str);
    return appobj;
}

這里 namespace是一定要寫的 相當(dāng)于名字 然后 state就是我們的數(shù)據(jù)了 對掌握redux的伙伴比較好理解
reducers中寫的是我們操作數(shù)據(jù)的函數(shù) 這里 我們寫了一個向數(shù)組中加數(shù)據(jù)的updatelist
其中用到了一個deepCopy
這個是我們用來做深拷貝的 拷貝state
因為redux寫明不建議開發(fā)者直接操作state 所以 我們先拷貝出來 然后處理好 在return回去

然后 我們看到 src下的index.js 將Model部分注釋的代碼解開
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
就可以看到 它引入的是我們example的例子
我們直接按他這個寫法 將引用的文件改成我們自己寫的product.js
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
然后 我們來試著操作這個數(shù)據(jù)

我們找一個組件編寫代碼如下

import React from "react"
import { connect } from "dva";

class dom extends React.Component {
  constructor(props){
    super(props);
    this.state = {
    }
  }

  getProduct = () =>{
    console.log(this.props.productList);
  }

  render(){
    return (
      <div>
         <button onClick={this.getProduct} type="primary">獲取</button>
      </div>
    )
  }
}
const mapStateToProps = (state) => {
  return {
    productList: state.product
  }
}
export default connect(mapStateToProps)(dom);

首先 你要引入connect 然后聲明一個函數(shù) 名字順便 我這里直接叫 mapStateToProps 他接收一個參數(shù)state 然后定義 productList 等于 state.product
這個 state 后面點的等下就要和你Model中的product對應(yīng)
這樣 他就會將對應(yīng)的Model給你
然后調(diào)用connect 第一個參數(shù)是獲取Model的函數(shù) 第二個是組件的實體
此時 我們點擊按鈕獲取 來看一下this.props.productList中的內(nèi)容
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
可以看到 這就是我們product state的數(shù)據(jù)了
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
那么 這里 讀到數(shù)據(jù)了 我們還是要來調(diào)用updatelist
我們加一個按鈕

<button onClick={this.addProduct} type="primary">添加</button>

addProduct方法參考代碼如下

addProduct = () => {
  this.props.dispatch({
    type: "product/updatelist",
    payload: {
      name: "新數(shù)據(jù)"
    }
  })
}

React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
這里 我們調(diào)用this.props.dispatch type 就是 namespace名/方法名
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端
第二個參數(shù) 就是方法接收到的action

運行代碼
然后 我們先點擊添加 在點擊獲取
React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用,react.js,javascript,前端文章來源地址http://www.zghlxwxcb.cn/news/detail-554584.html

到了這里,關(guān)于React Dva項目創(chuàng)建Model,并演示數(shù)據(jù)管理與函數(shù)調(diào)用的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • React中使用mobx管理狀態(tài)數(shù)據(jù)使用樣例

    React中使用mobx管理狀態(tài)數(shù)據(jù)使用樣例

    MobX 是一個身經(jīng)百戰(zhàn)的庫,它通過運用透明的函數(shù)式響應(yīng)編程(Transparent Functional Reactive Programming,TFRP)使?fàn)顟B(tài)管理變得簡單和可擴(kuò)展。官網(wǎng)地址:關(guān)于 MobX | MobX中文文檔 | MobX中文網(wǎng) mobx-react-lite是一個mobx和react建立鏈接的依賴庫,也必須安裝才可以使用 并使用store/index.js統(tǒng)一

    2024年02月13日
    瀏覽(20)
  • React 狀態(tài)管理:高效處理數(shù)組數(shù)據(jù)的5種方法

    為什么在 React 中,狀態(tài)(state)如果是數(shù)組類型,需要單獨處理?主要有以下幾個原因: 不可變性(Immutability) : React 中的狀態(tài)是不可變的,意味著我們不能直接修改狀態(tài),而是要創(chuàng)建一個新的狀態(tài)對象。對于數(shù)組來說,直接修改數(shù)組元素是不符合 React 的設(shè)計原則的。 性能優(yōu)化 : React 使用

    2024年04月10日
    瀏覽(38)
  • React Dva項目中.roadhogrc.mock.js直接自動導(dǎo)入mock目錄下所有文件方式

    React Dva項目中.roadhogrc.mock.js直接自動導(dǎo)入mock目錄下所有文件方式

    上文 React Dva項目中模仿網(wǎng)絡(luò)請求數(shù)據(jù)方法 中,我們書寫了Dva項目模擬后端數(shù)據(jù)的方式 但是 我們.roadhogrc.mock.js中的這個處理其實并不好用 我們還需要一個一個的引入 我們可以直接靠一段代碼 這就是一個讀流的方式 獲取mock目錄下的所以文件 然后找出后綴為 .js的文件 全部弄

    2024年02月15日
    瀏覽(20)
  • Docker數(shù)據(jù)管理和鏡像創(chuàng)建

    Docker數(shù)據(jù)管理和鏡像創(chuàng)建

    管理Docker容器中數(shù)據(jù)主要有兩種方式:數(shù)據(jù)卷(Data Volumes)和數(shù)據(jù)卷容器(DATa Volumes Containers)。 數(shù)據(jù)卷是一個供容器使用的特殊目錄,位于容器中。可將宿主機(jī)的目錄掛載到數(shù)據(jù)卷上,對數(shù)據(jù)卷的修改操作立刻可見,并且更新數(shù)據(jù)不會影響鏡像,從而實現(xiàn)數(shù)據(jù)在宿主機(jī)與容

    2024年02月15日
    瀏覽(19)
  • 數(shù)據(jù)庫創(chuàng)建與管理

    數(shù)據(jù)庫創(chuàng)建與管理

    目錄 一、創(chuàng)建數(shù)據(jù)庫 1.準(zhǔn)備創(chuàng)建數(shù)據(jù)庫 2.創(chuàng)建數(shù)據(jù)庫實例分析 方法一:使用對象資源或企業(yè)管理器創(chuàng)建數(shù)據(jù)庫 ?方法二:使用Transact-SQL命令創(chuàng)建數(shù)據(jù)庫 二、管理數(shù)據(jù)庫 1.修改數(shù)據(jù)庫 使用SQL命令修改數(shù)據(jù)庫 2.刪除數(shù)據(jù)庫 ?使用使用Transact-SQL命令 (1)確定數(shù)據(jù)庫的名稱

    2024年02月04日
    瀏覽(15)
  • 數(shù)據(jù)庫的創(chuàng)建與管理

    數(shù)據(jù)庫的創(chuàng)建與管理

    一、實驗?zāi)康?1. 掌握在SQL Server中使用對象資源管理器和SQL命令創(chuàng)建數(shù)據(jù)庫。 2. 掌握在SQL Server中使用對象資源管理器和SQL命令查看數(shù)據(jù)庫。 3. 掌握在SQL Server中使用對象資源管理器和SQL命令修改數(shù)據(jù)庫。 二、實驗硬、軟件環(huán)境 開發(fā)環(huán)境: Windows XP 操作系統(tǒng)及以上版本 數(shù)據(jù)庫

    2024年02月06日
    瀏覽(21)
  • SQL 數(shù)據(jù)庫語句- 創(chuàng)建和管理數(shù)據(jù)庫

    SQL CREATE DATABASE 語句用于創(chuàng)建一個新的 SQL 數(shù)據(jù)庫。 以下 SQL 語句創(chuàng)建了一個名為 \\\"testDB\\\" 的數(shù)據(jù)庫: 通過這個簡單的語句,你可以成功地創(chuàng)建一個名為 \\\"testDB\\\" 的數(shù)據(jù)庫。記得在實際應(yīng)用中,你可能需要添加其他選項,比如指定字符集、校對規(guī)則等,以滿足具體需求。 SQL DRO

    2024年02月05日
    瀏覽(37)
  • 數(shù)據(jù)庫實驗 實驗一 數(shù)據(jù)庫創(chuàng)建與管理

    數(shù)據(jù)庫實驗 實驗一 數(shù)據(jù)庫創(chuàng)建與管理

    注:此內(nèi)容僅僅只是記錄成長與分享學(xué)習(xí),不能保證絕對正確 實驗一 數(shù)據(jù)庫的創(chuàng)建與管理 實驗日期: ? 2022 ? 年 3 月 ? 25 日? 星期 ? 五??? ?實驗地點: ? 宿舍????? 一 實驗?zāi)康?1. 熟練掌握創(chuàng)建、刪除數(shù)據(jù)庫。 2. 查看和修改數(shù)據(jù)庫屬性。 二 實驗要求 1. 請大家務(wù)必動

    2024年02月01日
    瀏覽(30)
  • 達(dá)夢數(shù)據(jù)庫創(chuàng)建及數(shù)據(jù)庫實例管理

    達(dá)夢數(shù)據(jù)庫創(chuàng)建及數(shù)據(jù)庫實例管理

    數(shù)據(jù)庫配置助手創(chuàng)建數(shù)據(jù)庫調(diào)用 dbca.sh 圖形化界面創(chuàng)建數(shù)據(jù)庫: [dmdba@DCA02 tool]$ ./dbca.sh 2021-01-11 11:43:45 [com.dameng.dbca.Startup] [INFO] 啟動 DBCA 指定數(shù)據(jù)庫名稱、實例名稱(單機(jī)情況下數(shù)據(jù)庫和實例名稱可以相同),指定端口號: 簇大小、頁大小、字符集、 字符串 大小寫敏感、

    2023年04月08日
    瀏覽(52)
  • Docker 的數(shù)據(jù)管理、容器互聯(lián)、鏡像創(chuàng)建

    Docker 的數(shù)據(jù)管理、容器互聯(lián)、鏡像創(chuàng)建

    目錄 一、數(shù)據(jù)管理 1.數(shù)據(jù)卷 2.?數(shù)據(jù)卷容器 二、容器互聯(lián)(使用centos鏡像) 三、Docker 鏡像的創(chuàng)建 1.基于現(xiàn)有鏡像創(chuàng)建 1.1首先啟動一個鏡像,在容器里修改 1.2將修改后的容器提交為新的鏡像,需使用該容器的id號創(chuàng)建新鏡像 2.基于本地模板創(chuàng)建 2.1下載模板文件生成鏡像? 2

    2024年02月16日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包