摘要:參考使用構(gòu)建單頁應(yīng)用使用和實現(xiàn)購物車場景配置在下創(chuàng)建一個文件夾叫做。入口文件,在根組件調(diào)用,然后所有子組件可以共享數(shù)據(jù)。掛載獲取數(shù)據(jù)及操作從拿數(shù)據(jù),然后渲染到頁面上如果需要修改可以調(diào)用獲取狀態(tài)數(shù)據(jù)狀態(tài)變更事件
參考
使用 Vuex + Vue.js 構(gòu)建單頁應(yīng)用
使用Vue.js和Vuex實現(xiàn)購物車場景
vue-demo-collection
在src下創(chuàng)建一個文件夾叫做vuex。里面定義三個文件。
mutation-types.js 定義類型的// src/vuex/mutation-types.js export const SET_HEADER_TITLE = "SET_HEADER_TITLE"actions.js 操作,可以分解成多個文件
// src/vuex/actions.js /** * 用統(tǒng)一的函數(shù)處理并分發(fā)mutations。 * @param type * @returns {function({dispatch: *}, ...[*]): *} */ function makeAction (type) { return ({ dispatch }, ...args) => dispatch(type, ...args) } import { SET_HEADER_TITLE } from "./mutation-types" /** * actions */ export const setTitle = makeAction(SET_HEADER_TITLE)store.js 入口文件,在根組件調(diào)用,然后所有子組件可以共享數(shù)據(jù)。
// src/vuex/store.js import Vue from "vue" import Vuex from "vuex" //import createLogger from "vuex/logger" Vue.use(Vuex) //Vue.config.debug = true //const debug = process.env.NODE_ENV !== "production" // 導(dǎo)入各個模塊的初始狀態(tài)和 mutations import index from "./modules/index" export default new Vuex.Store({ // 組合各個模塊 modules: { index }, //strict: debug, //moddlewares: debug ? [createLogger()] : [] })modules/index.js 只是例子用的,一個index的操作,需要定義數(shù)據(jù)的狀態(tài)和mutation。actions.js只是分發(fā)操作。
// src/vuex/modules/index.js import { SET_HEADER_TITLE } from "../mutation-types" const state = { title: "default", info: { name:"" } } const mutations = { [SET_HEADER_TITLE](state, newTitle) { state.title = newTitle } } export default { state, mutations }掛載store
// src/App.vue import store from "./vuex/store" import HeaderComponent from "./components/header" import FooterComponent from "./components/footer" export default { store, components: { HeaderComponent, FooterComponent } }獲取數(shù)據(jù)及操作
// src/components/header.vue // 從vuex拿數(shù)據(jù),然后渲染到頁面上 // 如果需要修改可以調(diào)用setTitle import { setTitle } from "../vuex/actions" export default { vuex: { //獲取vuex狀態(tài)數(shù)據(jù) getters: { title: state => state.title, info: ({index}) => index.info }, //狀態(tài)變更事件 actions: { setTitle } } }
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://m.specialneedsforspecialkids.com/yun/80506.html
摘要:我們通常稱之為狀態(tài)管理模式,用于解決組件間通信的以及多組件共享狀態(tài)等問題。創(chuàng)建指定命名空間的輔助函數(shù),總結(jié)的功能首先分為兩大類自己的實例使用為組件中使用便利而提供的輔助函數(shù)自己內(nèi)部對數(shù)據(jù)狀態(tài)有兩種功能修改數(shù)據(jù)狀態(tài)異步同步。 what is Vuex ? 這句話我想每個搜索過Vuex官網(wǎng)文檔的人都看到過, 在學(xué)習(xí)源碼前,當(dāng)然要有一些前提條件了。 了解Vuex的作用,以及他的使用場景。 ...
摘要:有興趣的同學(xué)可以查看之前發(fā)布的文章學(xué)習(xí)系列一學(xué)習(xí)實踐筆記附學(xué)習(xí)系列二學(xué)習(xí)實踐筆記附學(xué)習(xí)系列三和網(wǎng)絡(luò)傳輸相關(guān)知識的學(xué)習(xí)實踐學(xué)習(xí)系列四打包工具的使用學(xué)習(xí)系列五從來聊聊學(xué)習(xí)系列項目地址項目暫時有點亂,之后會進行整理優(yōu)化。 上次學(xué)習(xí)了vue-router的使用,讓我能夠在各個頁面間切換,將頁面搭建了起來。這次則要學(xué)習(xí)vue的狀態(tài)管理模式——vuex。它類似于redux來應(yīng)用的全局狀態(tài)。 注:本...
摘要:是什么用來解決組件之間共用數(shù)據(jù)問題的一個插件內(nèi)部結(jié)構(gòu)就是被共用的數(shù)據(jù)但是不可以被直接操作,不可以直接訪問可以直接操作中的數(shù)據(jù),可以定義中的數(shù)據(jù)如何被改變可以觸發(fā)對的改變,該觸發(fā)操作專業(yè)名詞為與的交互通過的方式來改變通過來讀取中的數(shù)據(jù)的使用方 VUEX是什么? 用來解決組件之間共用數(shù)據(jù)問題的一個插件 Vuex 內(nèi)部結(jié)構(gòu) State 就是被共用的數(shù)據(jù)(但是不可以被直接操作,不可以直接...
摘要:各位看官沒看過功能梳理的可以先閱讀下源碼學(xué)習(xí)一功能梳理前車之鑒有了源碼學(xué)習(xí)的經(jīng)驗,每次看認(rèn)真鉆研源代碼的時候都會抽出一小段時間來大體瀏覽一遍源代碼。大體了解這個源代碼的脈絡(luò),每個階段做了什么,文件目錄的劃分。 各位看官 沒看過功能梳理的可以先閱讀下Vuex源碼學(xué)習(xí)(一)功能梳理. 前車之鑒 有了vue-router源碼學(xué)習(xí)的經(jīng)驗,每次看認(rèn)真鉆研源代碼的時候都會抽出一小段時間來大體瀏覽一...
摘要:的數(shù)據(jù)會在上顯示出來,用戶會根據(jù)上的內(nèi)容進行操作,從而觸發(fā),接著再去影響是單向數(shù)據(jù)流的方式驅(qū)動的。當(dāng)我們的應(yīng)用遇到多個組件共享狀態(tài)時,單向數(shù)據(jù)流的簡潔性很容易被破壞。中的非常類似于事件每個都有一個字符串的事件類型和一個回調(diào)函數(shù)。 組件是Vue最強大的功能之一,而組件實例的作用域是相互獨立的,意味著不同組件之間的數(shù)據(jù)是無法相互使用。組件間如何傳遞數(shù)據(jù)就顯得至關(guān)重要,這篇文章主要是介紹Vu...
閱讀 3673·2021-09-30 09:59
閱讀 2343·2021-09-13 10:34
閱讀 585·2019-08-30 12:58
閱讀 1514·2019-08-29 18:42
閱讀 2210·2019-08-26 13:44
閱讀 2932·2019-08-23 18:12
閱讀 3326·2019-08-23 15:10
閱讀 1633·2019-08-23 14:37