久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合

站長資訊網
最全最豐富的資訊網站

淺析集中式狀態管理Vuex的使用方法

如何使用集中式狀態管理的Vuex?下面本篇文章就帶大家了解一下vuex,簡單聊聊vuex的使用方法,希望對大家有所幫助!

淺析集中式狀態管理Vuex的使用方法

1.vuex是什么

一個專門在Vue中實現集中式狀態管理的一個Vue插件,可以對vue應用中多個組件的共享狀態進行集中式的管理(讀取/寫入),也是一種組件間通信的方式,并且適用于任意組件間通信

2.什么時候使用Vuex

1.多個組件依賴于同一狀態

2.來自不同組件的行為需要變更同一狀態

2.1如何使用Vuex

首先我們要知道,如果使用了Vuex就大概率需要兩個或者多個組件共享一套數據/狀態,所以首先需要準備兩個組件(分別為Count,Person),再就是我們要在src目錄下添加一個store文件,因為Vuex就是依靠store來進行一系列的準備任務的

2.2Count組件

在這個組件內我們可以看到map…一堆東西,這里我們就不得不說vuex里面的四個map了,如何使用map方法我放到了最后,這里我們只介紹一下該組件的功能Count是個有著“強大”計算功能的組件,它可以進行將最后的數進行放大10倍,可以奇數運算,可以延遲運算可謂是極其的“強大”

<template>   <div>     <h3>當前和為:{{sum}}</h3>     <h3>當前和為:放大10倍:{{bigSum}}</h3>     <h3>我在{{school}},學習{{subject}}</h3>     <h3>下方組件的總人數{{personList.length}}</h3>      <select v-model.number="num">       <option value="1">1</option>       <option value="2">2</option>       <option value="3">3</option>     </select>     <button @click="increment(num)">+</button>     <button @click="decrement(num)">-</button>     <button @click="incrementOdd(num)">奇數+</button>     <button @click="incrementWait(num)">500ms后再+</button>   </div> </template> <script> // 引入mapState等 import { mapState, mapGetters, mapMutations, mapActions } from "vuex"; export default {   name: "Count",   data() {     return {       num: 1 // 用戶選擇的數字     };   },   computed: {     // 使用mapState生成計算屬性,從state種讀取數據(...mapstate()的意思是將其內的對象全部展開的計算屬性里面)     // ...mapState({ sum: "sum", school: "school", subject: "subject" }), // 對象寫法     ...mapState(["sum", "school", "subject", "personList"]), // 數組寫法     // 使用mapGetters生成計算屬性,從getters種讀取數據     // ...mapGetters(["bigSum"]), // 數組寫法     ...mapGetters({ bigSum: "bigSum" }) // 數組寫法   },   methods: {     // 借助mapMutations生成對應的方法,方法種會調用相應的commit去聯系mutations     ...mapMutations({ increment: "JIA", decrement: "JIAN" }), // 對象式     ...mapActions({ incrementOdd: "jiaodd", incrementWait: "jiaWait" }) //數組式     // ...mapActions(["jiaodd", "jiaWait"]) //數組式簡寫   },   mounted() {   } }; </script> <style> button {   margin-left: 5px; } </style>
登錄后復制

2.3Person組件

Person組件有著“強大”的人員添加的功能,他可以按照自己的意愿進行添加你的親朋好友等

<template>   <div>     <h3>人員列表</h3>     <h3>Count組件的求和為{{sum}}</h3>     <input type="text" placehodler="請輸入名字" v-model="name">     <button @click="add">添加</button>     <ul>       <li v-for="p in personList" :key="p.id">{{p.name}}</li>     </ul>   </div> </template> <script> import { nanoid } from "nanoid"; export default {   name: "Person",   data() {     return {       name: ""     };   },   computed: {     personList() {       return this.$store.state.personList;     },     sum() {       return this.$store.state.sum;     }   },   methods: {     add() {       const personObj = { id: nanoid(), name: this.name };       this.$store.commit("ADD_PERSON", personObj);       this.name = "";     }   } }; </script>
登錄后復制

2.4引入組件

分別再App內引入這兩個組件

<template>   <div class="container">     <Count></Count>     <Person/>   </div> </template>  <script> import Count from "./components/Count"; import Person from "./components/Person"; export default {   name: "App",   components: { Count, Person } }; </script>
登錄后復制

2.5配置store文件夾下的index.js

要在store文件夾下面新建一個index.js文件,然后再index文件里面進行寫入如下代碼,首先是引入vue和vuex,再使用action進行動作響應,在這里我們可以接收到兩個參數分別式contextvalue他們分別式上下文和所傳入的值,我們可以再context身上發現我們所配置的state里面的所有東西,這就是context身上的東西,和value,這里value的值就是1

