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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue 状态管理 Vuex

發布時間:2023/12/2 vue 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue 状态管理 Vuex 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

1、概述

Vuex作為插件,管理和維護整個項目的組件狀態。

?

2、安裝vuex

cnpm i --save vuex

?

3、vuex使用

github地址:https://github.com/MengFangui/Vuex

new Vue({el: '#app',router: router,//使用vuex store: store,render: h => {return h(App)} });

?

4、配置項

(1)數據:數據保存在state中。store的數據只能讀取,不能改變。

(2)改變store中的數據使用mutations。組件內通過this.$store.commit來執行mutations.

(3)getters提取過濾方法

(4)actions:處理異步操作,組件內通過this.$store.dispatch觸發。

涉及數據改變的用mutations,涉及業務邏輯的使用actions。

以上整體配置為:

//vuex的配置 //注意Store是大寫 const store = new Vuex.Store({//數據保存 state: {count: 0,list: [1, 5, 8, 10, 30, 50]},mutations: {increase(state, n = 1) {state.count = n;},decrease(state, n = 1) {state.count -= n;}},getters: {filteredList: state => {return state.list.filter(item => item < 10);}},actions:{asyncIncrease(context){//異步 1s后執行return new Promise(resolve=>{setTimeout(()=>{context.commit('increase');//Promise 的一種狀態Resolved(已完成) resolve();},1000)})}} });

?

5、組件代碼

<template><div><h1>首頁</h1>{{count}}<button @click="handleIncrease"> 5</button><button @click="handleDecrease">-5</button><!--getters 用法--><div>{{list}}</div><!--actions用法--><button @click="handleAsyncIncrease">action 1</button><!--router-link會渲染為一個a標簽 實現跳轉的方式1--><!--router-link 的tag屬性 指定渲染成什么標簽--><!--router-link 的replace屬性 不會留下history記錄,不能使用后退鍵--><!--router-link 的active-class屬性 路由匹配成功時會自動給當前元素設置為一個名為router-link-active的class--><router-link to="/about">跳轉到 about</router-link></div> </template> <script>export default {computed:{count(){return this.$store.state.count;},list(){return this.$store.getters.filteredList;}},methods:{handleIncrease(){this.$store.commit('increase',5);},handleDecrease(){this.$store.commit('decrease',5);},handleAsyncIncrease(){this.$store.dispatch('asyncIncrease').then(()=>{console.log(this.$store.state.count)});}}} </script>

?

vuex 維護多個組件之間的公共(共有)狀態!


更多專業前端知識,請上 【猿2048】www.mk2048.com

總結

以上是生活随笔為你收集整理的Vue 状态管理 Vuex的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。