iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >vuex怎么在非组件中调用mutations方法
  • 773
分享到

vuex怎么在非组件中调用mutations方法

2023-06-29 16:06:37 773人浏览 安东尼
摘要

这篇文章主要讲解了“Vuex怎么在非组件中调用mutations方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuex怎么在非组件中调用mutations方法”吧!在非组件中调用muta

这篇文章主要讲解了“Vuex怎么在非组件中调用mutations方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuex怎么在非组件中调用mutations方法”吧!

在非组件中调用mutations方法

一般情况下调用 mutations.js 中的方法都是在组件中,如果想在非组件中调用,则需要使用如下方式

在组件中调用

import {mapMutations} from 'vuex'import {SET_IS_LOGIN} from 'store/mutation-types'export default {    methods: {        ...mapMutations({            set_is_login: SET_IS_LOGIN        }),        init() {            this.set_is_login(true)        }    }}

在非组件中调用

import store from 'store'import {SET_IS_LOGIN} from 'store/mutation-types'function init() {    store.commit(SET_IS_LOGIN, true)}

vuex的mutations属性

mutations属性介绍

是唯一一种方式来修改state中的状态的;在组件的自定义方法中,使用this.$store.commit(‘对应mutations中的方法’, 新的值)方法,把新的值提交给mutations中相对应的方法,mutations属性中的每个方法中有两个参数,分比为state和payload;state其实就是vuex中的state属性,payload叫做mutations的载荷,其实就是传过来的值。一般payload传的是一个对象,这样可以包含多个字段并且记录的 mutation 会更易读:

mutations: {  increment (state, payload) {    state.count += payload.amount  }}
store.commit('increment', {  amount: 10})

对象风格的提交方式

提交 mutation 的另一种方式是直接使用包含 type 属性的对象:

store.commit({  type: 'increment',  amount: 10})

当使用对象风格的提交方式,整个对象都作为载荷传给 mutation 函数,因此 handler 保持不变:

mutations: {  increment (state, payload) {    state.count += payload.amount  }}

使用常量替代 Mutation 事件类型

使用常量替代 mutation 事件类型在各种 Flux 实现中是很常见的模式。这样可以使 linter 之类的工具发挥作用,同时把这些常量放在单独的文件中可以让你的代码合作者对整个 app 包含的 mutation 一目了然:

// mutation-types.jsexport const SOME_MUTATION = 'SOME_MUTATION'
// store.jsimport Vuex from 'vuex'import { SOME_MUTATION } from './mutation-types'
const store = new Vuex.Store({  state: { ... },  mutations: {    // 我们可以使用 ES2015 风格的计算属性命名功能来使用一个常量作为函数名    [SOME_MUTATION] (state) {      // mutate state    }  }})

用不用常量取决于你——在需要多人协作的大型项目中,这会很有帮助。但如果你不喜欢,你完全可以不这样做。

Mutation 必须是同步函数

一条重要的原则就是要记住 mutation 必须是同步函数。为什么?请参考下面的例子:

mutations: {  someMutation (state) {    api.callAsyncMethod(() => {      state.count++    })  }}

现在想象,我们正在 debug 一个 app 并且观察 devtool 中的 mutation 日志。每一条 mutation 被记录,devtools 都需要捕捉到前一状态和后一状态的快照。然而,在上面的例子中 mutation 中的异步函数中的回调让这不可能完成:因为当 mutation 触发的时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调用——实质上任何在回调函数中进行的状态的改变都是不可追踪的。

在组件中提交 Mutation

你可以在组件中使用 this.$store.commit(‘xxx’) 提交 mutation,或者使用 mapMutations 辅助函数将组件中的 methods 映射为 store.commit 调用(需要在根节点注入 store)。

import { mapMutations } from 'vuex'export default {  // ...  methods: {    ...mapMutations([      'increment', // 将 `this.increment()` 映射为 `this.$store.commit('increment')`      // `mapMutations` 也支持载荷:      'incrementBy' // 将 `this.incrementBy(amount)` 映射为 `this.$store.commit('incrementBy', amount)`    ]),    ...mapMutations({      add: 'increment' // 将 `this.add()` 映射为 `this.$store.commit('increment')`    })  }}

感谢各位的阅读,以上就是“vuex怎么在非组件中调用mutations方法”的内容了,经过本文的学习后,相信大家对vuex怎么在非组件中调用mutations方法这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: vuex怎么在非组件中调用mutations方法

本文链接: https://www.lsjlt.com/news/325846.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • vuex怎么在非组件中调用mutations方法
    这篇文章主要讲解了“vuex怎么在非组件中调用mutations方法”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuex怎么在非组件中调用mutations方法”吧!在非组件中调用muta...
    99+
    2023-06-29
  • vuex如何在非组件中调用mutations方法
    目录在非组件中调用mutations方法在组件中调用在非组件中调用vuex的mutations属性mutations属性介绍对象风格的提交方式使用常量替代 Mutation 事件类型...
    99+
    2024-04-02
  • vuex中mutations怎么调用
    这篇文章主要介绍vuex中mutations怎么调用,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!mutations的调用方法直接通过$store.commit调用<button @click=&qu...
    99+
    2023-06-29
  • vuex mutations的两种调用方法小结
    目录mutations的调用方法直接通过$store.commit调用通过在methods中注册方法调用细数mutations的用法为什么要用mutations用法mutations...
    99+
    2024-04-02
  • vuex中store的action和mutations怎么使用
    本文小编为大家详细介绍“vuex中store的action和mutations怎么使用”,内容详细,步骤清晰,细节处理妥当,希望这篇“vuex中store的action和mutations怎么使用”文章能帮助大家解决疑惑,下面跟着小编的思路...
    99+
    2023-06-30
  • Vue中一个组件调用其他组件的方法详解(非父子组件)
    目录前言方式一:引用式方式二:vuex1、src/store/index.js2、被使用组件- A 页面(组件)3、使用触发页面-B 页面(组件)方式三:使用事件总线eventBus...
    99+
    2022-11-13
    vue调用其他组件方法 vue组件调用 vue组件之间调用
  • vue怎么调用组件方法
    这篇文章主要介绍了vue怎么调用组件方法的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么调用组件方法文章都会有所收获,下面我们一起来看看吧。在Vue中,组件的方法可以在组件中定义。我们可以使用Vue.e...
    99+
    2023-07-05
  • React父组件怎么调用子组件的方法
    本教程操作环境:Windows7系统、react18版、Dell G3电脑。在React中,我们经常在子组件中调用父组件的方法,一般用props回调即可。但是有时候也需要在父组件中调用子组件的方法,通过这种方法实现高内聚。有多种方法,请按需...
    99+
    2023-05-14
    React.js 前端
  • Vue3 封装扩展并简化Vuex在组件中的调用问题
    目录1.创建文件utils/vueTool.js2.添加开发环境中的模块验证3.页面调用封装如果你在项目中使用了 vuex模块化,并且在项目中使用actions中函数调用频率高,推荐...
    99+
    2023-01-28
    Vue3 封装扩展 Vuex 组件 调用
  • vue.js中怎么通过父组件调用子组件的内部方法
    今天就跟大家聊聊有关vue.js中怎么通过父组件调用子组件的内部方法,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。子组件:<template&...
    99+
    2024-04-02
  • 怎么在Java中调用方法
    这期内容当中小编将会给大家带来有关怎么在Java中调用方法,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、方法调用方法调用的唯一目的:确定要调用哪一个方法方法调用分为解析调用和分派调用二、非虚方法与虚方...
    99+
    2023-06-15
  • 详解Vue3 父组件调用子组件方法($refs 在setup()、<script setup> 中使用)
    在 vue2 中 ref 被用来获取对应的子元素,然后调用子元素内部的方法。 <template> <!-- 子组件 --> <TestComp...
    99+
    2022-11-13
    Vue3 父组件调用子组件 Vue父组件子组件
  • 怎么在html中调用php方法
    对于web开发者来说,HTML和PHP是两种非常重要的编程语言。HTML是用于呈现内容的标记语言,而PHP是用于在网站中实现动态功能的服务器端编程语言。当你需要在网站中实现一些动态功能时,你需要使用PHP来完成。在许多情况下,你需要在HTM...
    99+
    2023-05-14
    php
  • 怎么在html中调用js方法
    这篇文章给大家介绍怎么在html中调用js方法,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。html有什么特点1、简易性:超级文本标记语言版本升级采用超集方式,从而更加灵活方便,适合初学前端开发者使用。2、可扩展性:超...
    99+
    2023-06-14
  • java静态和非静态方法怎么调用
    在Java中,静态方法和非静态方法的调用方式有所不同。 静态方法调用: 静态方法可以直接通过类名来调用,不需要创建类的实例。例如:...
    99+
    2024-04-02
  • 浅析Vue单文件组件与非单文件组件使用方法
    单文件组件:一个文件中只包含一个组件,后缀为.vue(常用) <template> <!-- html部分 --> <div> <p...
    99+
    2022-12-21
    Vue单文件组件 Vue非单文件组件
  • vuejs调用组件的方法是什么
    这篇文章主要讲解了“vuejs调用组件的方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“vuejs调用组件的方法是什么”吧!vuejs调用组件的方法:1、通过v-model或者.sy...
    99+
    2023-06-25
  • 浅析php方法怎么在其他文件中调用
    随着PHP技术的不断发展,越来越多的开发者开始关注php方法的相关问题,其中一个比较普遍的问题就是:php方法是否可以在其他文件中调用呢?在这篇文章中,我将详细介绍php方法在其他文件调用的方法和注意事项。一、PHP方法的调用方式在了解ph...
    99+
    2023-05-14
    php
  • C#中COM组件的ASP调用方法是什么
    这篇文章主要介绍“C#中COM组件的ASP调用方法是什么”,在日常操作中,相信很多人在C#中COM组件的ASP调用方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#中COM组件的ASP调用方法是什么...
    99+
    2023-06-17
  • C#中怎么调用Active组件
    本篇文章给大家分享的是有关C#中怎么调用Active组件,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。C#调用Active组件本程序中:建立类库添加组件类后托放:label 、...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作