日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 前端技术 > vue >内容正文

vue

vuex从安装到使用的教程

發(fā)布時(shí)間:2024/9/27 vue 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vuex从安装到使用的教程 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
vuex的安裝
npm install vuex --save或cnpm install vuex --save
main.js引入vuex
import Vue from 'vue' import Vuex from 'vuex' import store from './vuex/store'Vue.use(Vuex)
vuex的目錄結(jié)構(gòu)和store.js的代碼

store.js的代碼(異步和同步的代碼均留下兩個(gè)方法)
import Vue from 'vue' import Vuex from 'vuex' import GLOBAL_CONFIG from '../config/config' import axios from 'axios' import BScroll from 'better-scroll' // import BScroll from '../assets/js/iscroll'Vue.use(Vuex)const menu = {state: {mannumber:[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,'其它'],activeindex: null,nowindex:null,products: {},GLOBAL_CONFIG:GLOBAL_CONFIG['GLOBAL_CONFIG']},mutations: {get_product: function (state, products) {state.products = products;for(let i = 0; i < state.products.length; i++){if(state.products[i]['image'] != false && state.products[i]['image'].indexOf(state.GLOBAL_CONFIG['dataImage']) === -1){state.products[i]['image'] = state.GLOBAL_CONFIG['base64Header'] + state.products[i]['image'];}else{state.products[i]['image'] = require("../assets/file.png");}}}},actions: {} }export default new Vuex.Store({state: {mastdisplay: false,supervisory_control:false,product: {},countNumber:{},orderdetail:{},GLOBAL_CONFIG:GLOBAL_CONFIG['GLOBAL_CONFIG'] },mutations: {mastdisplay: function (state,name) {if(typeof name !== 'string'){ if(name['name'] == 'mastdisplay' || name['name'] == 'mastspecificat' || name['name'] == 'mastflavour'){if(name['product'].hasOwnProperty('specs')){for(let i = 0; i < name['product']['specs'].length; i++){name['product']['specs'][i]['number'] = 0;}} state.product = name['product'];if(name['name'] === 'mastspecificat'){let specificatscroll = new BScroll('.mast-scrollspecificat',{scrollY: true,click: true});}if(name['name'] === 'mastflavour'){let flavouringscroll = new BScroll('.mast-flavouringscroll',{scrollY: true,click: true});} }name = name['name']; }if(state[name]){state[name] = false;}else{state[name] = true;}},countNumber: function (state,countNumber) {state.countNumber = countNumber;},get_orderdetail: function (state,response) {state.orderdetail = response;console.dir(state.orderdetail);},hidden_customcount: function (state) { if(state.mastload){state.mastload = false;}}},components:{},modules: {menu:menu},actions: {get_orderdetail: function (context,company,name) {axios.post('/point-api-order_detail',{tableid:company['tableid'],companyid:company['companyid']}).then(function(response){ context.commit('get_orderdetail',response);}, function(response){mui.toast('網(wǎng)絡(luò)錯(cuò)誤');});},check_cart: function (context,product) {axios.post('/point-api-checkcart',{user_id:product['user_id'],url:context.state.GLOBAL_CONFIG['WECHAT_API_HOST']+"/wechat/app/index.php?i="+localStorage.i+"&c=entry&do=ShopCart&m=wei_scan_code"}).then(function(response){ if(response.hasOwnProperty('error')){mui.toast(response['erron']);return false;}else{context.commit('set_cart',response);// let menuscroll = new BScroll('.mast-cart-content-parent',{// scrollY: true,// click: true// });} }, function(response){mui.toast('網(wǎng)絡(luò)錯(cuò)誤');});} })
mutations的使用,可以在mutations里面定義方法,里面的方法為同步操作,方法里的第一個(gè)參數(shù)是state對(duì)象,可操作state對(duì)象里定義的屬性,第二個(gè)參數(shù)為傳進(jìn)來的參數(shù),也可不傳,在組件里可以直接操作state里的屬性,例如:
this.$store.state.mastdisplay 或通過store里的方法改變this.$store.commit('mastdisplay');
actions的使用,actions里面的方法用來處理異步操作,調(diào)用異步接口后,獲取到數(shù)據(jù),對(duì)state里的屬性進(jìn)行重新賦值,然后在組件里計(jì)算該屬性的變化
computed: {orderdetail: function () {return this.$store.state.orderdetail;}mastdisplay: function () {return this.$store.state.mastdisplay;}products: function () {return this.$store.state.menu.products;},product: function () {return this.$store.state.product;}}
在組件里調(diào)用actions方法
this.$store.dispatch('get_orderdetail',{tableid:localStorage.tableid,companyid:localStorage.companyid});
有時(shí)候我們可能會(huì)把一個(gè)組件分為一個(gè)模塊,例如上面的代碼,我定義了一個(gè)menu的模塊,那么我需要在modules里面引入這個(gè)模塊,在組件里操作該模塊的屬性如下:

this.$store.state.menu.products

調(diào)用該模塊的mutations里的方法不需要加上menu.

關(guān)于vuex還有很多的東西沒用過,大家可以自己去玩下,最好把官網(wǎng)看多幾遍,后來再去看的時(shí)候,受益良多。

總結(jié)

以上是生活随笔為你收集整理的vuex从安装到使用的教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 男人插女人的网站 | 色av一区二区三区 | 大肉大捧一进一出好爽视频 | 久久婷婷五月国产色综合激情 | 99热这里只有精 | 成年人视频网 | 国产福利网 | 欧美三级午夜理伦三级小说 | wwwwww色| 欧美国产日韩一区二区三区 | 国模精品一区二区三区 | 69网站在线观看 | 天天射夜夜骑 | 青青青av| 裸体女人a级一片 | 69xxxx日本 | av尤物 | 国产免费观看视频 | 亚洲女人久久久 | 成人三级晚上看 | 激情高潮呻吟抽搐喷水 | 国产又大又粗又长 | 欧美 日韩 国产 中文 | 国产黄色影院 | 关秀媚三级 | 国产日韩精品在线观看 | 日韩无码精品一区二区三区 | 亚洲va久久久噜噜噜久久天堂 | 久久精品97| 午夜肉伦伦 | 韩国明星乱淫(高h)小说 | 亚洲插插插 | 一级特黄肉体裸片 | 精品国产伦一区二区三区 | 中国女人内谢69xxxxⅹ视频 | 天堂va蜜桃一区二区三区 | 日日摸夜夜添夜夜 | 午夜精品久久久 | 亚洲男人的天堂在线视频 | 天美视频在线观看 | 不卡在线视频 | 婷婷久 | 日韩亚洲欧美精品 | a级在线免费观看 | 日韩avav| 日本东京热一区二区三区 | 自拍1页 | 国产一区不卡在线观看 | 一曲二曲三曲在线观看中文字幕动漫 | 高潮白浆女日韩av免费看 | 欧美成人久久 | 99re99热 | 久久爱综合网 | 99久久精品国产一区二区成人 | 国产在线一区不卡 | 欧美一区二区三区在线观看 | 一级特黄高清 | 小sao货大ji巴cao死你 | 嘿嘿射在线| 亚洲区 欧美区 | 成人中文在线 | 国产黄色片视频 | 午夜一区 | 成人影片在线播放 | 亚洲丁香花色 | 成人3d动漫一区二区三区 | 美女扒开粉嫩的尿囗给男生桶 | 91免费网站在线观看 | 午夜av在线播放 | 国产视频在线观看网站 | 激情视频免费在线观看 | 不卡视频一区二区三区 | 亚洲色图丝袜美腿 | 成人精品久久 | 穿情趣内衣被c到高潮视频 欧美性猛交xxxx黑人猛交 | 免费观看日韩毛片 | 一级黄色片在线免费观看 | 久久久久久国产免费a片 | 青青视频免费看 | 国产精品99无码一区二区 | 99久久精品无码一区二区毛片 | 欧美熟妇另类久久久久久多毛 | 99国产精品久久久久久久成人 | 成人av专区 | 男女做的视频 | 青青在线 | 中文字幕二区三区 | 精品国产91乱码一区二区三区 | 一区二区视频免费 | 亚洲午夜视频 | 国产麻豆精品在线观看 | 天天草天天爽 | 91精品观看 | 亚洲成人一区在线 | 国产精品国产三级国产三级人妇 | 伦理黄色片 | 国产日本欧美在线观看 | 国产鲁鲁视频在线观看免费 | 无套在线观看 |