美文网首页
Vue知识点整理

Vue知识点整理

作者: 罂粟1995 | 来源:发表于2020-08-22 12:40 被阅读0次

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>

相关文章

  • 学习链接

    vue-router教程总结 vue生命周期和钩子函数 详解vue生命周期 Vue2.0八——知识点整理 vuex...

  • Vue 知识点整理

    1.防止因网络慢,页面加载出现 {{变量名}} 的情况: 使用 v-cloak 指令,注意要在 css中 声明: ...

  • Vue知识点整理

    1. Vue实例 每个 Vue 应用都是通过用 Vue 函数创建一个新的 Vue 实例开始的。 常用实例属性 ap...

  • vue 知识点整理

    概念 Vue.js 一套构建用户界面的渐进式框架,Vue 只关注视图层,采用自底向上增量开发的设计;它的目标是通过...

  • Vue 知识点整理

    1. 对于MVVM的理解 『View』:视图层(UI 用户操作界面),前端主要由 HTML ,CSS 和模板文件(...

  • 关于前端Vue框架的知识点

    最近有时间,整理一下Vue的知识点,很多都是面试常见的 1、Vue的生命周期 如果你能理解了这张图,也就对Vue的...

  • vue常用知识点整理

    1双向数据绑定 v-model for渲染数据 v-for 实际就是for in 模式 -------------...

  • Vue bug 知识点整理

    老出bug 心力交瘁 还是整理一下知识点和bug比较好 目录: Bug相关: 1.vue-cli脚手架安装失败&...

  • vue 知识点整理——指令

    vue指令: v-text: 用于操作纯文本。如果要更新部分的文本,需要使用 {{ Mustache }} 插值。...

  • vue项目——Vue Router路由的使用

    前言:     学习vue也有一段时间了,这里把学习整个vue项目中的一些知识点和问题,整理下方便自己记录,也希望...

网友评论

      本文标题:Vue知识点整理

      本文链接:https://www.haomeiwen.com/subject/pshjjktx.html