成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Vue 同步異步存值取值實現(xiàn)案例

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

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

1.父子組件

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

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

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

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

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

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

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

2. Vuex

Vuex 是一個專為 Vue.js 應(yīng)用程序開發(fā)的狀態(tài)管理模式。可以想象為一個“前端數(shù)據(jù)庫”(數(shù)據(jù)倉庫),

讓其在各個頁面上實現(xiàn)數(shù)據(jù)的共享包括狀態(tài),并且可操作

Vuex分成五個部分:

1.State:單一狀態(tài)樹

2.Getters:狀態(tài)獲取

3.Mutations:觸發(fā)同步事件

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

5.Module:將vuex進行分模塊

3. vuex使用步驟

3.1 安裝

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

npm install vuex -S

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

Vue 同步異步存值取值實現(xiàn)案例

1.State:單一狀態(tài)樹

2.Getters:狀態(tài)獲取

3.Mutations:觸發(fā)同步事件

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

5.Module:將vuex進行分模塊

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

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, // 共同維護的一個狀態(tài),state里面可以是很多個全局狀態(tài) getters, // 獲取數(shù)據(jù)并渲染 actions, // 數(shù)據(jù)的異步操作 mutations // 處理數(shù)據(jù)的唯一途徑,state的改變或賦值只能在這里})export default store ///導(dǎo)出

6. Vuex的核心概念

