Vue个人遗漏点汇总

  • vm.$watch的使用:
vm.$watch('a', function (newValue, oldValue) {
  // 这个回调将在 `vm.a` 改变后调用
})

可以观察变量a,变化的新的值和旧的值是什么?

  • 生命周期钩子解释:

每个Vue实例在被创建的时候,都要经历一系列的初始化过程,比如说:需要设置数据监听、模板编译、将实例挂载到Dom结构上,并且在数据变化时,对dom结构进行更新等等!同时这个过程,Vue允许我们运行向生命周期的钩子函数,这样子,开发者可以再不同阶段带来添加自己代码的机会!

  • 模板:

官方给出:
在底层的实现上,Vue 将模板编译成虚拟 DOM 渲染函数。结合响应系统,Vue 能够智能地计算出最少需要重新渲染多少组件,并把 DOM 操作次数减到最少。
粗略解释:
也就是说vue在一定层面上,提高了整个js的运行效率!

  • 计算属性与方法:

计算属性是基于他们的响应式依赖进行缓存的,只有相应响应式依赖发生变化时,才会重新求值!若响应依赖没有发生变化,会提取上次计算的结果!也就是缓存!而方法的话,每次用到都会执行一次!

  • 计算属性与监听:

当需要在数据变化时执行异步或开销较大的操作时,这个监听是最有用的。而设置中间状态,计算属性是无法做到的!

  • v-if 注意事项:

因为 v-if 是一个指令,所以必须将它添加到一个元素上。但是如果想切换多个元素呢?此时可以把一个 元素当做不可见的包裹元素,并在上面使用 v-if。最终的渲染结果将不包含 元素。

<template v-if="ok">
  <h1>Title</h1>
  <p>Paragraph 1</p>
  <p>Paragraph 2</p>
</template>

v-if,v-else下的标签input的value复用问题:
在input标签内加入key属性就完美解决!!

<input placeholder="Enter your username" key="username-input">
  • v-show

带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display。Display=none

  • v-if与v-show

v-if是看条件渲染,v-show是不管是否被渲染,都会保留在dom中,只是display为none的变化;
使用场景:
一般来说,v-if 有更高的切换开销,而 v-show 有更高的初始渲染开销。因此,如果需要非常频繁地切换,则使用 v-show 较好;如果在运行时条件很少改变,则使用 v-if 较好。

  • v-model 在内部为不同的输入元素使用不同的属性并抛出不同的事件:

• text 和 textarea 元素使用 value 属性和 input 事件;
• checkbox 和 radio 使用 checked 属性和 change 事件;
• select 字段将 value 作为 prop 并将 change 作为事件

  • 拆行转义字符
var htmlSTring = "<div>\
  This is a string.\
</div>";

或则 tab键上面的~键 (``)

  • v-model的深入研究:

自定义事件也可以用于创建支持 v-model 的自定义输入组件。记住:

<input v-model="searchText">

等价于:

<input
  v-bind:value="searchText"
  v-on:input="searchText = $event.target.value"
  • 组件事件名:

不同于组件和 prop,事件名不存在任何自动化的大小写转换。而是触发的事件名需要完全匹配监听这个事件所用的名称。举个例子,如果触发一个 camelCase 名字的事件:

this.$emit('myEvent')

则监听这个名字的 kebab-case 版本是不会有任何效果的:

<my-component v-on:my-event="doSomething"></my-component>

不同于组件和 prop,事件名不会被用作一个 JavaScript 变量名或属性名,所以就没有理由使用 camelCase 或 PascalCase 了。并且 v-on 事件监听器在 DOM 模板中会被自动转换为全小写 (因为 HTML 是大小写不敏感的),所以 v-on:myEvent 将会变成 v-on:myevent——导致 myEvent 不可能被监听到。

  • event.target.tagName:返回元素标签
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值