总结: vue2中的基础语法(一)
总结: vue2中的基础语法(二)
总结: vue2中的基础语法(三)
总结: vue2中的基础语法(四)

目录

  • 1.vue项目中使用vuex
  • 2.vuex定义公共样式state并在组件中使用
  • 3.vuex定义mutations且在组建中使用mutations
  • 4.vuex使用getters的派生状态
  • 5.vuex使用actions发送异步请求
  • 6.vuex使用modules拆分复杂的业务

1.vue项目中使用vuex

vuex是官方提供的独立于组件体系之外的, 管理公共数据的工具. 采用集中式存储管理应用的所有组件的状态, 解决多组件数据通信.

它的数据也像data一样是响应式的, 集中的管理方案可以让代码更加的简洁; 方便维护.

也就是如果一个项目想做大的话, 必须使用vuex; 如果仅止步于父传子, 子传父这样父子组件之间的数据传输的话, 项目是无法做大的.


如果是在老项目中就需要下包:
①npm i vuex@3.6.2
②配置

 2.1 创建store文件夹 --> index.js2.2 书写配置项:2.2.1 创建Vuex.store实例2.2.2 向Vue实例注入store

当然在创建项目之初就可以将vuex模块一起下载

2.vuex定义公共样式state并在组件中使用

stare核心属性类似于data, 可以说直接向data一样使用即可.

在store中配置state

在组件中调用state的数据
使用this.$store.state.数据方法调用即可.

3.vuex定义mutations且在组建中使用mutations

mutations使用来修改动态修改state中的数据的.

格式:

