iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >vuex进阶知识点的示例分析
  • 790
分享到

vuex进阶知识点的示例分析

2024-04-02 19:04:59 790人浏览 独家记忆
摘要

这篇文章将为大家详细讲解有关Vuex进阶知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、 Gettercomputed:{   ge

这篇文章将为大家详细讲解有关Vuex进阶知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

一、 Getter

computed:{
  getName(){
   return this.$store.state.name
  }
}

这里假设现在逻辑有变,我们最终期望得到的数据(getName),是基于 this.$store.state.name 上经过复杂计算得来的,刚好这个getName要在好多个地方使用,那么我们就得复制好几份.

vuex 给我们提供了 getter,请看代码 (文件位置 /src/store/index.js)

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
 // 类似 vue 的 data
 state: {
  name: 'oldName'
 },
 // 类似 vue 的 computed -----------------以下5行为新增
 getters:{
  getReverseName: state => {
    return state.name.split('').reverse().join('')
  }
 },
 // 类似 vue 里的 mothods(同步方法)
 mutations: {
  updateName (state) {
   state.name = 'newName'
  }
 }
})

然后我们可以这样用 文件位置 /src/main.js

computed:{
  getName(){
   return this.$store.getters.getReverseName
  }
}

事实上, getter 不止单单起到封装的作用,它还跟vue的computed属性一样,会缓存结果数据, 只有当依赖改变的时候,才要重新计算.

二、 actions和$dispatch

细心的你,一定发现我之前代码里 mutations 头上的注释了 类似 vue 里的 mothods(同步方法)

为什么要在 methods 后面备注是同步方法呢? mutation只能是同步的函数,只能是同步的函数,只能是同步的函数!! 请看vuex的解释:

现在想象,我们正在 debug 一个 app 并且观察 devtool 中的 mutation 日志。每一条 mutation 被记录, devtools 都需要捕捉到前一状态和后一状态的快照。然而,在上面的例子中 mutation 中的异步函数中的回调让这不 可能完成:因为当 mutation 触发的时候,回调函数还没有被调用,devtools 不知道什么时候回调函数实际上被调 用——实质上任何在回调函数中进行的状态的改变都是不可追踪的。
那么如果我们想触发一个异步的操作呢? 答案是: action + $dispatch, 我们继续修改store/index.js下面的代码

文件位置 /src/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
 // 类似 vue 的 data
 state: {
  name: 'oldName'
 },
 // 类似 vue 的 computed
 getters:{
  getReverseName: state => {
    return state.name.split('').reverse().join('')
  }
 },
 // 类似 vue 里的 mothods(同步方法)
 mutations: {
  updateName (state) {
   state.name = 'newName'
  }
 },
 // 类似 vue 里的 mothods(异步方法) -------- 以下7行为新增
 actions: {
  updateNameAsync ({ commit }) {
   setTimeout(() => {
    commit('updateName')
   }, 1000)
  }
 }
})

然后我们可以再我们的vue页面里面这样使用

methods: {
  rename () {
    this.$store.dispatch('updateNameAsync')
  }
}

三、 Module 模块化

项目越来越大的时候,单个 store 文件,肯定不是我们想要的, 所以就有了模块化. 假设 src/store 目录下有这2个文件

moduleA.js

export default {
  state: { ... },
  getters: { ... },
  mutations: { ... },
  actions: { ... }
}

moduleB.js

export default {
  state: { ... },
  getters: { ... },
  mutations: { ... },
  actions: { ... }
}

那么我们可以把 index.js 改成这样

import moduleA from './moduleA'
import moduleB from './moduleB'

export default new Vuex.Store({
  modules: {
    moduleA,
    moduleB
  }
})

这样我们就可以很轻松的把一个store拆分成多个.

关于“vuex进阶知识点的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

--结束END--

本文标题: vuex进阶知识点的示例分析

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

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

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

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

