日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Vue 同步異步存值取值實現案例

瀏覽:184日期:2022-12-16 08:15:14

1.vue中各個組件之間傳值

1.父子組件

父組件?>子組件,通過子組件的自定義屬性:props

子組件?>父組件,通過自定義事件:this.emit(′事件名′,參數1,參數2,...);

2.非父子組件或父子組件通過數據總數Bus,this.root.$emit(‘事件名’,參數1,參數2,…)

3.非父子組件或父子組件

更好的方式是在vue中使用vuex

方法1: 用組件之間通訊。這樣寫很麻煩,并且寫著寫著,估計自己都不知道這是啥了,很容易寫暈。

方法2: 我們定義全局變量。模塊a的數據賦值給全局變量x。然后模塊b獲取x。這樣我們就很容易獲取到數據

2. Vuex

Vuex 是一個專為 Vue.js 應用程序開發的狀態管理模式。可以想象為一個“前端數據庫”(數據倉庫),

讓其在各個頁面上實現數據的共享包括狀態,并且可操作

Vuex分成五個部分:

1.State:單一狀態樹

2.Getters:狀態獲取

3.Mutations:觸發同步事件

4.Actions:提交mutation,可以包含異步操作

5.Module:將vuex進行分模塊

3. vuex使用步驟

3.1 安裝

打開項目根目錄,shift+鼠標右鍵進入窗口,輸入以下命令

npm install vuex -S

3.2 在src目錄下面創建store模塊,分別維護state/actions/mutations/getters

Vue 同步異步存值取值實現案例

1.State:單一狀態樹

2.Getters:狀態獲取

3.Mutations:觸發同步事件

4.Actions:提交mutation,可以包含異步操作

5.Module:將vuex進行分模塊

5、在store里面的index.js文件,并在文件中導入各大模塊

index.js

import Vue from ’vue’import Vuex from ’vuex’import state from ’./state’import getters from ’./getters’import actions from ’./actions’import mutations from ’./mutations’

Vue.use(Vuex)

