[vue]你要知道的API

110 阅读2分钟

一起养成写作习惯!这是我参与「掘金日新计划 · 4 月更文挑战」的第 7 天,点击查看活动详情

数据相关

  • Vue.set

在实际开发中,可以发现,那些响应式的数据,都是一开始在data里定义好的,那么像后面动态追加的数据,都不是响应式的。

那么如果我后序想要追加数据,且期望它也是响应式的,该怎么办?

使用`Vue.set(target, propertyName/index, value)`

向响应式对象中添加一个属性,并确保这个新属性同样是响应式的,且触发视图更新。

要达到响应式的目的,要保证target首先得是响应式的,然后再设置属性。
  • Vue.delete

Vue.delete(target, propertyName/index)

删除对象的属性。如果对象是响应式的,确保删除能触发更新视图。

ps: Vue.setVue.delete是全局方法;也可以使用实例方法vm.setvm.set和vm.delete都是一样的

事件相关

  • $on

监听当前实例上的自定义事件。事件可以由 vm.$emit 触发。回调函数会接收所有传入事件触发函数的 额外参数。

vm.$on('test', function (msg) { console.log(msg) })
  • $emit

触发当前实例上的事件。附加参数都会传给监听器回调。

vm.$emit('test', 'hi')
  • $once 监听一个自定义事件,但是只触发一次。一旦触发之后,监听器就会被移除。
  • $off 移除自定义事件监听器。
    1. 如果没有提供参数,则移除所有的事件监听器;
    2. 如果只提供了事件,则移除该事件所有的监听器;
    3. 如果同时提供了事件与回调,则只移除这个回调的监听器。
vm.$off() // 移除所有的事件监听器 
vm.$off('test') // 移除该事件所有的监听器 
vm.$off('test', callback) // 只移除这个回调的监听器

组件与元素引用

  • ref 与 $ref

ref 被用来给元素或子组件注册引用信息。引用信息将会注册在父组件的 $refs 对象上。如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件。

注意:
ref 是作为渲染结果被创建的,在初始渲染时不能访问它们
$refs 不是响应式的,不要试图用它在模板中做数据绑定
当 v-for 用于元素或组件时,引用信息将是包含 DOM 节点或组件实例的数组。