美文网首页
vuex--一个菜鸟小白的学习笔记

vuex--一个菜鸟小白的学习笔记

作者: Yl奋斗的小白 | 来源:发表于2019-07-17 17:02 被阅读0次

Npm / cnpm install vuex --save安装vuex

Npm / cnpm install vuex-along@1.1.5 安装vuexalong防止刷新vuex变量值丢失 @1.1.5是版本号

首先在src目录下新建store(可自己定义文件夹名)文件夹里面建一个index.js文件

在main.js里引入并添加 store

Vuex由5部分组成: state、mutation、action、getter、module

State =>是用来定义变量的

Mutation =>定义方法   用来更改变量值(同步)

Action =>异步调用 mutation里的方法来修改变量值

Getter =>类似与 computed 属性

Modules =>模块化 vuex

Store下的index.js文件内容如下

以下面代码为例:

import Vue from 'vue'

import Vuex from "vuex"

import VuexAlong from "vuex-along"

import { app } from "./app"

Vue.use(Vuex)

export default new Vuex.Store({

    // 定义变量

    state: { 

        myname: ''

    },

    // 修改变量的方法

    mutations: { 

        setMyName(state,msg){

            state.myname = msg

        }

    },

    // 通过调用mutation的方法异步改变变量

    actions: { 

        setMyName(cxt, msg){

            cxt.commit("setMyName",msg)

        }

    },

    // “getter”(可以认为是 store 的计算属性)

    getters: {

        getMyName: state => {

            return state.myname

        }

    },

    // 引入外部的store

    modules: {

        app

    },

    // 引入 vuex-along 避免刷新后变量值还原

    plugins: [VuexAlong]

    }

)

State和mutation是必须的,其余可以看需求添加使用

this.$store.state.变量名  就可以在页面中获取对应变量的值

console.log(this.$store.state.myname,22)

调用mutation修改变量值: this.$store.commit(‘方法名’, ‘修改的值’)

this.$store.commit('setMyName','8')

当使用action异步修改state里的变量值时使用方法:

this.$store.dispatch(‘action里定义的方法名’,‘修改的值’)

this.$store.dispatch('setMyName',['567','222'])

使用getter获取state的变量值

this.$store.getter.getter里定义的方法

console.log(this.$store.getters.getMyName)

modules引入外部js时   这里引入的app.js

app.js代码如下

export const app = {

    state: {

        name: ''

    },

    mutations: {

        setName (state,msg) {

        state.name = msg

        }

    },

    actions: {

        setName (ctx, msg) {

        ctx.commit('setName', msg)

        }

    },

    getters: {

        getName: state => {

            return state.name

        }

    }

}

在页面中打印

console.log(this.$store)

console.log(this.$store.state)

说明引入外部定义的js后

action与getter和mutation和内部使用方法一样

但是state里取变量时

正常情况取变量值方法:this.$store.state.变量名

console.log(this.$store.state.myname)

app.js里因为时const app 所以取值时需要加 .app

console.log(this.$store.state.app.name)

请结合前面的store.js  和  app.js 代码看

相关文章

  • vuex--一个菜鸟小白的学习笔记

    Npm / cnpm install vuex --save安装vuex Npm / cnpm install v...

  • Python学习笔记~菜鸟小白

    在众多的编程语言的连翻轰炸下,我拖着伤痕累累的小心灵,走在编程的大洋上。然而并没有什么卵用,我依然还是不会编程。直...

  • Typescript

    学习笔记 菜鸟教程 《菜鸟教程》-TypeScript简介 《菜鸟教程》-TypeScript安装 《菜鸟教程》-...

  • Golang菜鸟教程-学习笔记-2019.1.27

    Golang菜鸟教程-学习笔记-2019.1.27 学习资料 菜鸟教程 进度记录 1.27 Sun golang开...

  • 谁来教我渗透测试——黑客必须掌握的HTML基础(一)

    小伙伴们,好几天不见了,这一周菜鸟小白工作很忙,所以没有每天更新学习内容,但是菜鸟小白的学习是没有停下来的,只是没...

  • Python notes(1/3)

    菜鸟 学习笔记 # /Users/xxxxx/Desktop/HelloPythion.py # -*- codi...

  • 你不懂鸡蛋(一)

    『菜鸟笔记』是读书笔记类的系列文章,是喵在阅读烘焙书籍的时候做的笔记和总结。当中若有不对的地方(菜鸟!菜鸟!菜鸟!...

  • Redis学习记录

    本人是通过菜鸟教程学习Redis的,本编文章纯属个人做笔记记录而已,大家可以去菜鸟教程学习Redis,比在我这里看...

  • Python开发的狗屁不通文章生成器

    大家好,我是菜鸟小白菌。 今天菜鸟小白菌在刷微博的时候, 发现了一个骚气的Python项目, 直接上了微博热搜.....

  • 01. Android 集成QQ登录

    前言 本篇笔记使用的工具是Android Studio。 我是一个菜鸟,这是我在简书写的第一篇学习笔记。希望以后的...

网友评论

      本文标题:vuex--一个菜鸟小白的学习笔记

      本文链接:https://www.haomeiwen.com/subject/bglclctx.html