鹤壁市住房和城乡建设局网站住房和城乡建设部官网政务服务门户

news/2025/9/23 14:14:01/文章来源:
鹤壁市住房和城乡建设局网站,住房和城乡建设部官网政务服务门户,建设网站的公司兴田德润在哪里,phpcms对比wordpress目录 一、Vuex简介 1.1 定义 1.2 Vuex关键概念 1.3 使用Vuex的优势 1.4 Vuex中各个js文件的用途 1.5 Vuex各组件 1.5.1 图解 1.5.2 详解 1.6 变量传值的演变形式 二、Vuex获取值 2.1 安装 2.2 菜单栏 2.3 模块 2.4 引用 三、Vuex改变值 四、Vuex异步请求后台…目录 一、Vuex简介 1.1 定义 1.2 Vuex关键概念 1.3 使用Vuex的优势 1.4 Vuex中各个js文件的用途 1.5 Vuex各组件 1.5.1 图解 1.5.2 详解 1.6 变量传值的演变形式 二、Vuex获取值 2.1 安装 2.2 菜单栏 2.3 模块 2.4 引用 三、Vuex改变值 四、Vuex异步请求后台 4.1 Vuex同步异步详解 4.2 代码编写 4.3 效果展示 五、收获 一、Vuex简介 1.1 定义 Vuex是一个专为Vue.js应用程序开发的状态管理模式与库。它用于管理Vue.js应用程序中的状态state和数据流以确保状态在不同组件之间的一致性和可维护性。Vuex基于Flux和Redux的思想提供了一种集中管理和跟踪状态变化的机制特别适用于大型和复杂的前端应用程序。 1.2 Vuex关键概念 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态并以一种可预测的方式进行状态的变更。以下是 Vuex 的关键概念 State状态: State 即应用的状态是存储在 Vuex 中的数据。在 Vuex 的 store 中所有的状态都被集中存储。State 是响应式的当 State 的数据发生变化时相关的组件将自动更新。 Getter获取器: Getter 类似于组件中的计算属性。它们的作用是对 Store 中的 State 进行一些处理然后输出处理后的结果。Getter 可以接受其他 Getter 作为第二个参数。 Mutation突变: Mutation 是 Vuex 中更改 State 的唯一方式。Mutation 必须是同步函数用于改变 State 中的数据。每个 Mutation 都有一个字符串的事件类型type和一个回调函数回调函数就是实际进行状态更改的地方。在组件中提交 Mutation 的方法是 this.$store.commit(mutationType)。 Action动作: Action 类似于 Mutation不同之处在于 Action 提交的是 Mutation而不是直接变更状态。Action 可以包含任意异步操作。通过 Action 可以提交多个 Mutation。在组件中分发 Action 的方法是 this.$store.dispatch(actionType)。 Module模块: 在大型应用中单一的 State 树很容易被各种功能模块儿淹没。Module 允许我们将 State 分割成模块每个模块有自己的 State、Getter、Mutation 和 Action。模块内部的 Mutation 和 Action 可以接收和操作模块内部的局部状态。 1.3 使用Vuex的优势 使用Vuex的主要优势包括 集中式管理Vuex通过单一的存储仓库来管理应用程序的状态使状态变化可追踪和可维护。 数据共享可以轻松地在不同的组件之间共享和传递状态数据而不需要通过组件之间的繁琐的通信手段。 开发工具支持Vue.js的开发工具提供了对Vuex的强大支持可以方便地查看状态快照、时间旅行调试等。 可测试性由于Vuex的状态管理是纯粹的你可以更容易地编写单元测试来验证你的状态和逻辑。 1.4 Vuex中各个js文件的用途 在一个典型的Vuex项目中通常会有一些不同的JavaScript文件每个文件都有特定的用途。以下是这些文件的一般用途 store.js 用途这是Vuex的核心文件包含了Vuex的Store实例的配置和创建。内容 导入Vue和Vuex库。导入模块如果有多个模块。创建Vuex的Store实例配置state、mutations、actions、getters等。导出Store实例以便在Vue应用程序中使用。state.js可选 用途将应用程序的状态state单独抽取到一个文件中以便更好地组织和维护状态数据。内容仅包含应用程序的状态数据。mutations.js可选 用途将突变mutations函数单独抽取到一个文件中以便更好地组织和维护状态变更逻辑。内容包含突变函数这些函数用于同步修改状态。actions.js可选 用途将动作actions函数单独抽取到一个文件中以便更好地组织和维护异步操作逻辑。内容包含动作函数这些函数用于执行异步任务并触发突变来修改状态。getters.js可选 用途将获取器getters函数单独抽取到一个文件中以便更好地组织和维护状态的派生数据。内容包含获取器函数这些函数用于从状态中获取计算属性。modules/ 文件夹可选 用途当应用程序变得复杂时可以将Vuex的Store模块化将不同模块的状态、突变、动作和获取器分别放在不同的文件中以便更好地组织和管理代码。内容 包含不同模块的state.js、mutations.js、actions.js和getters.js等文件用于组织和管理不同模块的代码。 以上文件的具体结构和文件名可以根据项目的需求和组织方式来定制但这种组织方式有助于保持代码的可维护性和可读性并更好地分离关注点。 1.5 Vuex各组件 1.5.1 图解 1.5.2 详解 在一个Vue.js应用程序中通过Vuex进行状态管理时通常涉及多个组件。以下是一些常见的Vuex组件的角色和功能 根组件Root Component 角色 通常是Vue应用的根组件如App.vue。功能 作为整个应用的入口点可以在根组件中通过this.$store来访问和传递状态。 容器组件Container Components 角色 也称为Smart组件或父组件通常包含了子组件并负责管理状态。功能 负责获取状态、触发动作、将状态传递给子组件并监听状态变化以更新子组件。 展示组件Presentational Components 角色 也称为Dumb组件或子组件通常只关心UI呈现和用户交互。功能 接收父组件传递的状态和方法负责呈现数据和用户界面。 Getter组件Getter Components 角色 特殊的子组件专门用于获取Vuex的Getter中的数据。功能 通过计算属性或方法获取派生数据然后呈现在UI中。 Mutation组件Mutation Components 角色 特殊的子组件专门用于触发Vuex的Mutation以修改状态。功能 通常包含按钮或表单当用户执行某个操作时触发Mutation来更新状态。 Action组件Action Components 角色 特殊的子组件专门用于触发Vuex的Action以执行异步操作。功能 通常包含表单或交互当用户需要执行异步操作时触发Action来执行复杂逻辑并更新状态。 这些组件之间的交互和关系构成了一个完整的Vue.js应用程序其中状态由Vuex进行管理。容器组件负责连接Vuex Store和展示组件Getter组件用于获取状态Mutation组件用于修改状态而Action组件用于执行异步操作。根组件通常是整个应用的入口点并将状态传递给容器组件。这种组件分层结构有助于代码的组织和维护以及更好的可维护性和可测试性。 1.6 变量传值的演变形式 二、Vuex获取值 2.1 安装 下载Vuex指令代码如下 npm install vuex -S npm i -S vuex3.6.2 注mockjs版本不同所需执行的下载安装指令也相对应不同。  下载过程 出现版本号即安装成功 安装完成之后开始进行代码优化。 注本篇博客是基于上篇博客代码的基础上优化的详情请点击 Kissship的博客ElementUI之CUD表单验证https://blog.csdn.net/weixin_74263417/article/details/133344819?spm1001.2014.3001.5501 2.2 菜单栏 在src中创建一个vuex的目录在改目录下创建两个组件page1page2 代码如下 page1 templatediv stylepadding: 60px;h1刘三金的羁绊/h1p改变state中的值/p请输入你的初恋input v-modelmsg /button clickfun1获取state/buttonbutton clickfun2改变state/button/div /templatescript export default {data() {return {msg: 默认值};},methods: {fun1() {// 获取 Vuex 中的 eduName 状态let eduName this.$store.state.eduName;alert(eduName);},fun2() {// alert(this.msg)// 提交一个名为 setEduName 的 mutation 来更改 eduName 状态this.$store.commit(setEduName, {eduName: this.msg});}} } /scriptstyle /stylepage2 templatedivh1死亡丧彪/h1{{eduName}}/div /templatescript export default {data() {return {msg: 默认值}},computed: {eduName() {// 从 Vuex store 中获取 eduName 的值return this.$store.state.eduName;}} } /scriptstyle /* 在这里添加组件的样式 */ /style到项目中src的router的index.js文件中配置路径如下 import page1 from /Views/vuex/page1 import page2 from /Views/vuex/page2 {path: /vuex/page1,name: page1,component: page1},{path: /vuex/page2,name: page2,component: page2} 在src中的components的LeftNav.vue组件中编辑(增加)代码如下 el-submenu indexidx_999 keyidx_999template slottitlespanvuex管理/span/templateel-menu-item index/vuex/page1 keyidx_99901span页面1/span/el-menu-itemel-menu-item index/vuex/page2 keyidx_99902span页面2/span/el-menu-item/el-submenu 2.3 模块 在项目中创建store目录分别维护state/actions/mutations/getters/store state.js export default{eduName:死亡60HZ的支配,aname:,bname: }mutations.js export default {setEduName: (state, payload) {//state指的就是state.js文件中导出的对象//payload就是vue文件传递过来的参数// A.Vue name {a_name:this.name}// B.Vue name {b_name:this.name}// state.aname payload.a_name;// state.bname payload.b_name;state.eduName payload.eduName;} }getters.js export default {getEduName: (state) {return state.eduname;} }actions.js 先不写代码。 index.js import Vue from vue import Vuex from vuex import state from ./state import getters from ./getters import actions from ./actions import mutations from ./mutations Vue.use(Vuex) const store new Vuex.Store({state,getters,actions,mutations})export default store2.4 引用 在src中的main.js进行引用如下 import store from ./store/* eslint-disable no-new */ new Vue({el: #app,router,store,data(){return{Bus:new Vue()}},components: { App },template: App/ }) 然后取值操作在前面的page1页面中已经写完了接下来我们进行效果展示如下 三、Vuex改变值 page1 templatediv stylepadding: 60px;h1刘三金的羁绊/h1p改变state中的值/p请输入你的初恋input v-modelmsg /button clickfun1获取state/buttonbutton clickfun2改变state/button/div /templatescript export default {data() {return {msg: 默认值};},methods: {fun1() {// 获取 Vuex 中的 eduName 状态let eduName this.$store.state.eduName;alert(eduName);},fun2() {// alert(this.msg)// 提交一个名为 setEduName 的 mutation 来更改 eduName 状态this.$store.commit(setEduName, {eduName: this.msg});}} } /scriptstyle /style执行结果如下 四、Vuex异步请求后台 4.1 Vuex同步异步详解 Vuex 是一个用于管理 Vue.js 应用程序状态的状态管理模式和库。在 Vuex 中操作可以分为同步和异步操作这两种操作类型在应用程序状态管理中起到不同的作用。以下是对 Vuex 同步和异步操作的详细解释 同步操作 同步操作是指立即执行并修改应用程序状态的操作。在 Vuex 中这通常通过 mutations 来实现。Mutations 是用于修改状态的函数它们必须是同步的这意味着它们不应该包含异步代码。当你需要在应用程序中执行一些立即生效的状态变更时同步操作是非常有用的。 异步操作 异步操作是指可能需要一些时间来执行的操作例如数据获取、网络请求、或其他需要等待的任务。在 Vuex 中这通常通过 actions 来处理。Actions 是用于分发异步任务的函数它们可以包含异步代码例如异步 API 调用然后在异步操作完成后提交 mutations 来修改状态。 异步操作适用于需要等待的任务因为它们不会阻塞应用程序的其他操作使得应用可以继续响应用户的输入。你可以在异步操作中使用异步 JavaScript 特性如 Promises 或 async/await来管理异步代码。 总结 同步操作用于立即修改状态是直接的、快速的操作。异步操作用于处理需要等待的任务例如网络请求、数据获取等。异步操作通过 actions 来触发可以包含异步代码并在异步操作完成后提交 mutations 来更新状态以确保状态的一致性。 4.2 代码编写 在page1.vue组件中编写所有代码,page1代码如下 templatediv stylepadding: 60px;h1刘三金的羁绊/h1p改变state中的值/p请输入你的初恋input v-modelmsg /button clickfun1获取state/buttonbutton clickfun2改变state/buttonbutton clickfun3异步改变state/buttonbutton clickfun4请求后台/button/div /templatescriptexport default {data() {return {msg: 默认值};},methods: {fun1() {// 获取 Vuex 中的 eduName 状态let eduName this.$store.state.eduName;alert(eduName);},fun2() {// alert(this.msg)// 提交一个名为 setEduName 的 mutation 来更改 eduName 状态this.$store.commit(setEduName, {eduName: this.msg});},fun3() {this.$store.dispatch(setEduNameAsync, {eduName: this.msg});},fun4() {this.$store.dispatch(setEduNameAjax, {eduName: this.msg,_this:this});}}} /scriptstyle /style在page2.vue组件中编写所有代码,page2代码如下 templatedivh1死亡丧彪/h1{{eduName}}/div /templatescript export default {data() {return {msg: 默认值}},computed: {eduName() {// 从 Vuex store 中获取 eduName 的值return this.$store.state.eduName;}} } /scriptstyle /* 在这里添加组件的样式 */ /style在src的action.js中配置后台请求的地址如下 VUEX_AJAX: vuex/queryVuex, //Vuex的后台异步请求 在src的store模块中编写actions.js如下 export default {setEduNameAsync: (context, payload) {//context指的是Vuex的上下文setTimeout(function() {context.commit(setEduName, payload);}, 10000); //十秒后执行},setEduNameAjax: (context, payload) {let _this payload._this;//this并不代表vue实例let url _this.axios.urls.VUEX_AJAX;let params {resturantName:payload.eduName}_this.axios.post(url, params).then(r {console.log(r);}).catch(e {})} }4.3 效果展示 异步效果展示如下 请求后台效果如下 五、收获 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它可以帮助你管理应用程序的状态并确保状态的一致性尤其在大型或复杂的应用程序中更为重要。使用 Vuex 进行状态管理可以带来许多好处尤其是对于值的改变和异步操作。 一致性的状态管理 Vuex 提供了一个单一的状态树即存放在一个地方的状态使得应用的所有组件可以访问和共享状态。这确保了应用的状态保持一致避免了在不同组件中可能出现的状态不一致性问题。 易于跟踪和调试 由于所有状态都集中在一个地方因此更容易跟踪状态的变化这对于调试和排查错误非常有用。你可以轻松地监控状态的变化了解数据如何随时间变化。 中心化管理数据流 Vuex 将数据的流向、修改和维护集中到一个地方而不是分散在多个组件中。这使得数据流变得可预测和易于理解有助于应用程序的维护和扩展。 简化组件间通信 通过 Vuex组件之间的通信变得简单明了。你可以通过提交(mutations)和分发(actions)来修改状态而不必通过多层嵌套的组件传递数据。 异步操作的便利性 在 Vuex 中处理异步操作变得更为优雅。你可以在 actions 中发起异步操作然后在操作完成后再提交(mutations)来更新状态。这使得管理异步行为更加清晰和有序。 适用于大型应用 对于大型应用程序特别是需要处理复杂状态和多组件交互的应用使用 Vuex 可以更好地组织代码、分离关注点从而使得应用程序更容易维护和扩展。 总的来说Vuex 中的改变值和异步操作的使用可以让你更好地管理应用程序的状态确保一致性、易于调试和拓展并提高代码的清晰度和可维护性。 最后Vuex基础使用存取值异步请求后台就到这里祝大家在敲代码的路上一路通畅! 感谢大家的观看 !

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912797.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

