iis服务器助手广告广告
返回顶部
首页 > 资讯 > 精选 >Vuex中this.$store.commit()和this.$store.dispatch()区别是什么
  • 905
分享到

Vuex中this.$store.commit()和this.$store.dispatch()区别是什么

2023-06-29 20:06:02 905人浏览 泡泡鱼
摘要

这篇文章主要讲解了“Vuex中this.$store.commit()和this.$store.dispatch()区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex中this

这篇文章主要讲解了“Vuex中this.$store.commit()和this.$store.dispatch()区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex中this.$store.commit()和this.$store.dispatch()区别是什么”吧!

this.$store.commit()和this.$store.dispatch()的区别

两个方法其实很相似,关键在于一个是同步,一个是异步

commit: 同步操作

this.$store.commit('方法名',值) //存储this.$store.state.'方法名' //取值

dispatch: 异步操作

this.$store.dispatch('方法名',值) //存储this.$store.getters.'方法名' //取值

当操作行为中含有异步操作,比如向后台发送请求获取数据,就需要使用action的dispatch去完成了,其他使用commit即可.

其他了解

  • commit => mutations, 用来触发同步操作的方法.

  • dispatch => actions, 用来触发异步操作的方法.

在store中注册了mutation和action

在组件中用dispatch调用action,用commit调用mutation

Vuex应用实例this.$store.commit()触发

新建文件夹store,store下

action.js

const actions = {}export default actions;

getter.js

const getters = {}export default getters;

mutation-types.js

export const publicSetEvent = 'publicSetEvent';

mutations.js

import {publicSetEvent} from './mutation-types';const mutations = {    [publicSetEvent]: (state, JSON) => {    // 初始化默认,避免跳转路由时的公用部分显示的相互影响       state.publicSet = {headTitle: true,headNav: false,sTitle: '头部标题'}// 是否显示头部title        state.publicSet.headTitle = json.headTitle || state.publicSet.headTitle;        // 是否显示头部tabbar切换        state.publicSet.headNav = json.headNav || state.publicSet.headNav;        // 头部显示的标题文字        state.publicSet.sTitle = json.sTitle || state.publicSet.sTitle;        // tabbar的标题文字及待办badge数字        state.publicSet.navList = json.navList || state.publicSet.navList;    }}export default mutations;

index.js

import Vue from 'vue'import Vuex from 'vuex'import mutations from './mutations';import getters from './getters';import actions from './actions';Vue.use(Vuex);const state = {    publicSet: {//设置公共头        headTitle: true,        headNav: false,        sTitle: '头部标题'    }}const store = new Vuex.Store({    state,    getters,    mutations,    actions});export default store;

头部公共组件components文件夹下

v-header.vue

<template>  <div class="v-header">    <vTitle v-if="publicSet.headTitle" :stitle="publicSet.sTitle"></vTitle>  </div></template>
<script>import vTitle from './v-title';import {mapState} from 'vuex';export default{   name:'v-header',   components:{vTitle},   data(){    return{          }   },   computed: {       ...mapState(['publicSet'])   }}</script>

v-title.vue

<template>  <div class="v-title">      <XHeader :left-options="{backText:''}" :title="stitle"></XHeader>  </div></template>
<script>import { XHeader } from 'vux'export default{  name:'v-title',  props:['stitle'],  components:{XHeader},  data (){      return {      }  },  methods: {  }}</script><style lang="less"></style>

App.vue

<template>  <div id="app">    <vHeader></vHeader>    <router-view/>  </div></template>
<script>import vHeader from '@/components/header/v-header'export default {  name: 'app',  components:{vHeader}}</script>

main.js

import Vue from 'vue'import App from './App'import router from './router'import Vuex from 'vuex'import store from './store'Vue.use(Vuex)Vue.config.productionTip = falsenew Vue({  el: '#app',  router,  store,  components: { App },  template: '<App/>'})

页面调用index.vue

<template>    <div class="index">    </div></template>
<script>export default{    name:'index',    data(){        return{        }    },    created(){    },    beforeRouteEnter(to,from,next){        let option={          headTitle:true,      sTitle:'我是新标题'        }        console.log(option);        next(vm=>{          vm.$store.commit('publicSetEvent',option);        })    },    methods:{    }    }</script><style lang="less"></style>

运行进去index页面就可以看到公共头了

感谢各位的阅读,以上就是“Vuex中this.$store.commit()和this.$store.dispatch()区别是什么”的内容了,经过本文的学习后,相信大家对Vuex中this.$store.commit()和this.$store.dispatch()区别是什么这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

--结束END--

本文标题: Vuex中this.$store.commit()和this.$store.dispatch()区别是什么

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

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

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

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

下载Word文档
猜你喜欢
  • Vuex中this.$store.commit()和this.$store.dispatch()区别是什么
    这篇文章主要讲解了“Vuex中this.$store.commit()和this.$store.dispatch()区别是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Vuex中this...
    99+
    2023-06-29
  • Vuex中this.$store.commit()和this.$store.dispatch()区别说明
    目录this.$store.commit()和this.$store.dispatch()的区别commit: 同步操作dispatch: 异步操作其他了解Vuex应用实例this....
    99+
    2024-04-02
  • vuex中this.$store.commit和this.$store.dispatch的基本用法实例
    目录前言区别实战总结前言 this. s t o r e . d i s p a t c h ( ) 与 t h i s . store.dispatch() 与 this. sto...
    99+
    2023-01-06
    vuex this.$store.commit vuex this.$store.dispatch用法 this.$store.dispatch()
  • vuex中store.commit和store.dispatch的区别及使用方法
    目录store.commit和store.dispatch的区别及使用主要区别this.$store.dispatch() 与 this.$store.commit()总结store...
    99+
    2023-01-10
    vuex中store.commit使用 vuex中store.dispatch使用 store.commit和store.dispatch区别
  • vuex中store存储store.commit和store.dispatch的区别及说明
    目录store存储store.commit和store.dispatch区别主要区别vuex store原理及使用指南使用安装示例需求场景源码目录结构store组件初始化store存...
    99+
    2024-04-02
  • jQuery中this与$(this)的区别是什么
    本篇内容主要讲解“jQuery中this与$(this)的区别是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“jQuery中this与$(this)的区别是...
    99+
    2024-04-02
  • Java中的this和super区别是什么
    这篇文章主要介绍“Java中的this和super区别是什么”,在日常操作中,相信很多人在Java中的this和super区别是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Java中的this和supe...
    99+
    2023-06-25
  • java中this和super的区别是什么
    java中this和super的区别是什么?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。Java是什么Java是一门面向对象编程语言,可以编写桌面应用程序、We...
    99+
    2023-06-14
  • Vue.set()和this.$set()的区别是什么
    Vue.set()和this.$set()的区别是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。data () {  return&...
    99+
    2023-06-15
  • java中this和super有什么区别
    这篇文章将为大家详细讲解有关java中this和super有什么区别,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。Java有哪些集合类Java中的集合主要分为四类:1、List列表:有序的,...
    99+
    2023-06-14
  • java中super和this有什么区别
    在Java中,super和this是两个关键字,用于引用父类和当前类的实例。1. super关键字:- super关键字用于引用父类...
    99+
    2023-08-11
    java
  • java中super与this的区别是什么
    java中super与this的区别:super是当前对象里面的父对象的引用,而this指的是当前对象的引用。super调用基类中的某一个构造函数,而this调用的是本类中另一种形成的构造函数。super是用来访问直接父类中被隐藏的父类中成...
    99+
    2024-04-02
  • synchronized加锁this和class的区别是什么
    本篇内容介绍了“synchronized加锁this和class的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!synchroni...
    99+
    2023-06-21
  • Java 中的 this 和 super 区别
    目录1、简介2、引子2.1 父类中声明无参构造函数2.2 子类显示的通过super调用父类的有参构造函数3、this4、super 5、总结5.1 对比差异 5.2 相同点 5.3 ...
    99+
    2024-04-02
  • JS构造函数中this和return的区别是什么
    本篇文章给大家分享的是有关JS构造函数中this和return的区别是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。先看一段代码,func...
    99+
    2024-04-02
  • Vue中this.$router和this.$route的区别及push()方法
    官房文档里是这样说明的: 通过注入路由器,我们可以在任何组件内通过 this.$router 访问路由器,也可以通过 this.$route ...
    99+
    2024-04-02
  • PHP中$this,self,static有什么区别
    这篇文章主要讲解了“PHP中$this,self,static有什么区别”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“PHP中$this,self,static有什么区别”吧!学习时间简单地...
    99+
    2023-06-16
  • javascript中什么是this
    这篇文章主要介绍“javascript中什么是this”,在日常操作中,相信很多人在javascript中什么是this问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java...
    99+
    2024-04-02
  • this关键字在NodeJS和浏览器中有什么区别
    今天就跟大家聊聊有关this关键字在NodeJS和浏览器中有什么区别,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。var type = 1functio...
    99+
    2023-06-06
  • Java中this和super的区别及this能否调用到父类使用
    目录1.super 关键字1.1 super 方法使用1.2 super 属性使用2.this 关键字2.1 this 属性使用2.2 this 方法使用2.3 this 访问父类方...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作