淺析集中式狀態管理Vuex的使用方法

// 創建VUex種的store核心 import Vue from 'vue' // 引入Vuex import Vuex from 'vuex' // 使用vuex插件 Vue.use(Vuex) // 準備actions——用于組件內的動作響應 const actions = {     // 奇數加法     jiaodd(context, value) {         if (context.state.sum % 2) {             context.commit('JIA', value)         }     },     // 延遲加     jiaWait(context, value) {         setTimeout(() => {             context.commit("JIA", value)         }, 500);     }, } // 準備mutations——用于數據操作 const mutations = {     JIA(state, value) {         state.sum += value     },     JIAN(state, value) {         state.sum -= value     },     ADD_PERSON(state, value) {         console.log('mustations種的ADD_PERSON被調用',state.personList);         state.personList.unshift(value)     } } // 準備state——用于數據的儲存 const state = {     sum: 0, // 當前和     school: '山魚小學',     subject: '前端',     personList:[{id:'001',name:'張三'}] } // 用于加工state種的數據 const getters = {     bigSum(state) {         return state.sum * 10     } } // 創建store并且暴露store export default new Vuex.Store({     // actions: actions,// 前后名稱一樣所以可以觸發簡寫模式     actions,     mutations,     state,     getters });
登錄后復制

2.四個map方法的使用

1.mapState:用于幫助我們映射state中的數據為計算屬性