有没有如何做网站的书网站建设大约多少钱

目录 Java后端接收数据 第一章、后端不写任何注解情况下接收参数1.1)后端不写注解postman发出get请求1.2)后端不写注解postman发出post请求 第二章、后端写RequestParam注解接收参数2.1)postman发出post请求2.2)postman发出get请求…

网站建站与优化网站编辑岗位

堆的概念 堆是一棵完全二叉树,一般使用数组来存储。通俗来讲堆其实就是利用数组来维护一个完全二叉树。 按照堆的特点可以把堆分为大顶堆和小顶堆 大顶堆:堆的每个结点的值都大于或等于其左右孩子结点的值 小顶堆:堆的每个结点的值都小于或…

建站公司 商城dw修改wordpress主题

在并发编程中,锁是一种常用的机制,用于保护共享资源的访问。乐观锁和悲观锁是两种不同的锁机制。 乐观锁:不会一开始就加锁,在更新的时候,判断一下在此期间别人是否修改了数据,若修改了不执行此操作&#…

网站实名制 怎么做wordpress 文字折叠

前言: 为什么之前写过Golang 版的设计模式,还在重新写Java 版? 答:因为对于我而言,当然也希望对正在学习的大伙有帮助。Java作为一门纯面向对象的语言,更适合用于学习设计模式。 为什么类图要附上uml 因为很…

