vuex的使用_vuex具体使用场景

vuex的使用_vuex具体使用场景vuex的使用

大家好,又见面了,我是你们的朋友全栈君。

index.js

store文件下的基本文件

import Vue from 'vue'
import Vuex from 'vuex'
import * as actions from './actions'
import * as getters from './getters'
import state from './state'
import mutations from './mutations'
// 每次mutation 打印日志
import createLogger from 'vuex/dist/logger'

Vue.use(Vuex)

// 开启调试
const debug = process.env.NODE_ENV !== 'production'

export default new Vuex.Store({
  actions,
  getters,
  state,
  mutations,
  strict: debug,
  plugins: debug ? [createLogger()] : []
})
复制代码

state.js

管理状态

const state = {
  singer: {}
}
export default state
复制代码

mutations.js

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation。Vuex 中的 mutation 非常类似于事件:每个 mutation 都有一个字符串的 事件类型 (type) 和 一个 回调函数 (handler)

import * as types from './mutation-type'

const mutations = {
  [types.SET_SINGER](state, singer) {
    state.singer = singer
  }
}

export default mutations
复制代码

mutation-type.js

管理mutations的名字

// 定义一些常量
export const SET_SINGER = 'SET_SINGER'
复制代码

action.js

异步操作或对mutation进行封装会在此书写


复制代码

getters.js

对state进行映射,即为store的计算属性

/* 将数据提交到组件 */
export const singer = state => state.singer
复制代码

在组件中提交 Mutation修改数据

使用 mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用

import { mapMutations } from 'vuex'
复制代码

在组件中取数据

<script type="text/ecmascript-6">
import { mapGetters } from 'vuex'
export default {
  computed: {
    ...mapGetters(['fullScreen', 'playList'])
  }
}
</script>
复制代码

转载于:https://juejin.im/post/5b98b137e51d450e6b0da887

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/107289.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 【游戏】光棍节程序员闯关秀过关攻略「建议收藏」

    【游戏】光棍节程序员闯关秀过关攻略「建议收藏」光棍节,与我无关,结果昨夜下了场雨,导致路面结冰,大侠的出行计划泡汤了,只好在家淘宝抢东西。结果网友发来一个光棍节程序员闯关秀游戏,让大侠一发不可收拾。。。游戏地址http://segmentfault.com/game/花了两个小时过了9关,最后一关没过去。欢迎大家补充。第一关:本关用右键查看URL就能得到地址,大侠用的GoogleChrome,查看元素,下面的也基本用这个浏

    2022年7月16日
    31
  • java.lang.NoSuchMethodException异常「建议收藏」

    java.lang.NoSuchMethodException异常「建议收藏」在Struts2中,有时候会出现java.lang.NoSuchMethodException异常,有可能是三种情况导致的运行异常:第一种:Action类的方法被定义成private类型.Action中被访问的方法被定义成private类型.程序在访问其方法时,会抛出以上异常。第二种:Action类继承了ActionSupport类时程序在访问其方法时,也会抛出上述异常。第三种…

    2022年4月20日
    140
  • 【LINUX】(Ubuntu)无显示器接入,使用虚拟显示器且远程控制「建议收藏」

    【LINUX】(Ubuntu)无显示器接入,使用虚拟显示器且远程控制「建议收藏」https://blog.csdn.net/qq_29757283/article/details/102604431

    2022年8月21日
    8
  • vue新建项目,目录文件解释「建议收藏」

    1.2.1、build文件夹是保存一些webpack的初始化配置。config文件夹保存一些项目初始化的配置。2、node_modules是npm加载的项目依赖的模块。3、src目录是我们要开发的目录,打开是这样的:其中assets:用来放置图片components:用来放组件文件app.vue:是项目入口文件,代码如下:App.vue相当于…

    2022年4月6日
    62
  • java BigDecimal类型 比较大小

    java BigDecimal类型 比较大小一般我们进行类型比较有.equals()、==、.compareTo()但是当比较bigdecimal类型时最好使用.compareTo()来比较大小BigDecimala=BigDecimal.ZERO;BigDecimalb=BigDecimal.valueOf(0.000);BigDecimalc=BigDecimal.valueOf(0.0);a.equals(b)的结果会是fal…

    2022年7月14日
    44
  • MariaDB安装教程

    MariaDB安装教程注:从MariaDB10.4.3开始,不再提供预构建的数据目录,并且用户需要运行mysql_install_db.exe来创建数据目录1、解压到自定义路径E:\MariaDB\mariadb-10.5.4-winx642、将其中的bin加入path系统环境路径3、用管理员方式打开cmd,并打开bin目录4、输入mysql_install_db.exe–datadir=E:\MariaDB\mariadb-10.5.4-winx64\data–service=MyMar..

    2022年6月14日
    29

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号