mutations: {mutations1(state, newDate) { // state是必传的, 它就是state核心属性业务代码......},mutations2(state, newDate) { // 后面的形参可以传多个, 但是必须是以对象的格式传入业务代码......}
}

配置项

组件中调用mutations中定义的方法
使用this.$store.commit(‘mutaions中的方法名’, 形参1 或 { 形参1,形参2… }).
在配置项接收, 然后修改对应的state数据即可.



4.vuex使用getters的派生状态

它就是在state的基础上对数据进一步的加工处理, 也就是computed(计算属性)

配置getters

getters: {getters1(state) { // state是必传, state就是核心属性return 业务代码......}
}

组件中使用getters
使用$store.getters.getters中的方法名.

5.vuex使用actions发送异步请求

actions属性主要的作用就是发送异步请求(如: ajax).

也就是将整个ajax操作封装到vuex内容, 减少重复代码

格式

actions: {actions1(content) { // content相当于store对象, 是自动传入的对象; 类似于event对象axios.get('后端接口地址').then((返回数据) => {业务代码......// 在actions中不能直接操作state中的数据, 需要通过mutations中的定义的方法来访问, 如:// content.commit('mutation中的方法')})}
}

在组件中调用
使用this.$store.dispatch(‘actions方法名’)

6.vuex使用modules拆分复杂的业务

因为在实际开发过程中, vuex中的数据都写在一起的话会很复杂; 所以vue就提供了modules用来拆分相同类的数据.

拆分方法一

export default new Vuex.Store({// state: 用来保存所有的公共数据state: {},getters: {},mutations: {},actions: {},modules: {模块名1: {// namespaced为true,则在使用mutations时,就必须要加上模块名namespaced: true, state: {},getters: {},mutations: {},actions: {},modules: {}},模块名2: {// namespaced不写,默认为false,则在使用mutations时,不需要加模块名state: {},getters: {},mutations: {},actions: {},modules: {}}  }
})

拆分方法二
在store文件夹中重新定义一个模块


访问模块中的数据,要加上模块名

获取数据项:  {{$store.state.模块名.数据项名}}
获取getters: {{$store.getters['模块名/getters名']}}

访问模块中的mutations/actions:
如果namespaced为true,则需要额外去补充模块名
如果namespaced为false,则不需要额外补充模块名

$store.commit('mutations名')        // namespaced为false
$store.commit('模块名/mutations名')  // namespaced为true$store.dispatch('actions名')        // namespaced为false
$store.dispatch('模块名/actions名')  // namespaced为true

在组件中使用模块中调用state
使用 {{ $store.state.模块名.数据 }}
注意自己定义的模块还是会被合并到store中去的, 如图:

在组件中使用模块中调用mutations
使用 this.$store.commit(‘模块名/方法名’)

在组件中使用模块中调用getters
使用 $store.getters[‘模块名/方法名’]

在组件中使用模块中调用actions
使用 this.$store.dispatch(‘模块名/方法名’)

总结: Vue2中基础语法(五)相关推荐

  1. Python基础语法(五)—常用模块和模块的安装和导入

    Python基础语法(五)-常用模块的使用和模块的安装和导入,本文介绍的Python模块有:os.sys.time.datetime.random.pickle.json.hashlib.shutil ...

  2. 英语基础语法——五种基本句式

    英语的五种基本句式 Sv (主谓) Svp (主系表) Svo (主谓宾) SvoO (主谓宾宾) Svoc (主谓宾补)

  3. python基础语法手册-python语法手册

    广告关闭 2017年12月,云+社区对外发布,从最开始的技术博客到现在拥有多个社区产品.未来,我们一起乘风破浪,创造无限可能. 常用的也不超过十个,这种相对于更为复杂的html标记语言来说,markd ...

  4. java基础语法(精简版)

    文章目录 目录 文章目录 一.运算符 1.算数运算符 2.赋值运算符 3.关系运算符(比较运算符) 4.逻辑运算符 5.三元运算符 6.字符的"+"操作 7.字符串的+操作 二.流 ...

  5. 在Android中使用OpenGL ES开发第(五)节:GLSL基础语法

    一.前期基础储备 笔者之前的四篇文综述了Android中使用OpenGL ES绘制基本图形和实现了简单的相机预览,初次接触OpenGL ES开发的读者可能对其中新的概念比较迷惑,尤其是其中的顶点着色器 ...

  6. python中四种进制的输出_Python基础语法和进制

    基础语法 开发种常用的快捷键 键位 功能 ctrl + / 添加注释和取消注释 ctrl + s 保存 ctrl + c 复制 ctrl + v 粘贴 ctrl + x 剪切 ctrl + z 撤销 ...

  7. [Python从零到壹] 五.网络爬虫之BeautifulSoup基础语法万字详解

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. (五)Kotlin简单易学 基础语法-初始函数(下)

    (五)Kotlin简单易学 基础语法-初始函数(下) 函数内联 ➢ lambda可以让你更灵活的编写应用,但是,灵活也要付出代价的. ➢在JVM上,你定义的lambda会以对象实例的形式存在,JVM会 ...

  9. python中使用什么表示代码块、不需要使用大括号_Python3 基础语法

    Python3 基础语法 阅读 (129) | 发布于 2020-05-11 18:12:32 编码 # -*- coding: utf-8 -*- 这是代码的编码方式.不是程序要处理的数据的编码方式 ...

最新文章

  1. 有关定时任务的表达式--cron 详细解
  2. linux 守护进程_Linux 守护进程
  3. [Javascript] Avoid Creating floats if they are not needed
  4. sp 导出unity哪个_GitHub上发现的一个导出Unity3D场景数据的工具
  5. java什么是反射 代码说明_java编程中,常提到的反射代码指的是什么?
  6. centos6.6-zabbix2.4.5安装实战
  7. 自动化测试基础篇--Selenium中数据参数化之TXT
  8. phpwind9.0 read.php 修改,phpwind 9.0后台执行任意php代码
  9. 最新版24H全自动在线要饭系统全开源源码
  10. 算法导论 斐波那契堆
  11. 实验报告 三 密码破解技术
  12. Angular6 + My97DatePicker时间选择器实现数据双向绑定
  13. 【计量经济学】固定效应、随机效应、相关随机效应
  14. 【读书笔记】《乔布斯的魔力演讲》卡迈恩•加洛
  15. IOC如何工作:粗略
  16. iOS安全攻防(二十):越狱检测的攻与防
  17. 【中学】判断三角形的形状
  18. 最新前端教学视频 百度网盘汇总
  19. 主流互联网开发平台一览
  20. 谈谈创业公司的技术选型

热门文章

  1. 路由器和无线路由器的区别
  2. 01海马课堂项目总结1107
  3. 线程实现日期倒计时和计时
  4. R绘制世界统计地图——猴痘最新数据
  5. 升级镁光M4 SSD固件
  6. 群晖NAS 天翼云盘 使用方法
  7. 音箱箱体的分类(二)
  8. Flutter开发学习课程携程app开发(完)
  9. Android中打开扬声器关闭麦克风的代码实现
  10. 吉他指弹入门——点弦技巧与左右分脑