search
HomeWeb Front-endVue.jsWhat are vue.js directives

vue.js instructions are many built-in instructions, such as [v-if] and [v-show]. These rich instructions can meet most of our business needs. Custom instructions have hook functions. Such as [bind, inserted, update].

What are vue.js directives

The operating environment of this tutorial: windows10 system, vue2.9, this article is applicable to all brands of computers.

[Related article recommendations: vue.js]

Question 1: What are custom instructions in vue.js?

Customize some instructions to operate on the underlying DOM

More references

Vue has many built-in instructions, such as v-if and v-show, These rich instructions can meet most of our business needs, but when we need some special functions, we still want to perform low-level operations on the DOM, and then we need to use custom instructions.

Question 2: Several hook functions of custom instructions

  • bind: only called once, when the instruction is bound to an element for the first time transfer. One-time initialization settings can be performed here.

  • inserted: Called when the bound element is inserted into the parent node (only the parent node is guaranteed to exist, but not necessarily inserted into the document).

  • update: Called when the VNode of the component is updated, but may occur before its child VNode is updated. The value of the directive may or may not have changed. But you can ignore unnecessary template updates by comparing the values ​​before and after the update.

  • componentUpdated: Called after the VNode of the component where the instruction is located and its sub-VNodes have all been updated.

  • unbind: Called only once, when the instruction is unbound from the element.

Question 3: Hook function parameters

Except for el, all other parameters should be read-only and must not be modified. If you need to share data between hooks, it is recommended to do it through the element's dataset.

The instruction hook function will be passed in the following parameters:

1. el: The element bound to the instruction can be used to directly operate the DOM.

2. Binding: an object containing the following attributes:

  • name: Instruction name, excluding v- prefix.

  • value: The binding value of the directive, for example: v-my-directive="1 1", the binding value is 2.

  • oldValue: The previous value of the instruction binding, only available in update and componentUpdated hooks. Available regardless of whether the value has changed.

  • #expression: Instruction expression in string form. For example, in v-my-directive="1 1", the expression is "1 1".

  • #arg: Parameters passed to the command, optional. For example, in v-my-directive:foo, the parameter is "foo".

  • modifiers: An object containing modifiers. For example: in v-my-directive.foo.bar, the modifier object is { foo: true, bar: true }.

  • vnode: The virtual node generated by Vue compilation.

3. oldVnode: The previous virtual node, only available in update and componentUpdated hooks.

Question 4: How to use custom instructions in vue-cli?

File structure:

.
├── src
│   ├── directives
│   │    ├── index.js
│   │    ├── modules
│   └── main.js
└── ...

Create foucs.js under modules

// 聚焦指令
export default {
  bind (el, binding, vnode) {},
  inserted (el, binding, vnode) {
    el.focus()
  },
  update (el, binding, vnode) {},
  componentUpdated (el, binding, vnode) {},
  unbind (el, binding, vnode) {}
}

Under src/directives/index.js

import focus from './modules/focus'
export {focus}

Under src/main.js, use directives custom instructions

//引入自定义指令
import * as directives from './directives'
//注册指令
Object.keys(directives).forEach(k => Vue.directive(k, directives[k]));

Use

<input v-focus type="text" />

in the .vue component. Related free learning recommendations: JavaScript (video )

The above is the detailed content of What are vue.js directives. For more information, please follow other related articles on the PHP Chinese website!

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
What is Vuex and how do I use it for state management in Vue applications?What is Vuex and how do I use it for state management in Vue applications?Mar 11, 2025 pm 07:23 PM

This article explains Vuex, a state management library for Vue.js. It details core concepts (state, getters, mutations, actions) and demonstrates usage, emphasizing its benefits for larger projects over simpler alternatives. Debugging and structuri

How do I implement advanced routing techniques with Vue Router (dynamic routes, nested routes, route guards)?How do I implement advanced routing techniques with Vue Router (dynamic routes, nested routes, route guards)?Mar 11, 2025 pm 07:22 PM

This article explores advanced Vue Router techniques. It covers dynamic routing (using parameters), nested routes for hierarchical navigation, and route guards for controlling access and data fetching. Best practices for managing complex route conf

How do I create and use custom plugins in Vue.js?How do I create and use custom plugins in Vue.js?Mar 14, 2025 pm 07:07 PM

Article discusses creating and using custom Vue.js plugins, including development, integration, and maintenance best practices.

What are the key features of Vue.js (Component-Based Architecture, Virtual DOM, Reactive Data Binding)?What are the key features of Vue.js (Component-Based Architecture, Virtual DOM, Reactive Data Binding)?Mar 14, 2025 pm 07:05 PM

Vue.js enhances web development with its Component-Based Architecture, Virtual DOM for performance, and Reactive Data Binding for real-time UI updates.

How do I configure Vue CLI to use different build targets (development, production)?How do I configure Vue CLI to use different build targets (development, production)?Mar 18, 2025 pm 12:34 PM

The article explains how to configure Vue CLI for different build targets, switch environments, optimize production builds, and ensure source maps in development for debugging.

How do I use tree shaking in Vue.js to remove unused code?How do I use tree shaking in Vue.js to remove unused code?Mar 18, 2025 pm 12:45 PM

The article discusses using tree shaking in Vue.js to remove unused code, detailing setup with ES6 modules, Webpack configuration, and best practices for effective implementation.Character count: 159

How can I contribute to the Vue.js community?How can I contribute to the Vue.js community?Mar 14, 2025 pm 07:03 PM

The article discusses various ways to contribute to the Vue.js community, including improving documentation, answering questions, coding, creating content, organizing events, and financial support. It also covers getting involved in open-source proje

How do I use Vue with Docker for containerized deployment?How do I use Vue with Docker for containerized deployment?Mar 14, 2025 pm 07:00 PM

The article discusses using Vue with Docker for deployment, focusing on setup, optimization, management, and performance monitoring of Vue applications in containers.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Atom editor mac version download

Atom editor mac version download

The most popular open source editor

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Integrate Eclipse with SAP NetWeaver application server.

VSCode Windows 64-bit Download

VSCode Windows 64-bit Download

A free and powerful IDE editor launched by Microsoft

Safe Exam Browser

Safe Exam Browser

Safe Exam Browser is a secure browser environment for taking online exams securely. This software turns any computer into a secure workstation. It controls access to any utility and prevents students from using unauthorized resources.