· 繁杂信息太多,你要学会辨别
不太理解你的疑问在哪里,因为 Vue 不能侦测的是直接对著数组的某个索引赋值,例如 replys[1] = {},但是你这边是对数组里面的某个元素赋值, Vue 是可以侦测到的,Vue是通过监测 get, set 来得知数据是否更新,而数组的索引是没有 get、set
你对这个回答的评价是?
你对这个回答的评价是?
Vue中常用的按键别名:
适用于:切换频率较低的场景,用于展示列表数据
特点:不展示的DOM元素直接被移除
注意:v-if可以和:v-else-if、v-else一起使用,但要求结构不能被“打断”
可遍历:数组、对象、字符串(用的很少)、指定次数(用的很少)
写法::class=“xxx” xxx可以是字符串、对象、数。
所以分为三种写法,字符串写法,数组写法,对象写法
字符串写法适用于:类名不确定,要动态获取。
数组写法适用于:要绑定多个样式,个数不确定,名字也不确定。
对象写法适用于:要绑定多个样式,个数确定,名字也确定,但不确定用不用。
有两种写法,对象写法,数组写法
· 繁杂信息太多,你要学会辨别
不太理解你的疑问在哪里,因为 Vue 不能侦测的是直接对著数组的某个索引赋值,例如 replys[1] = {},但是你这边是对数组里面的某个元素赋值, Vue 是可以侦测到的,Vue是通过监测 get, set 来得知数据是否更新,而数组的索引是没有 get、set
你对这个回答的评价是?
你对这个回答的评价是?
下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
Vue的生命周期钩子就是回调函数而已,当创建组件实例的过程中会调用对应的钩子方法
内部主要是使用callHook方法来调用对应的方法。核心是一个发布订阅模式,将钩子订阅好(内部采用数组的方式存储),在对应的阶段进行发布!
Vue.mixin的作用就是抽离公共的业务逻辑,原理类似“对象的继承”,当组件初始化时会调用mergeOptions方法进行合并,采用策略模式针对不同的属性进行合并。如果混入的数据和本身组件中的数据冲突,会采用“就近原则”以组件的数据为准。
mixin中有很多缺陷 "命名冲突问题"、"依赖问题"、"数据来源问题",这里强调一下mixin的数据是不会被共享的!
nextTick中的回调是在下次 DOM 更新循环结束之后执行的延迟回调。在修改数据之后立即使用这个方法,获取更新后的 DOM。原理就是异步方法(promise,mutationObserver,setImmediate,setTimeout)经常与事件环一起来问(宏任务和微任务)
vue多次更新数据,最终会进行批处理更新。内部调用的就是nextTick实现了延迟更新,用户自定义的nextTick中的回调会被延迟到更新完成后调用,从而可以获取更新后的DOM。
Virtual DOM就是用js对象来描述真实DOM,是对真实DOM的抽象,由于直接操作DOM性能低但是js层的操作效率高,可以将DOM操作转化成对象操作,最终通过diff算法比对差异进行更新DOM(减少了对真实DOM的操作)。虚拟DOM不依赖真实平台环境从而也可以实现跨平台。
虚拟DOM的实现就是普通对象包含tag、data、children等属性对真实节点的描述。(本质上就是在JS和DOM之间的一个缓存)
Vue的diff算法是平级比较,不考虑跨级比较的情况。内部采用深度递归的方式 + 双指针的方式进行比较。
Vue3中采用最长递增子序列实现diff算法
为什么$set可以触发更新,我们给对象和数组本身都增加了dep属性。当给对象新增不存在的属性则触发对象依赖的watcher去更新,当修改数组索引时我们调用数组本身的splice方法去更新数组
// 1.是开发环境 target 没定义或者是基础类型则报错
// 3.如果是对象本身的属性,则直接添加即可
// 5.如果不是响应式的也不需要将其定义成响应式属性
// 6.将属性定义成响应式的
// 7.通知视图更新
$attrs主要的作用就是实现批量传递数据。provide/inject更适合应用在插件中,主要是实现跨级数据传递
1. 父子组件渲染的先后顺序
2. 组件是如何渲染到页面上的
①在渲染父组件时会创建父组件的虚拟节点,其中可能包含子组件的标签
②在创建虚拟节点时,获取组件的定义使用Vue.extend生成组件的构造函数。
③将虚拟节点转化成真实节点时,会创建组件的实例并且调用组件的$mount方法。
④所以组件的创建过程是先父后子
每次使用组件时都会对组件进行实例化操作,并且调用data函数返回一个对象作为组件的数据源。这样可以保证多个组件间数据互不影响
v-if在编译过程中会被转化成三元表达式,条件不满足时不渲染此节点。v-show会被编译成指令,条件不满足时控制样式将对应节点隐藏 (内部其他指令依旧会继续执行)
扩展回答: 频繁控制显示隐藏尽量不使用v-if,v-if和v-for尽量不要连用
前端开发Vue中的v-指令的使用
前端开发之Vue模板学习
前端开发之Vue框架的优势
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。