站在Vue的角度,对比鸿蒙开发中的状态管理
开局一张图 内容全靠手搓
看到图片没:State就是状态的意思 UI就是页面的意思 研究的就是数据变了页面变
事件驱动和数据驱动的区别
所以又找了两张图
看到虚拟DOM的都是数据驱动 (这个虚拟DOM 就会产生diff算法,面试也喜欢问,其实没啥用)
看到事件触发 事件队列的都是事件驱动
事件驱动代码实操一个例子
点击按钮 触发事件, 事件找到box元素,找到以后就可以修改里面的内容,就是一个典型的事件驱动
热身结束
先创建一个vue的项目 用的是最新的Vite
如果vite构建项目不会,可以看这个学习文档
数据的声明和使用
vue中声明响应式数据
解释一下
就可以做到数据改变 页面效果跟着变
来个面试题
import {ref,reactive,toRefs,toRef,shallowRef,shallowReactive,customRef} from "vue"
这里引入的这些都是啥区别
鸿蒙中声明响应式数据
代码解析
1:声明的内容需要写在Build前 2:声明需要使用 @State
3:变量需要有类型 4:修改的时候需要带this
vue中声明非响应式数据
修改代码 请问点击按钮n会变吗?
答案是点击以后 n和num在页面都更新
点两下的结果
这么看的话,n是不是也是响应式数据???? n肯定不是响应式数据 ,只要注释掉一行代码即可
为什么? (用最新版本的Vue3哈,别用老的)留给会Vue的大哥们 在评论区回答吧
鸿蒙中声明非响应式数据
vue中嵌套数据的响应式
先声明数据
没有任何问题 数据变页面变化
鸿蒙中嵌套数据的响应式
代码解析
发现在鸿蒙中不能像Vue那样直接修改嵌套数据 直接修改的数据页面不会更新
解决方法直接更新对象 其实这个问题在Vue2中也存在,只是后来更新了,因此还有面试题问Vue2和Vue3中数据更新的问题和原理
这样修改就可以了,这是鸿蒙第一版的问题,现在推荐使用V2的状态管理来做
鸿蒙中V2的状态管理
未完待续,下一篇接着讲 这种数据在页面的显示












浙公网安备 33010602011771号