美文网首页
vue实例与api

vue实例与api

作者: zooeydotmango | 来源:发表于2019-09-25 01:39 被阅读0次

vue实例

var vm = new Vue({
  // 选项
})

数据与方法

当实例被创建时,data对象中所有属性都加入到vue响应式系统中,当属性的值发生改变时,视图会更新为新的值。

只有实例被创建时就存在data中的属性才是响应式的,因此需要使用的值最好都先初始化

var vm = new Vue({
  data: {
    newTodoText: '',
    visitCount: 0,
    hideCompletedTodos: false,
    todos: [],
    error: null
  }
})

实例属性

  • vm.$data
    Vue 实例观察的数据对象
  • vm.$props
    当前组件接收到的 props 对象
  • vm.$el
    根 DOM 元素
  • vm.$options

实例方法/数据

  • vm.$watch(expOrFn,callback,[options])
    观察 Vue 实例变化的一个表达式或计算属性函数。回调函数得到的参数为新值和旧值。表达式只接受监督的键路径。对于更复杂的表达式,用一个函数取代。
// 键路径
vm.$watch('a.b.c', function (newVal, oldVal) {
  // 做点什么
})

// 函数
vm.$watch(
  function () {
    // 表达式 `this.a + this.b` 每次得出一个不同的结果时
    // 处理函数都会被调用。
    // 这就像监听一个未被定义的计算属性
    return this.a + this.b
  },
  function (newVal, oldVal) {
    // 做点什么
  }
)
  • vm.$set(target,propertyName/index,value)
  • vm.$delete(target,propertyName/index)

实例方法/事件

  • vm.$on(event,callback)
    监听当前实例上的自定义事件。事件可以由vm.$emit触发。回调函数会接收所有传入事件触发函数的额外参数。
vm.$on('test', function (msg) {
  console.log(msg)
})
vm.$emit('test', 'hi')
// => "hi"
  • vm.$once(event,callback)
    监听一个自定义事件,但是只触发一次,在第一次触发之后移除监听器。
  • vm.$off([event,callback])
    移除自定义事件监听器
  • vm.$emit(eventName,[...args])
    触发当前实例上的事件。附加参数都会传给监听器回调

实例方法/生命周期

  • vm.$mount([elementOrSelector])
    如果 Vue 实例在实例化时没有收到 el 选项,则它处于“未挂载”状态,没有关联的 DOM 元素。可以使用 vm.$mount() 手动地挂载一个未挂载的实例。

如果没有提供 elementOrSelector 参数,模板将被渲染为文档之外的的元素,并且你必须使用原生 DOM API 把它插入文档中。

这个方法返回实例自身,因而可以链式调用其它实例方法。


生命周期
  • vm.$forceUpdate()
    迫使Vue实例重新渲染。注意它仅仅影响实例本身和插入插槽内容的子组件,而不是所有子组件。
  • vm.$nextTick([callback])
    将回调延迟到下次 DOM 更新循环之后执行。在修改数据之后立即使用它,然后等待 DOM 更新。它跟全局方法 Vue.nextTick 一样,不同的是回调的 this 自动绑定到调用它的实例上。
  • vm.$destroy()
    销毁一个实例,清理它与其它实例的连接,解绑它的全部指令及事件监听器。
    触发beforeDestroydestroyed 的钩子。

指令

  • v-text
    更新元素的textContent如果需要更新部分的textContent,需要使用{{ Mustache }}插值。

  • v-html
    更新元素的innerHTML

  • v-show
    根据表达式的真假值,切换元素的display CSS属性

  • v-if
    根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定/组件被销毁并重建。如果元素是<template,将提出它的内容作为条件块

    v-if和v-for一起使用时,v-for的优先级更高

  • v-else
    为 v-if 或者 v-else-if 添加“else 块”。

  • v-else-if
    表示 v-if 的 “else if 块”。可以链式调用。

  • v-for
    基于源数据多次渲染元素或模板块。此指令的值,必须使用特定语法alias in expression,为当前遍历的元素提供别名。

<div v-for="item in items">
  {{ item.text }}
</div>

v-for 默认行为试着不改变整体,而是替换元素。迫使其重新排序的元素,你需要提供一个 key 的特殊属性

<div v-for="item in items" :key="item.id">
  {{ item.text }}
</div>
  • v-on
    缩写:@

    绑定事件监听器。事件类型由参数指定。表达式可以是一个方法的名字或一个内联语句,如果没有修饰符也可以省略。

    用在普通元素上时,只能监听原生 DOM 事件。用在自定义元素组件上时,也可以监听子组件触发的自定义事件

    在监听原生 DOM 事件时,方法以事件为唯一的参数。如果使用内联语句,语句可以访问一个 $event 属性:v-on:click="handle('ok', $event)"

    2.4.0 开始,v-on 同样支持不带参数绑定一个事件/监听器键值对的对象。注意当使用对象语法时,是不支持任何修饰器的。

<!-- 方法处理器 -->
<button v-on:click="doThis"></button>

<!-- 动态事件 (2.6.0+) -->
<button v-on:[event]="doThis"></button>

<!-- 内联语句 -->
<button v-on:click="doThat('hello', $event)"></button>

<!-- 缩写 -->
<button @click="doThis"></button>

<!-- 动态事件缩写 (2.6.0+) -->
<button @[event]="doThis"></button>

<!-- 停止冒泡 -->
<button @click.stop="doThis"></button>

<!-- 阻止默认行为 -->
<button @click.prevent="doThis"></button>

<!-- 阻止默认行为,没有表达式 -->
<form @submit.prevent></form>

<!--  串联修饰符 -->
<button @click.stop.prevent="doThis"></button>

<!-- 键修饰符,键别名 -->
<input @keyup.enter="onEnter">

<!-- 键修饰符,键代码 -->
<input @keyup.13="onEnter">

<!-- 点击回调只会触发一次 -->
<button v-on:click.once="doThis"></button>

<!-- 对象语法 (2.4.0+) -->
<button v-on="{ mousedown: doThis, mouseup: doThat }"></button>
  • v-bind
    缩写:
    动态的绑定一个或多个特性,或一个组件prop到表达式。

    在绑定 class 或 style 特性时,支持其它类型的值,如数组或对象。可以通过下面的教程链接查看详情。

    在绑定 prop 时,prop 必须在子组件中声明。可以用修饰符指定不同的绑定类型。

    没有参数时,可以绑定到一个包含键值对的对象。注意此时 class 和 style 绑定不支持数组和对象。

  • v-model
    在表单控件或者组件上创建双向绑定。限制在<input>
    <select> <textarea>

  • v-slot
    限用于template、组件。提供具名插槽或需要接受prop的插槽。

  • v-pre
    跳过这个元素和它的子元素的编译过程。可以用来显示原始 Mustache 标签。跳过大量没有指令的节点会加快编译。

  • v-cloak
    这个指令保持在元素上直到关联实例结束编译。和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。

  • v-once
    只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。

相关文章

  • vue实例与api

    vue实例 数据与方法 当实例被创建时,data对象中所有属性都加入到vue响应式系统中,当属性的值发生改变时,视...

  • Vue.js(Vue2)学习笔记

    一、创建Vue实例 1.创建实例property和方法[https://cn.vuejs.org/v2/api/#...

  • 2019-11-26 Vue学习常用网站

    Vue中文官网 基础教程 Vue中文官网 API即Vue实例包含的默认属性和方法 Vue状态共享之Vuex Vue...

  • Day9:Vue文档精读2——Vue实例

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

  • Vue2学习笔记:vue实例

    一、实例化vue 二、添加实例化选项 三、扩展vue构造器 四、属性与方法 五、vue实例选项与原生js的关系 六...

  • STL算法之常用拷贝和替换

    copy API 实例 replace API 实例 replace_if API 实例 swap API 实例

  • Vue

    一. Vue 实例 以后你可以在 API 参考中查阅到完整的实例属性和方法的列表。 实例生命周期钩子 比如 cre...

  • 【Vue】 实例化

    1. 创建Vue实例: 1.选项对象options的值有多种类型:(当它们都有前缀 $时表示属性API,以便与用户...

  • 01vue-安装vue

    资源 1.Vue.js2.0从入门到放弃---入门实例(一)2.Vue.js入门学习(一)3.Vue官方中文Api...

  • vuejs教程

    vue通过简单的API实现响应的数据绑定和组合的视图组件。 每个vue应用都需要实例化vue来实现。 var vm...

网友评论

      本文标题:vue实例与api

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