顿悟Vue框架

2023-10-07 19:59
文章标签 vue 框架 顿悟

本文主要是介绍顿悟Vue框架,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、生命周期:成住坏空

在佛的眼里,犹如人之生老病死,凡是具体的事物,都是有始有终的。这个始终,就是具体事物的生命周期。

在OOP(面向对象编程)的编程语言里,具体的事物,就是实例化的对象,一般简称对象(object)或实例(instance)。JavaScript是一门OOP的语言,基于JS的前端框架Vue.js中的Vue实例对象,同样如此,是有生命周期的。

Vue实例整个生命周期的全过程,Vue框架埋了8个点,即有8个可供程序员调用或使用的回调函数,简称钩子函数或钩子。

其实,认真看一下,如果你顿悟了,你会发现,这8个钩子,共分为4组,对应的正是佛家眼里具体事物 “成、住、坏、空”的四个阶段。具体梳理如下:

Vue实例生命周期成住坏空4阶段与8个钩子
阶段佛教事物生命
四阶段名称
Vue实例
生命周期
Vue暴露的
8个钩子函数
createbeforeCreate()
阶段1成 - 表创成诞生
created()
mountbeforeMount()
阶段2住 - 表登堂入室
mounted()
updatebeforeUpdate()
阶段3坏 - 表新陈代谢
updated()
destorybeforeDestory()
阶段4空 - 表消亡归空
destoryed()

之所以4个阶段,有8个钩子;因为从辩证的角度看,每个阶段还可细分出本质变化之前和之后,即before(变化发生之前)和ed(变化完成之后)。

万物皆流,无物常住。在佛的眼里,正是一切皆在流变之中,所以成、住、坏、空的最终的归宿是空,事物的根性是空。性空,空是性;而变才是最后的原因或根源。正是因为唯一不变的是变。所以,Vue实现生命周期4阶段中的4个关键词都是动词:create、mount、update、destory。

所以,Vue实例生命周期及钩子函数,可以归纳为最后这个公式:

Vue实例Lifecycle 8个钩子 = (成create+住mount+坏update+空destory) * (befored+ed)

是阵列吗? 4 * 2 = 8

|   成   |
|   住   |   \ /   | 之前 |
|   坏   |   / \   | 之后 |
|   空   |

这里边有一个要义,就是 坏,Vue实例的update,更新。把“坏”和“更新”联系甚至等同起来理解,对于很多人来说,并不容易。  其实,“苟日新,日日新,又日新”,很好理解,“更新”的本质,就是“新陈代谢”,有一天,更新不动了,新陈代谢停止了,事物也就归空了、消亡了;同样,对于Vue实例来说,一旦没有任何update,它的生命,就会直奔destory而去。

 

换句话说,就像我们说,自然是大宇宙,人是小宇宙一样;成住坏空 和 update,也可以这样理解:成住坏空,是大的update,是整体上的update;而一次update,是小的成住坏空。就像人的生死和日常的睡梦一样。从生死死,人生如梦,人的一生,是一次大的梦幻;而每一天,人的一次睡觉,是一次小的生死;当有一天,睡下去就再也没有觉的时候,人也就真的挂了,这一生也就结束了。

所以说,在佛的眼中,这一切,不过都是大同小异罢了,没有什么根本的不同。所以说,这个世界上的万事万物都缘起性空。你所见者,不过是生老病死,不过是成住坏空,不过梦幻泡影,不过是四大皆空,五蕴皆空,空空如也。色即是空,空即是色;色不易空,空不易色。万事万物,本质上都不过是浮水流沙,所谓无物常住,就是像镜子中的色彩光影一样,虚幻得很。色即万物,包括Vue实例。包括Vue实例,登堂入室,mounted挂载成功,被世人所见到,色不易空,这并不会改变什么。

对了,快没边了,我有点扯远了。我要说的就四个字:成、住、坏、空。记住了吗:create、mount、update、destory。

二、Vuex状态管理:一块菜地

引子:春秋兴替,四季轮回,开花结果,天道因缘;暖风吹开花朵冷风吹落果实

Vuex是Vue框架的一个插件,作用上主状态管理。

这里的状态(state),其实就是指不同组件或界面的公共的数据或共享的变量。

Vuex有五大要件,分别是:state、mutations、actions、getters和modules。

const store = new Vuex.Store({state: {...},  //相当于data(){}mutations: {...}, //【同步修改】相当于methods: {}actions: {...}, //【异步修改】相当于AJAX的领地,但修改state,不能绕过mutationsgetters: {...}, //相当于computed: {}modules: {...} //外套或壳。细分与综合
})

这五大要件中,较关键的要件有三个,即:state、mutations、actions。

  • state是状态数据或共享变量;
  • mutations用于同步修改state;
  • actions用于mutations之前所需要的异步操作;

另外两个要件:

  • getters,相当于非共享的computed计算属性(设计上主要起辅助性作用);
  • modules,相对于另外4个要件的综合或外套(相当于是个壳,用于细分和封装用的);

总体上来说,把握住了state、mutations和actions,也就差不多把握住了Vuex。

如果有一个好的案例或场景,用来操作和理解这些要件,那就再好不过了。

