首页 > 其他分享 >Vuex 快速入门

Vuex 快速入门

时间:2023-08-04 14:05:54浏览次数:59  
标签:... vuex 入门 Vuex PSD state 快速 store

Vuex 快速入门_Vue

安装

npm i vuex --save

// main.js
import vuex from 'Vuex'
Vue.use(vuex)
const store = new Vuex.store({
    // ...
})
...

state

可以理解为vue文件里面的data

Vue.use(vuex)
const store = new Vuex.store({
    state:{
        name:'tyj',
        psd:'123',
        stus:[
            {age:20,name:'aaa'}
        ]
    }
})
// 访问
{{$store.state.name}}

Getters

可以对state的数据进行过滤,计算啥的

// 类似于vue中的计算属性
getters:{
    // 计算学生的年纪和
    stusAgeCount:(state => {
        let age = 0 
        state.stus.forEach(item => age += item.age)
        return age
    })
}
// 访问
import {mapGetter} from 'vuex'
computed:{
    ...mapGetter(['stusAgeCount'])
}
{{stusAgeCount}} 相当于在data 里面有了个 stusAgeCount

Mutations 设置数据

更改 Vuex 的 store 中的状态的唯一方法是提交 mutation

mutations:{
    CHANGE_PSD(state,newValue){
        state.psd = newValue
    }
}
// 使用
methods:{
    ...mapMutation({CHANGE_PSD}),
    this.CHANGE_PSD('abc123')
}
或者
this.$store.commit('CHANGE_PSD','abc123')

我们通过提交 mutation 的方式,而非直接改变 store.state.count,是因为我们想要更明确地追踪到状态的变化

actions

changePsd({commit,state} , newPsd){
    if(state.psd !== newPsd){
        commit(CHANGE_PSD,newPsd)
    }else{
        console.log('密码重复!')
    }
}
// 调用
methods:{
    ...mapActions(['changePsd'])
    this.changePsd('123456aaa')
}
// 或者
this.$store.dispath('changePsd','1111000aaa')

Action 提交的是 mutation,而不是直接变更状态。 Action 可以包含任意异步操作。

Module 模块

当项目特别庞大时,state就会臃肿,vuex允许我们将store切割成模块,每个单独的模块拥有自己的 getter mutations actions 甚至 module 里面套module

const moduleA = {
  state: () => ({ ... }),
  mutations: { ... },
  actions: { ... },
  getters: { ... }
}

const moduleB = {
  state: () => ({ ... }),
  mutations: { ... },
  actions: { ... }
}

const store = createStore({
  modules: {
    a: moduleA,
    b: moduleB
  }
})

store.state.a // -> moduleA 的状态
store.state.b // -> moduleB 的状态

标签:...,vuex,入门,Vuex,PSD,state,快速,store
From: https://blog.51cto.com/u_16207237/6961619

相关文章

  • JetBrains Rider 2023.2 (macOS, Linux, Windows) - 快速且强大的跨平台 .NET IDE
    JetBrainsRider2023.2(macOS,Linux,Windows)-快速且强大的跨平台.NETIDE请访问原文链接:https://sysin.org/blog/jb-rider-2023/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgJetBrainsRider-快速且强大的跨平台.NETIDERider是什么?JetBrainsRider......
  • Flask快速搭建接口-python库
    Flask是一个基于Python的轻量级Web框架,用于构建Web应用程序和RESTfulAPI。它被设计为简单、易用、灵活,并且具有良好的扩展性。Flask是一个微型框架,提供了一些基本功能,但也允许开发者根据需要选择并添加扩展。Flask构成路由(Routing):Flask使用路由来定义URL和对应......
  • 华秋亮相2023世界汽车制造技术暨智能装备博览会,推动汽车产业快速发展
    洞悉全球汽车产业格局,前瞻业界未来趋势。2023年7月27日-30日,时隔三年,重聚武汉国际博览中心,2023世界汽车制造技术暨智能装备博览会盛大开幕。深耕汽车行业多年的世界汽车制造技术暨智能装备博览会,掀起行业热点新高潮。此次展会整合汽车全产业链优势资源,一站式解决资源互通、信息交......
  • 关于SaaS营销,我们都需要关注的这2个策略,快速打开销售市场
    这清晰地表明SaaS商业模式越来越受欢迎。当然,这在行业也存在着巨大的竞争。SaaS公司很难将自己的服务与竞争对手区分开来,并在行业中脱颖而出。这就是SaaS营销策略可以帮助你的地方。任何一个SaaS公司,都要考虑如何盈利的问题,而且都要组建销售团队通过选招一批有技术背景的销售,......
  • 【华秋推荐】物联网入门学习模块 ESP8266
    随着全球信息技术的不断进步和普及,物联网成为当今备受关注的技术热点之一。通过物理和数字设备之间的连接来实现自动化和互联互通的网络。无线传感器、云计算和大数据分析等技术,物联网使设备能够相互交流和共享信息,实现智能化的自动化操作。它连接着各种物体,实现物与物的互联互通......
  • python教程 入门学习笔记 第6天 数据类型转换 字符串转换成数值 数值之间互转 其它类
    4、数据类型转换1)字符串转换成数值:int()-----------将值转换成整数float()-----------将值转换成小数str()-----------将值转换成字符串bool()-----------将值转换成布尔值例如:int()将值转换成整数s1="188"#字符串ns1=int(s1)#转换成整型数值print(ns1+8)#打印数......
  • Redis从入门到放弃(8):哨兵模式
    在前面的文章中介绍了Redis的主从复制,但主从复制存在一定的缺陷。如果Master节点宕机,因为不具备自动恢复功能,需要人工干预,那么在这个干预过程中Redis将不可用。为了解决这一问题,Redis官方推荐一种高可用方案:哨兵模式(Sentinel)。1、什么是哨兵模式?哨兵模式是Redis的高可用解决方案......
  • 使用Cloud Studio快速构建React完成点餐H5页面还原
    一、前言IDE(集成开发环境)是一种软件工具,旨在为开发者提供一个集成的开发平台,其中包含了各种用于编写、调试和部署应用程序的工具和功能。IDE通常提供代码编辑器、编译器、调试器、版本控制、构建工具等,可以帮助我们更高效地进行软件开发。传统的IDE通常是安装在本地计算机上的软......
  • Redis从入门到放弃(8):哨兵模式
    在前面的文章中介绍了Redis的主从复制,但主从复制存在一定的缺陷。如果Master节点宕机,因为不具备自动恢复功能,需要人工干预,那么在这个干预过程中Redis将不可用。为了解决这一问题,Redis官方推荐一种高可用方案:哨兵模式(Sentinel)。1、什么是哨兵模式?哨兵模式是Redis的高可用解决方......
  • 植物大战僵尸修改器制作--从入门到入土
    目录基础准备基址偏移表常规项目卡槽植物种植无冷却无限阳光浓雾透视基本原理HOOK除雾代码种植植物基本原理远程线程注入dll函数远程线程卸载dll函数关键dll函数失败代码远程线程代码注入(推荐)种植僵尸基本原理种植僵尸函数--dll注入版远程代码注入版完整代码参考资料基础准备......