济宁网站建设推荐网络服务营业部

​大家好,最近实验室的BCA仪器坏了,偶然发现nanodrop也可以测蛋白浓度,省不少时间!本方法原理是:紫外吸收 友情提示:由于表格的存在,用电脑看本推文,效果更好 紫外吸收法 较为灵…

四川做网站设计哪家好天博网站建设

是引用传递。 Python的设计哲学是一切皆对象,不仅体现在内置数据类型、数据结构是对象,还包括Python编译运行需要的一些设施,比如stackframe、traceback等等。所以,为了更方便的传递数据,cpython内部全部采用指针传递…

站长工具seo综合查询pc济宁哪里有做网站的

Element - The worlds most popular Vue UI framework 2 Menu 菜单 | Element Plus 3 侦听器 | Vue.js vue中文官网

新闻类网站开发难点平台网站空间

<%#eval%>是单方向的资料连接 <%#bind%> 双方向的资料连接 <%#eval%>是只读的,你看到的那些无法更新数据的数据显示控件,可以用这个 <%#bind%> 不但可读,而且可写,那些可更新数据库的数据绑定控件,用这个 <%# DataBinder.Eval(Container.DataItem,&…

视频素材交易网站建设呼市网页设计培训

文章目录 题目解析算法原理解法一&#xff1a;暴力枚举(超时&#xff09;解法二&#xff1a;双指针单调性 代码实现暴力枚举(超时&#xff09;双指针单调性(时间复杂度为O(N)&#xff0c;空间复杂度为O(1)&#xff09; 题目解析 题目链接&#xff1a;11.盛最多水的容器 这道题…