const store = new Vuex.Store({ state, // 共同維護的一個狀態,state里面可以是很多個全局狀態 getters, // 獲取數據并渲染 actions, // 數據的異步操作 mutations // 處理數據的唯一途徑,state的改變或賦值只能在這里})export default store ///導出

6. Vuex的核心概念

store:每一個Vuex應用的核心就是store(倉庫),store基本上就是一個容器,它包含著你的應用中大部分的狀態 (state)。

state:我們用來存放我們需要用到的變量

gettters:用來獲取我們定義的變量

mutations:操作我們定義的變量,同步操作

actions:操作我們定義的變量,異步操作

state.js

export default { // 凡是工程里的變量都定義到這里來,同時可以分類管理 resturantName: ’飛鴿傳書’}

gettters.js

export default{ getResturantName: (state) => { return state.resturantName; }}

mutations.js

export default { setResturantName: (state, payload) => { state.resturantName = payload.resturantName; return this.$store.state.resturantName; }}

actions.js

export default{ setResturantNameAsyc: (context, payload) => { console.log(’xxx’) setTimeout(()=>{ console.log(’yyy’) context.commit(’setResturantName’, payload); //Action提交的是mutation },3000); console.log(’zzz’) }, doAjax:(context, payload) => { // 在vuex里面不能使用vue實例 let _this = payload._this; let url = this.axios.urls.SYSTEM_USER_DOLOGIN; // let url = ’http://localhost:8080/T216_SSH/vue/userAction_login.action’; console.log(url); _this.axios.get(url, {}).then((response) => { console.log(’doAjax.........’) console.log(response); }).catch(respone)=>{ console.log(response); } }}

將store在main.js中導入并掛載Vue 中實例

vuex綜合案例

需求:兩個組件A和B,vuex維護的公共數據是餐館名:resturantName,默認值:飛歌餐館,

那么現在A和B頁面顯示的就是飛歌餐館。如果A修改餐館名稱為A餐館,則B頁面顯示的將會是A餐館,反之B修改同理。

這就是vuex維護公共狀態或數據的魅力,在一個地方修改了數據,在這個項目的其他頁面都會變成這個數據。

VuePage1.vue

<template> <div> <h3 style='margin: 60px;'>第一個Vuex頁面{{title}}</h3> <button @click='changTitle'>餐館易主</button> <button @click='changTitleAsync'>兩個月后餐館易主</button> <button @click='changTitleAsync'>測試Vuex中使用ajax</button> </div></template><script> export default { data() { return { }; }, methods: { changTitle() { this.$store.commit(’setResturantName’, { }); }, changTitleAsync() { this.$store.dispatch(’setResturantNameAsync’, { resturantName: ’小李飛刀羊肉館’ }); }, doAjax(){ this.$store.dispatch(’doAjax’,{ _this:this }) } }, computed: { title() { return this.$store.getters.getResturantName; } }, created(){ this.title=this.$store.state.resturantName; } }</script><style></style>

VuePage2.vue

<template> <div> <h3 style='margin: 60px;'>第二個Vuex頁面{{title}}</h3> this.$store.commit(type,payload); </div> </template><script> export default{ data(){ return{ }; }, created(){ this.title=this.$store.state.resturantName; } }</script><style></style>

Vue 同步異步存值取值實現案例

Action類似于 mutation,不同在于:

1.Action提交的是mutation,而不是直接變更狀態

2.Action可以包含任意異步操作

3.Action的回調函數接收一個 context 上下文參數,注意,這個參數可不一般,它與 store 實例有著相同的方法和屬性

但是他們并不是同一個實例,context 包含:

1. state、2. rootState、3. getters、4. mutations、5. actions 五個屬性

所以在這里可以使用 context.commit 來提交一個 mutation,或者通過 context.state 和 context.getters 來獲取 state 和 getters。

注1:actions中方法的調用方式語法如下:

this.store.dispatch(type,payload);例如:this.store.dispatch(type,payload);例如:this.store.dispatch(‘setResturantNameByAsync’,{resturantName: ‘啃德雞2’});

注2:action中提交mutation

context.commit(‘setResturantName’,{resturantName: ‘啃德雞2’});

注3:VUEX 的 actions 中無法獲取到 this 對象

如果要在actions 或者 mutations 中使用this對象。可以在調用的時候把this對象傳過去

{resturantName: ‘啃德雞2’,_this:this}//this就是在調用時的vue實例

Vuex中actions的使用場景

場景1:部門管理中添加或刪除了新的部門,員工新增/編輯頁面的部門列表需要進行變化

場景2:vuex之使用actions和axios異步初始購物車數據

以上這篇Vue 同步異步存值取值實現案例就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持好吧啦網。

標簽: Vue
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
精品视频一区二区三区在线观看 | 99国产精品久久久久久久成人热| 激情婷婷久久| 三级在线观看一区二区 | 欧美国产专区| 成人羞羞视频播放网站| 在线免费观看亚洲| 国产精品4hu.www| 亚洲福利专区| 日本精品在线播放| 日韩视频网站在线观看| 亚洲一区二区三区免费在线观看 | 亚洲免费资源| 国产精品蜜芽在线观看| 久久亚洲色图| 国产精品毛片久久| 免费看日韩精品| 国产精品www.| 在线精品视频在线观看高清| 欧美精品国产白浆久久久久| 91精品亚洲| 热久久久久久| 久久亚洲精品中文字幕蜜潮电影| 综合一区av| 亚洲播播91| 日本精品在线播放| 欧美aa在线观看| 无码日韩精品一区二区免费| 高清av一区| 亚洲精品福利| 在线日韩av| 欧美激情精品| 久热综合在线亚洲精品| 激情综合婷婷| 日本精品在线播放| 午夜av成人| 日韩av一区二区三区四区| 久久久天天操| 免费日韩成人| 免费一级片91| 91tv亚洲精品香蕉国产一区| 国产欧美一区二区三区国产幕精品| 久久久久99| 久久一区精品| 日韩国产在线一| 先锋影音国产一区| 日韩欧美另类一区二区| 国产精品一站二站| 中文不卡在线| 蜜桃成人av| 国产伦久视频在线观看| 国产亚洲人成a在线v网站| 国内精品福利| 超碰在线99| 久久av网站| 日本高清久久| 久久亚洲二区| 国产一区二区中文| 91综合视频| 国产日韩欧美三级| 日韩在线观看一区二区三区| 1024精品久久久久久久久| 四虎国产精品免费观看| 国产精品一区二区av交换| 亚洲九九精品| 亚洲综合日韩| 性欧美69xoxoxoxo| 日韩欧美三级| 98精品久久久久久久| 精品一区av| 国产女人18毛片水真多18精品| 只有精品亚洲| 欧美一区=区| 在线一区免费观看| 国产99精品| 久久视频一区| 三级小说欧洲区亚洲区| 亚洲三级欧美| 国产福利电影在线播放| 久久精品国产精品亚洲毛片| 国产欧美高清| 国产精品国码视频| 日韩精品一区二区三区免费视频| 一本一道久久a久久| 日韩影院免费视频| 爽好久久久欧美精品| 好吊日精品视频| 狠狠干成人综合网| 欧美精品一区二区久久| 婷婷色综合网| aa亚洲婷婷| 鲁大师影院一区二区三区| 国产亚洲精品自拍| 免费人成网站在线观看欧美高清| 久久一二三区| 亚洲精品免费观看| 日韩中文字幕| 日本va欧美va瓶| 国产欧美日韩一区二区三区在线| 日韩欧美中文字幕在线视频| 日韩高清在线一区| 国产日韩欧美一区在线| 国产精品.xx视频.xxtv| 美腿丝袜在线亚洲一区| 日本黄色精品| 日韩精品一区二区三区免费观看| 99视频精品全国免费| 午夜国产精品视频| 日韩精品一二三区| 日韩精品一区二区三区中文在线| 欧美片网站免费| 麻豆精品蜜桃视频网站| 精品亚洲成人| 香蕉成人av| 图片区亚洲欧美小说区| 快she精品国产999| 婷婷五月色综合香五月| 国产精品一区二区中文字幕| 精品视频久久| 999视频精品| 免费视频一区二区| 国产欧美一区二区三区精品观看| 美女毛片一区二区三区四区最新中文字幕亚洲 | 在线一区免费| 免费看欧美美女黄的网站| 色8久久久久| 欧美极品一区二区三区| 91看片一区| 国产精品呻吟| 91成人精品在线| 色综合五月天| 国产精品色网| 国产精品一页| 久久人人88| 日本免费一区二区视频| av资源中文在线天堂| 在线亚洲国产精品网站| 日韩精品三级| 日韩福利一区| 日av在线不卡| 久久三级中文| 欧美特黄一区| 国产精品美女久久久久久不卡| 色偷偷色偷偷色偷偷在线视频| 六月婷婷一区| 精品入口麻豆88视频| 怡红院精品视频在线观看极品| 国产日韩一区二区三区在线| 人人草在线视频| 日本一不卡视频| 日韩国产欧美| 日本中文字幕一区二区视频| 精品在线网站观看| 丝瓜av网站精品一区二区| 精品久久国产一区| 视频一区视频二区中文字幕| 久久精品免视看国产成人| 亚洲综合另类| 国产激情在线播放| 亚久久调教视频| 日韩免费看片| 久久精品97| 黄色亚洲免费| 麻豆成人av在线| 巨乳诱惑日韩免费av| 日韩1区2区| 91精品国产自产精品男人的天堂 | 日韩深夜视频| 热久久久久久久| 精品美女视频| 亚洲欧美视频一区二区三区| 国产精品手机在线播放| 久久国产电影| 青草综合视频| 一区二区三区四区日本视频| 麻豆精品网站| 成人在线免费观看网站| 国产偷自视频区视频一区二区| 国产精品激情| 欧美~级网站不卡| 国产乱码精品一区二区亚洲| 亚洲第一精品影视| 国产欧美久久一区二区三区| 91精品婷婷色在线观看| 日韩免费精品| 99久久精品网| 国产精品a级| 久久福利毛片| 日韩欧美1区| 国产日韩亚洲| 国产精品女主播一区二区三区| 免费精品一区| 在线精品福利| 欧洲精品一区二区三区| 中文字幕亚洲在线观看| 日韩av首页| 免费在线亚洲欧美| 伊人精品久久| 2023国产精品久久久精品双| 日本美女一区|