
Vue
程序媛Lisa
这个作者很懒,什么都没留下…
展开
-
Vue组件间的通信
Vue提供的两个钩子,适用于父子/祖孙之间的通信,层次很深的情况下可以用这种方法,provide发送数据,inject接收数据。1.父给子传参(父:自定义属性传递变量,子:用Props['父元素自定义属性']接受),ref/refs父子传参。2.子给父传参(子:this.$emit(父元素自定义事件,传递的值) 父:自定义事件用参数去接收传递来 的值)③发送数据的一方,通过vm.$emit(“事件名”,传递的数据)触发事件,将数据传递。前者可以访问父组件的实例,后者可以访问子组件的实例。原创 2024-04-16 09:23:42 · 234 阅读 · 0 评论 -
React和vue框架的diff算法的比较
都是忽略跨级比较,只做同级的比较;Vue diff时会调用patch方法,参数为vnode和oldVnode,分别代表新旧参数; Vue 对比节点,当节点元素相同,只是className不同,Vue会认为是不同节点,删除重建;而react则认为是相同节点元素,只是更新节点属性; Vue的列表对比,采用从两端到中间的方式,而react则采用从左到右依次对比;当集合中最后一个节点移动到第一位时,react会把前面的节点依次移动,而Vue只会就把最后一个移动到第一个。原创 2024-04-15 10:32:49 · 186 阅读 · 0 评论 -
v-if和v-show
(因为懒加载,初始为 false 时,不会渲染,但是因为它是通过添加和删除 dom元素来控制显示和隐藏的,因此初始渲染开销较小,切换开销比较大)。v-show 其实就是在控制 css ,v-if 切换有一个局部编译/卸载的过程,切换过程中合适地销毁和重建内部的事件监听和子组件。(无论 true 或者 false 初始都会进行渲染,此后通过 css 来控制显示隐藏,因此切换开销比较小,初始开销较大),v-show 都会编译,初始值为 false,只是将 display 设为 none,但它也编译了;原创 2024-04-11 14:52:39 · 217 阅读 · 0 评论 -
Vuex的核心属性
Mudules:拆分模块,大型项目会用到,当状态比较多时,store就会比较臃肿,这个时候,vuex允许我们将store分割成模块。每个模块中拥有自己的state,mutations,getters,actions.action提交的是mutation,不能直接变更状态,action可以包含任意异步操作。Mutations:存储修改state值的方法,只能是同步函数,commit触发。Getters:计算属性,对state中的值进行操作,并返回新的值。State:存储共享的值。dispatch触发。原创 2024-04-11 14:08:23 · 164 阅读 · 0 评论 -
Vue的生命周期
组件数据更新之前调用,此时页面中显示的数据还是旧的,data是最新的,页面尚未与最新的数据保持同步。组件销毁前调用,vue实例从运行阶段进入到销毁阶段,这时vue实例身上所有都可用。组件实例被创建之初,data和methods中的数据还没有初始化。组件更新后,页面和data数据已经保持同步,都是最新的。指令解析完毕,内存中生成dom树,但尚未挂载到页面中。组件销毁后调用,vue实例上所有都不可以再用了。:keep-alive专属,组件被销毁时调用。,dom渲染完毕,页面和内存的数据已经同步。原创 2024-04-11 13:59:39 · 149 阅读 · 0 评论 -
Vue2和Vue3的区别
Vue2利用defineproperty为每个对象的属性添加监听器,当属性发生变化的时候,自动更新对应的DOM元素。Vue2 是按照功能进行划分,如data存储数据,method存储方法,computed存储计算属性。Vue3使用proxy代理技术,代替之前的define方式,代理对象data的所有修改工作。Vue3按照业务进行划分,例如完成网络请求的相关功能放一起。③可以监听数组,vue3可以检测到数组内部数据的变化。③Vue2的跟元素只能有一个,Vue3随意。⑤Vue3中的vuex中没有this了。原创 2024-04-11 12:02:08 · 335 阅读 · 0 评论