首页 > 其他分享 >Vuex详解(基础)

Vuex详解(基础)

时间:2022-11-17 16:34:55浏览次数:74  
标签:vue 基础 js 文件夹 store Vuex 详解 mutation

Vue详解---来自实习生的倔强

一、Vuex一般用在什么地方?vuex使用场景

Vuex 可以帮助我们管理共享状态,并附带了更多的概念和框架。这需要对短期和长期效益进行权衡。如果不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。如果要创建的够简单,最好不要使用 Vuex。一个简单的 store 模式就足够了。但是,如果需要构建一个中大型单页应用,很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。

二、安装Vuex

手动安装

1、npm:

     Yarn:

 2、在src文件夹下新建store文件夹,在store文件夹下新建index.js,并编写如下内容

挂载到Vue,进入main.js,编写

 

 

  自动安装:

1、用vue/cli创建vue项目,vue  create  + 项目文件名

2、选择手动创建

3、勾选vuex

 

 创建项目具体事宜可参考: https://www.cnblogs.com/reverse-x/p/16806534.html

项目创建完毕后,目录下就会产生

三、Vuex的核心概念

1、State:存储应用状态数据的对象,与vue中data类似

 

2、Getters:类似vue的计算属性,store中数据的变化,getters的数据也会发生变化

 

3、Mutations: 提交mutation来修改store中的状态,同步操作

 

4、Actions:与mutations类似,提交修改state的行为,处理异步任务(提交的是mutation,不是直接修改状态)

 

四、在组件中使用

1、在标签中直接调用

 

 

 

 

 

 

 

2、this.$store.state.全局数据名称,(赋值写法仅供参考)

 

 

 

 

 

 

3、从vuex中按需导函数。

 

 

 

 

 

       5和3,为所传参数

 

 

 

 

五、Modules: 模块化状态管理,为了开发大型项目,方便状态管理而使用的

 

Vuex由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。当应用变得非常复杂时,store 对象就有可能变得相当臃肿。

 

因此,Vuex 允许我们将 store 分割成模块(module),每个模块拥有自己的 state、mutation、action、getter、甚至是嵌套子模块。

 

默认情况下,模块内部的 action、mutation 和 getter 是注册在全局命名空间的,这样使得多个模块能够对同一 mutation 或 action 作出响应。如果希望你的模块具有更高的封装度和复用性,此时就用到了命名空间这个概念。

大体上就是这个样子也没有什么太大变化。

    1、获取命名空间的state数据

 

 

 

 第三种方式需引入

   2、获取命名空间的getters数据

      第三方式需引入

     

   

 

  3、获取命名空间的Mutations

引入

 

   4、获取命名空间的Actions(与mutations一致)

 

 

 

命名空间模块化过多,会造成代码的冗杂,我们可以在src文件夹下,新建modules文件夹,并在modules文件夹下创建product.js(命名随意)

 

protect.js内容如下

 

 

 而后,我们在store/index.js中引入protect.js

 

 在modules中引入,这样可以减轻代码的冗杂。

 

 

标签:vue,基础,js,文件夹,store,Vuex,详解,mutation
From: https://www.cnblogs.com/reverse-x/p/16896426.html

相关文章

  • 正则表达式基本语法的详解
    正则表达式基本语法的详解本文给给大家介绍正则表达式的基本语法,需要的朋友可以参考下 正则表达式是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为“......
  • RocketMQ 重试机制详解及最佳实践
    作者:斜阳引言本文主要介绍在使用RocketMQ时为什么需要重试与兜底机制,生产者与消费者触发重试的条件和具体行为,如何在RocketMQ中合理使用重试机制,帮助构建弹性,高可用......
  • python3-基础篇-09-字典
     字典的特点:1.无序的2.key唯一ps:类似于java中的map一、字典创建字典的每个键值key=>value对用冒号:分割,每个键值对之间用逗号,分割,整个字典包括在花括号{}中,格......
  • NATS 入门详解
           参考翻译自NATS官方文档 https://nats-io.github.io/docs/https://toutiao.io/posts/p883vaw/preview  NATS入门详解......
  • iOS app上架app store流程详解
     前提条件在有效期内的苹果开发者账号(类型为个人或者公司账号)。还有一种情况,就是你的AppleID被添加到公司开发者账号团队里面,这样也是可以的,但是需要叫管理员给你开......
  • Django model 中的 class Meta 详解
    通过一个内嵌类"classMeta"给你的model定义元数据classCourseCategory(BaseModel):name=models.CharField(max_length=64,unique=True,verbose_name='分类名......
  • SpringBoot事件监听机制及发布订阅模式详解
    业务需求:用户注册成功之后,系统会给用户发放优惠券,发送邮件,发送短信等操作。作为开发人员,很容易写出如下代码:/***用户注册逻辑**@authorLynch*/@GetMapping(......
  • 7-数据监控分析与基础
    一、分析过滤数据二、三、四、......
  • Java 基础
    一.Java程序设计概述1.Java介绍Java是一个完整的平台,有一个庞大的库,库中包含大量可重用的代码,以及一个提供诸如安全行、跨操作系统可移植性以及自动垃圾回收功能......
  • Koa框架基础
    Koa是一个基于Node的web服务器开发框架,通过Koa我们可以更便捷地开发web服务器。不必像上一节那样刀耕火种地从零开始写。安装Koacnpminstallkoa--save用koa创建服务......