computed: {     // 使用mapState生成計算屬性,從state種讀取數據(...mapstate({})的意思是將其內的對象全部展開的計算屬性里面)     ...mapState({ sum: "sum", school: "school", subject: "subject" }), // 對象寫法              // ...mapState(["sum", "school", "subject"]), // 數組寫法   }
登錄后復制

2.mapGetters:用于幫助我們映射getters中的數據為計算屬性

computed: {     // 使用mapGetters生成計算屬性,從getters種讀取數據     ...mapGetters({bigSum:"bigSum"})     ...mapGetters(["bigSum"])   }
登錄后復制

3.mapMutations:用于幫助我們生成與mutations交流的方法,包含$store.commit()的函數

methods: {     // 借助mapMutations生成對應的方法,方法種會調用相應的commit去聯系mutations     ...mapMutations({ increment: "JIA", decrement: "JIAN" }), // 對象式     // ...mapMutations(["JIA", "JIAN"]), // 數組式(button的名字和vuex里面的名字必須統一)   },
登錄后復制

3.mapActions:用于幫助我們生成與mutations交流的方法,包含$store.commit()的函數

  methods: {      // 借助mapActions生成對應的方法,方法種會調用相應的dispath去聯系actions     ...mapActions({ incrementOdd: "jiaodd", incrementWait: "jiaWait" }), //對象式     // ...mapActions(["jiaodd", "jiaWait"]) //數組式   },
登錄后復制

注:mapActions與mapMutations使用時,若需要傳遞參數需要在模板中綁定事件時傳遞好參數,否則參數是事件對象。

(學習視頻分享:vuejs入門教程、編程基礎視頻)

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
久久精品五月,日韩不卡视频在线观看,国产精品videossex久久发布 ,久久av综合
欧美综合二区| 成人高清一区| 亚洲成av人片一区二区密柚| 久久国产人妖系列| 亚洲精品福利| 久久亚洲欧美| 日韩大片在线| 日韩福利一区| 久久精品高清| 久久激情网站| 亚洲高清av| 欧美日韩免费观看视频| 国产一区二区精品福利地址| 国产精品久久久亚洲一区| 日本精品久久| 国产日韩免费| 国产+成+人+亚洲欧洲在线| 精品国产亚洲一区二区三区在线 | 日韩欧美午夜| 国产视频网站一区二区三区| 日本亚洲最大的色成网站www | 在线亚洲免费| 久久先锋影音| 日韩精品成人在线观看| 国产探花一区在线观看| 国产精品一区二区三区美女 | 亚洲爱爱视频| 鲁大师成人一区二区三区| 日韩高清不卡一区| 麻豆久久久久久| 日韩高清中文字幕一区二区| 不卡一区综合视频| 国产视频网站一区二区三区| 精品国内亚洲2022精品成人| 久久久久久久久久久9不雅视频| 伊人成人网在线看| 久久精品99国产精品| 日韩欧美不卡| 亚洲精品乱码久久久久久蜜桃麻豆| 国产伦精品一区二区三区视频 | 久久99高清| 尹人成人综合网| 久久精品一区二区国产| 蜜桃成人av| 国产精品丝袜在线播放| 国产一级久久| 国产一区二区三区四区| 亚洲三级在线| av资源亚洲| 男女男精品网站| 日韩免费高清| 久久国产三级精品| 婷婷激情综合| 精品九九久久| 日韩av在线免费观看不卡| 激情综合在线| 亚洲精品在线影院| 国产精品nxnn| 欧美日韩夜夜| 亚洲精品女人| 国产精品免费看| 久久视频精品| 日韩精品影视| 日韩av免费大片| 日韩精品一级二级| 夜夜嗨网站十八久久| 日韩精品欧美激情一区二区| 韩日一区二区| 精品国产乱码久久久| 久久精品 人人爱| 欧美午夜三级| 国产日韩亚洲欧美精品| 日韩黄色av| 国产调教精品| 国产精品观看| 久久麻豆视频| 老牛国内精品亚洲成av人片| 国产日韩欧美三级| 久久中文字幕导航| 国产精品视频一区二区三区四蜜臂| 日韩精品一二区| 日本电影久久久| 国产精品嫩模av在线| 欧美黄页在线免费观看| 久久久久伊人| 精品丝袜在线| 香蕉久久久久久久av网站| 免费在线观看一区二区三区| 亚洲区第一页| 国产极品一区| 日韩精品一区二区三区免费观看| 欧美日韩激情在线一区二区三区| 国产午夜精品一区二区三区欧美 | 欧美aⅴ一区二区三区视频| 精品伊人久久| 亚洲大全视频| 奇米777国产一区国产二区| 福利精品一区| 亚洲欧美日韩精品一区二区 | 香蕉久久精品| 日本中文字幕一区二区视频 | 国产精品视频一区二区三区综合| 日韩毛片视频| 欧美国产专区| 石原莉奈在线亚洲二区| 久久精品免费看| 综合视频一区| av资源亚洲| 国产精品一区二区精品| 黑森林国产精品av| 中文字幕av亚洲精品一部二部| 亚洲精品看片| japanese国产精品| 日韩中文欧美在线| 国产一区丝袜| 老鸭窝毛片一区二区三区| 欧美在线精品一区| 国产精品a久久久久| 天堂√8在线中文| 亚洲欧美在线专区| 国产精品99一区二区三| 久热re这里精品视频在线6| 亚洲乱亚洲高清| 香蕉久久99| 久久影视三级福利片| 影音先锋久久精品| 久久精品91| 精品伊人久久| 欧美亚洲三级| 亚洲永久字幕| 新版的欧美在线视频| 日韩精品第一| 日韩在线观看一区二区| 国产日韩专区| 99久久99久久精品国产片果冰| 91麻豆精品激情在线观看最新 | 国产精品一级| 亚洲一区二区日韩| 国产成人77亚洲精品www| 国产乱码精品一区二区三区亚洲人 | 日韩欧美一区二区三区免费看| 久久午夜影视| 亚洲资源av| 午夜日本精品| 久久视频国产| 欧美一区二区三区激情视频| 久久精品国产成人一区二区三区| 日韩免费精品| 欧美日韩在线精品一区二区三区激情综合| 亚洲精品第一| 中文字幕一区二区三区日韩精品 | 久久精品国产福利| 毛片不卡一区二区| 日韩欧美中文| 欧美sss在线视频| 久久uomeier| 欧美日韩一二三四| 99成人在线视频| 国产精品一二| 伊人精品一区| 日韩视频免费| 日韩中文字幕av电影| 亚洲精品乱码久久久久久蜜桃麻豆| 激情五月综合| 亚洲另类av| 国产精品香蕉| 国产美女高潮在线| 婷婷亚洲五月色综合| 午夜在线精品偷拍| 精品国产精品国产偷麻豆| 成人日韩精品| 免费人成网站在线观看欧美高清| 蜜桃av一区二区三区电影| 69精品国产久热在线观看| 国产一区二区三区日韩精品| 日韩一区二区三区免费播放| 五月婷婷六月综合| 日韩精品久久理论片| 国产一区二区三区探花| 久久精品国产大片免费观看| 免费看日韩精品| 97精品一区| 日韩精品一区二区三区av| 国产精品99一区二区| 国产探花一区在线观看| 久久久久久久久丰满| 亚洲欧美在线专区| 久久久久国产精品一区二区| 亚州精品视频| 欧洲av一区二区| 国产精品天堂蜜av在线播放| 午夜av一区| 国内揄拍国内精品久久| 激情91久久| 日韩在线高清| 国产精品mv在线观看| 欧美资源在线| 99久精品视频在线观看视频| 91欧美日韩| 精品一区二区三区亚洲|