Vue知识点整理

1. Vue实例

每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的。

常用实例属性

app.$data
app.$props
app.$el

Vue 实例使用的根 DOM 元素。

app.$root

当前组件树的根 Vue 实例。如果当前实例没有父实例,此实例将会是其自己。

app.$options

获取定义在data外的数据和方法。

app.$children

当前实例的直接子组件。

app.$slots

获取被插槽分发的内容。

app.$scopedSlots

获取具名插槽。

app.$refs

获取注册过refs的所有DOM元素和组件实例。

app.$isServer

Vue是否运行于服务端。

常用实例方法

app.$destroy()

主动销毁该实例。

app.$mount('#root')

挂载DOM。

app.$watch

观察 Vue 实例上的一个表达式或者一个函数计算结果的变化。回调函数得到的参数为新值和旧值。

app.$forceUpdate()

迫使 Vue 实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。

app.$nextTick()

使回调函数在 DOM 更新完成后被调用。

Vue 在更新 DOM 时是异步执行的。只要侦听到数据变化,Vue 将开启一个队列,并缓冲在同一事件循环中发生的所有数据变更。如果同一个 watcher 被多次触发,只会被推入到队列中一次。这种在缓冲时去除重复数据对于避免不必要的计算和 DOM 操作是非常重要的。然后,在下一个的事件循环“tick”中,Vue 刷新队列并执行实际 (已去重的) 工作。
为了在数据变化之后等待 Vue 完成更新 DOM,可以在数据变化之后立即使用 Vue.nextTick(callback)。这样回调函数将在 DOM 更新完成后被调用。

2. 生命周期方法

beforeCreate()

实例被创建之前执行。在生命周期过程中只执行一次。

created()

实例创建完成之后执行。在生命周期过程中只执行一次。

beforeMount()

挂载组件之前(如果有挂载组件的操作)。在生命周期过程中只执行一次。

mounted()

组件挂载之后。在生命周期过程中只执行一次。

beforeUpdate()

组件更新前。

updated()

组件更新完成。

beforeDestroy()

组件销毁前。

destroyed()

组件被销毁。

3. Vue数据绑定

绑定变量:v-bind
绑定事件:v-on
绑定样式: :class="{active : isActive}"

4. computed和watch使用场景和方法

computed是计算属性(通过其他变量计算得来的另一个属性),在相关响应式依赖发生变化时它们才会重新求值。
watch是侦听器,来响应数据的变化,当需要在数据变化时执行异步或开销较大的操作时,这个方式最有用。

computed和watch都不要去改变自己监听的属性,而是要去生成一个新的值,否则会触发无限循环。

5. Vue原生指令

v-if 和 v-show 的区别

v-if=false生效时会使节点不存在在DOM流中,会动态增删节点,比较耗能;
v-show只是在节点上加上display:none。
v-if可配合v-else-if、v-else使用。

v-for和v-if的优先级

v-for的优先级高于v-if,所以在两者同时使用时,v-if会作用于每一个v-for循环上。

6. Vue组件继承

const ComVue = Vue.extend(Component)

继承的组件的prop需要通过propsData传入,data可以直接改变。

7. 插槽

需求:有一些内容,是在调用组件时根据场景去写的。

子组件:
<div class="container">
    <slot></slot>
</div>

父组件使用子组件时:

<base-layout>
123
</base-layout>

<slot></slot>的内容将被123代替。

具名插槽:使用组件时,用slot="name"指定将内容放在何处。
子组件:
<div class="container">
  <header>
    <slot name="header"></slot>
  </header>
  <main>
    <slot></slot>
  </main>
  <footer>
    <slot name="footer"></slot>
  </footer>
</div>

父组件使用子组件时:

使用时:
<base-layout>
 <template v-slot:header>
   <h1>Here might be a page title</h1>
 </template>

 <template v-slot:default>
   <p>A paragraph for the main content.</p>
   <p>And another one.</p>
 </template>

 <template v-slot:footer>
   <p>Here's some contact info</p>
 </template>
</base-layout>

注意:一个不带 name 的 <slot> 出口会带有隐含的名字“default”。

作用域插槽

需求:插槽内容能够访问子组件中才有的数据。
子组件:

<span>
 <slot v-bind:user="user">
   {{ user.lastName }}
 </slot>
</span>

父组件中使用:

<current-user>
  <template v-slot:default="slotProps">
    {{ slotProps.user.firstName }}
  </template>
</current-user>
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345