那我想了一下,有点顿悟的意思,有这样一个案例或需求场景,比较经典,这个案例,就叫作:HM之一块菜地吧。

Human一词,指人类,可以简写作HM。西方的宗教传说,人类始于亚当和夏娃。我觉着吧,还是我们中国的故事经典,就叫小红(XH)和小明(XM)吧,也可以简作HM。

HM两口子,有一块菜地,既然是一家人两口子,所以这个菜地,也主是XH和XM的公共菜地。

这块公共菜地和它上面的东西,就具有了Vuex的state共享数据的特征,我们就叫它garden吧,假设这块菜地左中右各种有一棵辣椒树,辣椒树上的辣椒,就叫果子fruit好了,最初数量都为0。

我们还可以假设,HM有一个可爱的孩子,就叫丽丽吧,那肯定也是公共的呀,属于共享数据。所以,就有了我们的state存储的数据如下:

state: {kidInfo: {name: 'lily',gender: 'female',age: 12,clothColor: 'green'},garden: [{id:101, fruit: 0, position: 'left'},{id:102, fruit: 0, position: 'middle'},{id:103, fruit: 0, position: 'right'},]}

对于lily,XH和XM当然都可以给她换衣服,改变它的颜色了。

而对于garden菜地:

  • 刮冷风的时候,果子fruit会直接地掉,fruit会减少,相当于直接走mutations,修改fruit的状态;
  • 起暖风的时候,则会花开结果,fruit会增多;而要结果则要先开花,花开在actions,果结在mutations,相当于actions和mutations之间有依赖关系,换句话说,我们不能直接mutations增加果子fruit,而要先走actions,要先等暖风来、等花开,等风来、等花开的过程,其实是一种说法,HM都不会去干等,所以相当于是一种异步机制或异步操作。

我们可以搞两个方法,一个是addFruit()、一个是subtractFruit()。

  • addFruit起因于暖风,要先开花,再结果,关连异步操作,走actions---->mutations---->state路线
  • subtractFruit起因于冷风,直接吹落果子,关连同步操作,走mutations---->state路线

这篇关于顿悟Vue框架的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/160110

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个?

跨平台系列 cross-plateform 跨平台应用程序-01-概览 cross-plateform 跨平台应用程序-02-有哪些主流技术栈? cross-plateform 跨平台应用程序-03-如果只选择一个框架,应该选择哪一个? cross-plateform 跨平台应用程序-04-React Native 介绍 cross-plateform 跨平台应用程序-05-Flutte

Vue3项目开发——新闻发布管理系统(六)

文章目录 八、首页设计开发1、页面设计2、登录访问拦截实现3、用户基本信息显示①封装用户基本信息获取接口②用户基本信息存储③用户基本信息调用④用户基本信息动态渲染 4、退出功能实现①注册点击事件②添加退出功能③数据清理 5、代码下载 八、首页设计开发 登录成功后,系统就进入了首页。接下来,也就进行首页的开发了。 1、页面设计 系统页面主要分为三部分,左侧为系统的菜单栏,右侧

Spring框架5 - 容器的扩展功能 (ApplicationContext)

private static ApplicationContext applicationContext;static {applicationContext = new ClassPathXmlApplicationContext("bean.xml");} BeanFactory的功能扩展类ApplicationContext进行深度的分析。ApplicationConext与 BeanF

【VUE】跨域问题的概念,以及解决方法。

目录 1.跨域概念 2.解决方法 2.1 配置网络请求代理 2.2 使用@CrossOrigin 注解 2.3 通过配置文件实现跨域 2.4 添加 CorsWebFilter 来解决跨域问题 1.跨域概念 跨域问题是由于浏览器实施了同源策略,该策略要求请求的域名、协议和端口必须与提供资源的服务相同。如果不相同,则需要服务器显式地允许这种跨域请求。一般在springbo

数据治理框架-ISO数据治理标准

引言 "数据治理"并不是一个新的概念,国内外有很多组织专注于数据治理理论和实践的研究。目前国际上,主要的数据治理框架有ISO数据治理标准、GDI数据治理框架、DAMA数据治理管理框架等。 ISO数据治理标准 改标准阐述了数据治理的标准、基本原则和数据治理模型,是一套完整的数据治理方法论。 ISO/IEC 38505标准的数据治理方法论的核心内容如下: 数据治理的目标:促进组织高效、合理地

Java 后端接口入参 - 联合前端VUE 使用AES完成入参出参加密解密

加密效果: 解密后的数据就是正常数据: 后端:使用的是spring-cloud框架,在gateway模块进行操作 <dependency><groupId>com.google.guava</groupId><artifactId>guava</artifactId><version>30.0-jre</version></dependency> 编写一个AES加密

ZooKeeper 中的 Curator 框架解析

Apache ZooKeeper 是一个为分布式应用提供一致性服务的软件。它提供了诸如配置管理、分布式同步、组服务等功能。在使用 ZooKeeper 时,Curator 是一个非常流行的客户端库,它简化了 ZooKeeper 的使用,提供了高级的抽象和丰富的工具。本文将详细介绍 Curator 框架,包括它的设计哲学、核心组件以及如何使用 Curator 来简化 ZooKeeper 的操作。 1