store:每一個Vuex應(yīng)用的核心就是store(倉庫),store基本上就是一個容器,它包含著你的應(yīng)用中大部分的狀態(tài) (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中導(dǎo)入并掛載Vue 中實例

vuex綜合案例

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

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

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

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 同步異步存值取值實現(xiàn)案例

Action類似于 mutation,不同在于:

1.Action提交的是mutation,而不是直接變更狀態(tài)

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

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

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

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

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

注1:actions中方法的調(diào)用方式語法如下:

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對象。可以在調(diào)用的時候把this對象傳過去

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

Vuex中actions的使用場景

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

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

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

標簽: Vue
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲精选视频免费看| 久久五月激情| 91久久精品国产91性色tv| 亚洲成人免费av| 最新日韩欧美| 亚洲人成在线观看一区二区| 94-欧美-setu| 久久影院视频免费| av网站免费线看精品| 欧美精品一区在线观看| 不卡在线观看av| 欧美大片拔萝卜| 成人av电影在线| 国产亚洲一区二区三区| 欧美成人免费在线| 国产精品久久久久久久久动漫 | 国产精品欧美经典| 欧美日韩影院| 中文字幕一区二区三区不卡在线| 亚洲国产第一| 亚洲韩国精品一区| 久久激情中文| 青青草精品视频| 欧美日韩一区小说| 国产精品自拍网站| 日韩精品一区二区三区蜜臀| 成人不卡免费av| 久久久午夜精品理论片中文字幕| 午夜视频一区| 国产精品动漫网站| 99精品欧美| 香港成人在线视频| 在线亚洲一区观看| 狠狠色丁香久久婷婷综合_中| 欧美一区二区性放荡片| 成人综合婷婷国产精品久久免费| 精品国产乱码久久久久久久| 欧美日韩ab| 亚洲免费观看高清完整| 国产精品久久久亚洲一区| 婷婷一区二区三区| 制服丝袜中文字幕亚洲| 不卡视频在线观看| 综合久久给合久久狠狠狠97色| 久久xxxx| 国产精品资源站在线| 国产午夜精品久久| 一本久久综合| 秋霞电影网一区二区| 日韩欧美久久一区| 欧美日韩一区在线播放| 亚洲国产综合人成综合网站| 91久久精品国产91性色tv| 国产成人综合在线| 国产精品麻豆99久久久久久| 羞羞答答国产精品www一本| 国内精品久久久久影院色| 久久婷婷国产综合国色天香| 亚洲日本视频| 精品亚洲免费视频| 精品国产乱子伦一区| 亚洲欧洲三级| 久久草av在线| 国产精品久久久久久久久果冻传媒| 久久中文在线| eeuss鲁片一区二区三区在线看| 亚洲人成精品久久久久久| 在线亚洲精品福利网址导航| www.av精品| 亚洲高清免费视频| 欧美一区二区免费观在线| 激情视频一区| 看片网站欧美日韩| 欧美国产在线观看| 在线视频中文字幕一区二区| 99精品视频在线观看| 亚洲一区二区三区在线播放| 884aa四虎影成人精品一区| 国内精品一区二区| 精品一区二区三区欧美| 国产女同性恋一区二区| 色av成人天堂桃色av| 91在线国产福利| 亚洲国产精品尤物yw在线观看| 91精品国产手机| 一区二区91| 粉嫩av一区二区三区| 亚洲成人免费在线| 2020国产精品| 色综合久久久久久久久| 成人av在线一区二区三区| 亚洲激情男女视频| 欧美成人一区二区| 久久九九免费| 欧美激情视频一区二区三区免费| 日韩精品亚洲专区| 日本一区二区电影| 在线视频综合导航| 国产一区二区无遮挡| 麻豆91免费看| 亚洲欧洲成人自拍| 69成人精品免费视频| 日韩一级网站| av亚洲精华国产精华| 免费在线观看日韩欧美| 国产嫩草影院久久久久| 欧美三级欧美一级| 一本久道综合久久精品| av在线一区二区三区| 九九热在线视频观看这里只有精品| 亚洲同性同志一二三专区| 精品成人一区二区| 欧美午夜精品电影| 国产精品乱码一区二区三区| 欧美大香线蕉线伊人久久国产精品| 国内成人精品2018免费看| 亚洲一区视频在线| 国产精品欧美经典| 精品国产一区二区三区四区四| 91国在线观看| 国产亚洲精品久久久久婷婷瑜伽| 99热精品国产| 国产在线视频精品一区| 五月开心婷婷久久| 亚洲丝袜美腿综合| 欧美国产成人精品| 欧美α欧美αv大片| 欧美裸体bbwbbwbbw| 久久久久欧美精品| 国产人成精品一区二区三| 国产精品v亚洲精品v日韩精品 | 色综合久久中文字幕| 国产精品自在欧美一区| 日韩在线一区二区三区| 有坂深雪av一区二区精品| 中文av一区二区| 久久在线观看免费| 欧美一区在线视频| 在线一区二区三区四区五区| 亚洲深夜影院| 亚洲精品欧美| 精品成人免费| 亚洲私人影院| 91麻豆免费观看| 高清不卡一区二区| 精品一区二区三区影院在线午夜| 亚洲成a人v欧美综合天堂下载| 中文字幕一区二| 中文一区一区三区高中清不卡| 337p粉嫩大胆色噜噜噜噜亚洲| 91精品国产丝袜白色高跟鞋| 欧美日韩国产片| 欧美三级视频在线| 在线免费一区三区| 色噜噜狠狠成人中文综合 | 欧美乱妇20p| 欧美视频三区在线播放| 欧美主播一区二区三区| 色婷婷狠狠综合| 蜜桃av一区| 美女久久一区| 久久精品综合一区| 色哟哟在线观看一区二区三区| 久久激情视频| 一本色道久久综合亚洲精品按摩| 久久精品综合一区| 久久这里有精品15一区二区三区| 久久国产福利| 91国产丝袜在线播放| 欧美综合久久久| 欧美丝袜丝nylons| 欧美日韩欧美一区二区| 欧美精品日日鲁夜夜添| 91精品国产欧美日韩| 91精品国产欧美一区二区| 91精品国产91久久久久久最新毛片 | 在线亚洲欧美| 每日更新成人在线视频| 色哟哟国产精品| 欧美视频在线不卡| 欧美一区二区三区小说| www精品美女久久久tv| 久久久精品中文字幕麻豆发布| 久久久国产午夜精品| 国产免费观看久久| 亚洲欧洲精品一区二区精品久久久 | 欧美四级电影网| 欧美日韩大陆一区二区| 欧美精品乱人伦久久久久久| 欧美一区二区精美| 久久久久久久久免费| 国产精品对白交换视频| 亚洲国产日日夜夜| 日本一不卡视频| 激情综合色播五月| 成人av电影在线网| 亚洲视频欧美在线| 亚欧美中日韩视频| 欧美日韩成人一区二区| 精品第一国产综合精品aⅴ|