1.v-if以及v-for:当它们同时存在于一个节点上时,v-if 比 v-for 的优先级更高。这意味着 v-if 的条件将无法访问到 v-for 作用域内定义的变量别名;所以我一般是在v-for内部用一个template去包裹v-if。
3.v-model 会忽略任何表单元素上初始的 value、checked 或 selected attribute。它将始终将当前绑定的 JavaScript 状态视为数据的正确来源。
4.文本类型的 和 元素会绑定 value property 并侦听 input 事件; 和 会绑定 checked property 并侦听 change 事件; 会绑定 value property 并侦听 change 事件。
所以面试的时候别再傻乎乎的说v-model == v-bind+ @input了。
5.每个 Vue 组件实例在创建时都需要经历一系列的初始化步骤,比如设置好数据侦听,编译模板,挂载实例到 DOM,以及在数据改变时更新 DOM。在此过程中,它也会运行被称为生命周期钩子的函数,让开发者有机会在特定阶段运行自己的代码。
6.关于watch,我一般更推荐这样使用
watch(
() => obj.count,
(count) => {
console.log(count is: ${count})
}
)
另外关于deep:true;需要注意的点是深度侦听需要遍历被侦听对象中的所有嵌套的属性,当用于大型数据结构时,开销很大。因此请只在必要时才使用它,并且要留意性能。
7.HTML 标签和属性名称是不分大小写的,所以浏览器会把任何大写的字符解释为小写。这意味着当你使用 DOM 内的模板时,无论是 PascalCase 形式的组件名称、camelCase 形式的 prop 名称还是 v-on 的事件名称,都需要转换为相应等价的 kebab-case (短横线连字符) 形式。
8.关于闭合标签:这是因为 Vue 的模板解析器支持任意标签使用 /> 作为标签关闭的标志。 然而在 DOM 内模板中,我们必须显式地写出关闭标签.