Vue 面试题 目录

Vue 中如何注册局部指令?

推荐答案

在 Vue 中,可以通过在组件的 directives 选项中注册局部指令。以下是一个示例:

-- -------------------- ---- -------
------ ------- -
  ----------- -
    ------ -
      -- -------- --- ----
      ------------ -
        -----------
      -
    -
  -
-

在这个示例中,我们定义了一个名为 focus 的局部指令,当元素插入到 DOM 中时,该指令会自动聚焦到该元素上。

本题详细解读

1. 局部指令的定义

局部指令是指在某个 Vue 组件中定义的指令,它只能在该组件及其子组件中使用。局部指令通过在组件的 directives 选项中定义。

2. 指令的生命周期钩子

Vue 指令可以定义多个生命周期钩子函数,常用的有:

  • bind:只调用一次,指令第一次绑定到元素时调用。
  • inserted:被绑定元素插入父节点时调用。
  • update:所在组件的 VNode 更新时调用,但可能发生在其子 VNode 更新之前。
  • componentUpdated:所在组件的 VNode 及其子 VNode 全部更新后调用。
  • unbind:只调用一次,指令与元素解绑时调用。

3. 示例代码解析

在示例代码中,我们定义了一个名为 focus 的局部指令,并在 inserted 钩子中调用了 el.focus(),使得当元素插入到 DOM 中时,自动聚焦到该元素上。

-- -------------------- ---- -------
------ ------- -
  ----------- -
    ------ -
      -- -------- --- ----
      ------------ -
        -----------
      -
    -
  -
-

4. 使用局部指令

在模板中使用局部指令时,可以通过 v-指令名 的方式使用。例如:

在这个例子中,input 元素在插入到 DOM 中时会自动获得焦点。

纠错
反馈