27届春招备战一轮复习--第六期

27届春招备战一轮复习--第六期未经作者允许,禁止转载----作者:王贵祥目录27届春招备战一轮复习--第六期pythonQ :你了解 python 哪些知识? 它做什么?Q:你使用过的模型有哪些? (仅做了解,除非你项目写了或者是…

27届春招备战一轮复习--第七期

27届春招备战一轮复习--第七期未经作者允许,禁止转载----作者:王贵祥今天,我们来写点算法 题目一:(难度极低) 实现一个十进制数字报数程序,请按照数字从小到大的顺序返回一个整数数列,该数列从数字 1 开始,到…

WPF Prism

Install-Package Prism.WPF; Install-Package Prism.DryIOC; //App.xaml <prism:PrismApplication x:Class="WpfApp37.App"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"…

备份一个简易队列写法

备份一个简易队列写法 定义 typedef struct {uint8_t data[14]; } can_frame_t;typedef struct {can_frame_t frames[CAN_FRAME_QUEUE_SIZE];volatile uint8_t head;volatile uint8_t tail;volatile uint8_t count; } …

松岗做网站价格新传奇网页游戏

在将单元测试postmortem编码到另一个项目创建的代码时,我遇到了如何使用initBinder模拟与控制器绑定的验证器的这个问题&#xff1f;通常我会考虑确保我的输入是有效的,并且在验证器中进行一些额外的调用,但在这种情况下,验证器类与通过几个数据源进行检查相结合,并且测试变得相…

网站seo分析案例河南网站建设推荐

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 Python基础知识总览1. Python简介2. 安装与环境配置3. 基本语法3.1 变量与数据类型3.2 控制结构3.3 函数与模块3.4 文件操作 4. 面向对象编程&#xff08;OOP&#…

做数学题的网站有吗自助建站网站哪个好

ART公司成立于1999年&#xff0c;拥有38万员工遍布全球&#xff0c;ART一直致力于红外线光学跟踪系统的研发与生产&#xff0c;并将先进的科技应用于产品研发&#xff0c;产品制造&#xff0c;市场营销&#xff0c;产品销售以及优秀的客户支持。主要向客户提供高端的虚拟现实跟…

建站平台控制自适应网页模板企业

概述 外连接的进阶用法在行列转换中比较有优势&#xff0c;往往存在需要把数据库中的格式转换成报表格式&#xff0c;但是SQL仅仅只是查询数据的语言&#xff0c;格式转换并不是原本的用途。 全外连接 标准 SQL 里定义了外连接的三种类型&#xff0c;如下所示。 左外连接&…

公司网站开发有哪些今天西安新消息

随着科技的不断发展&#xff0c;虚拟现实&#xff08;VR&#xff09;技术已经逐渐渗透到各个领域&#xff0c;为人们的生活带来了极大的便利。在煤矿行业&#xff0c;VR技术的应用也日益受到重视&#xff0c;尤其是在煤矿安全检查方面。为了提高矿工的安全意识和技能&#xff0…

福州网站改版哪家好wordpress做英文站

&#x1f9d1; 作者简介&#xff1a;阿里巴巴嵌入式技术专家&#xff0c;深耕嵌入式人工智能领域&#xff0c;具备多年的嵌入式硬件产品研发管理经验。 &#x1f4d2; 博客介绍&#xff1a;分享嵌入式开发领域的相关知识、经验、思考和感悟,欢迎关注。提供嵌入式方向的学习指导…

全球做空现货黄金的网站网页制作专业个人职业生涯规划书

大家好&#xff0c;我是雄雄&#xff0c;欢迎关注公众号【雄雄的小课堂】。最近&#xff0c;我的个人站上线啦&#xff0c;大家可以直接在浏览器的地址栏中输入&#xff1a;穆雄雄.com&#xff0c;轻轻敲击回车&#xff0c;即可直接进入……欢迎大家多多关注&#xff0c;多多留…