下载Word文档
猜你喜欢
  • vuex进阶知识点的示例分析
    这篇文章将为大家详细讲解有关vuex进阶知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、 Gettercomputed:{   ge...
    99+
    2024-04-02
  • HTML进阶知识的示例分析
    小编给大家分享一下HTML进阶知识的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!文档类型HTML5 <!DOCT...
    99+
    2024-04-02
  • Python基础知识点的示例分析
    这篇文章给大家分享的是有关Python基础知识点的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、python中的标志符:给变量取的名字就是标志符区分大小写,MyName和myname是两个不同的标志符...
    99+
    2023-06-29
  • HTML基础知识点的示例分析
    这篇文章将为大家详细讲解有关HTML基础知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。   一、HTML是谁发明的   1990年Tim Berner...
    99+
    2024-04-02
  • python中pandas的知识点的示例分析
    这篇文章主要介绍python中pandas的知识点的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!python的数据类型有哪些python的数据类型:1. 数字类型,包括int(整型)、long(长整型)和f...
    99+
    2023-06-14
  • HTML中入门知识点的示例分析
    这篇文章主要为大家展示了“HTML中入门知识点的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“HTML中入门知识点的示例分析”这篇文章吧。   HTM...
    99+
    2024-04-02
  • Java中基础知识点的示例分析
    这篇文章主要为大家展示了“Java中基础知识点的示例分析”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“Java中基础知识点的示例分析”这篇文章吧。1、String类1.1两种对象实例化方式对于S...
    99+
    2023-06-20
  • JS模块化知识点的示例分析
    小编给大家分享一下JS模块化知识点的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!模块化是一个语言膨胀的必经之路,它能够...
    99+
    2024-04-02
  • 超全的PHP进阶知识点
    目录 前文基础知识 static关键字 预定义常量 引号区别 字符串函数 数组进阶 函数进阶 变量作用域 类进阶 PHP超级全局变量 文件处理 文件属性获取 目录操作 正则表达式 phpstorm报错解决 前文基础知识 超详细的PHP入...
    99+
    2023-09-02
    php 开发语言
  • web移动开发知识点的示例分析
    小编给大家分享一下web移动开发知识点的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧! 1、生命周期调用函数 常见的...
    99+
    2024-04-02
  • vuex的示例分析
    这篇文章主要介绍了vuex的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。如果你在使用 vue.js , 那么我想你可能会对 vue...
    99+
    2024-04-02
  • Python进程和线程知识点举例分析
    本篇内容主要讲解“Python进程和线程知识点举例分析”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python进程和线程知识点举例分析”吧!多线程一个进程至少包含一个线程,其实进程就是由若干个...
    99+
    2023-06-02
  • css样式优先级知识点的示例分析
    这篇文章将为大家详细讲解有关css样式优先级知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、“载” 这里的“载”,是载体,即样式表。对于开发人员来说,经常涉及到的只是“载”之一,除此之外...
    99+
    2023-06-08
  • mysql数据库基础知识点的示例分析
    这篇文章将为大家详细讲解有关mysql数据库基础知识点的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。数据库一、 修改数据表添加一列:ALTERTABL...
    99+
    2024-04-02
  • MYSQL进阶知识点有哪些
    这篇文章主要介绍MYSQL进阶知识点有哪些,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!文章目录1 前言1.1 数据库架构1.2 监控信息2 影响数据库的因素2.6.1 什么是事务2...
    99+
    2024-04-02
  • composer进阶命令的示例分析
    这篇文章将为大家详细讲解有关composer进阶命令的示例分析,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。composer 进阶命令composer dumpautoload当更新了项目composer...
    99+
    2023-06-14
  • Pytorch进阶操作的示例分析
    小编给大家分享一下Pytorch进阶操作的示例分析,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、合并与分割1.cat拼接直接按照指定的dim维度进行合并,要求...
    99+
    2023-06-25
  • 如何进行Redis知识点的分析
    如何进行Redis知识点的分析,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。是数据结构而非类型很多文章都会说,redis支持5种常用的数据类型,这其实是存在很大...
    99+
    2023-06-16
  • JavaScript特殊知识的示例分析
    这篇文章主要介绍JavaScript特殊知识的示例分析,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!1.  Function.prototype 竟然是个函数类型。而自定义...
    99+
    2024-04-02
  • AngularJS基础知识的示例分析
    这篇文章主要介绍了AngularJS基础知识的示例分析,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。指令AngularJS 指令是扩展的 H...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作