| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> JavaScript知识库 -> 项目中使用vuex -> 正文阅读 |
|
[JavaScript知识库]项目中使用vuex |
? ? ? ? ?1. 为什么要使用vuex ,以及什么情况下使用vuex 呢?试想一下当你的vue中data 中有大量的字段,各个组件之间的传值,以及共用的状态属性,当这些东西越来越多时就会在个人开发或者多人协作时提高难度,此时我们就需要引用vuex 来进行管理,什么样的项目适合使用呢,中大型项目使用的价值肯定是相对较高的,如果你的项目只有简单的两三个页面,就可以着情的使用。往小了说,vuex 可以对项目中的一些data 属性状态进行统一管理,往大点说使用vuex 可以使 你的vue 代码更好的做好业务和数据的分离,vue中用来展示业务逻辑,vuex 负责数据的处理,以及后续的回传,分工更加明确,维护也更加方便。安装就不说了,可以在官网上看一下 ? ? ? ? (1)state:存放状态属性;(2)mutations:操作state 中的属性 index.js 用来创建vuex,modules为根据业务场景所区分的模块,我是根据页面分成了两个模块; index 中的代码:
打开src 下的main.js,我们需要引用store
此时我们需要会过头来看下我们的模块js,我就单拿一个例子table.js 讲
需要注意一下的是因为我项目里有多个module,所以为了区分每个module我用了namespaced为true,意味着每次操作我需要吧module 的路径都带上 现在我们可以在页面中去使用了,举个例子
在没用使用vuex 之前这个totalpage 我们一般都会在data中定义一个变量。 当我们引用了vuex 之后我们可以把这个属性定义在刚才的state中, 然后在vue 中去观察这个属性
当totalPage这个值发生变化时,会直接渲染到页面上,当我们有多个属性需要观察时,我们可以引入 当一个vue 页面中data 里有多个属性的时候我们可以使用
如果此时你想手动更改totalPage 的值,可以在mutations 中进行声明
我们需要使用commit 提交,提交的时候也别忘了加上module 路径, 这个项目中我没用到getters 因为没有涉及到一些数据的操作,getters 的使用也很简单
???????????????? 在项目中我们去请求网络获取的数据的时候,我们的逻辑最好封装在actions 里面,actions 和mutations 最大的区别就是actions提交的是 mutation,而不是直接变更状态,action 可以包含任意异步操作,而mutations只能使用同步方法,不是因为语法不支持,而是如果在mutations中使用异步方法一些前后状态的变化无法追踪,特别是多次的mutations 。 比如我请求一个接口在table.js 里面引入你的网络请求接口
这是封装在actions 里的一个网络请求,我这里是直接把state里的talent_options赋值了,你也可以在muta tions 里声明一个方法,在网络请求成功后用commit ('xxxx')直接提交, 我们需要通过分发来调用方法
这里一定要注意加上table 路径 如果我们在访问网络请求后需要把状态回调给vue,我们可以直接用promise
在外层的调用可以直接改为
???????? |
|
JavaScript知识库 最新文章 |
ES6的相关知识点 |
react 函数式组件 & react其他一些总结 |
Vue基础超详细 |
前端JS也可以连点成线(Vue中运用 AntVG6) |
Vue事件处理的基本使用 |
Vue后台项目的记录 (一) |
前后端分离vue跨域,devServer配置proxy代理 |
TypeScript |
初识vuex |
vue项目安装包指令收集 |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 | -2025/1/28 12:09:37- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |