美文网首页
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

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