Heim > Web-Frontend > View.js > Hauptteil

Eine kurze Analyse der Verwendung benutzerdefinierter Anweisungen in Vue

PHPz
Freigeben: 2023-03-27 18:47:36
nach vorne
1279 Leute haben es durchsucht

Bei den Projekten, an denen ich in letzter Zeit gearbeitet habe, wurden viele benutzerdefinierte Anweisungen von Vue verwendet. Untersuchungen unter Kollegen und anderen Freunden haben ergeben, dass viele Menschen diese von Vue bereitgestellte Funktion kaum nutzen. Deshalb werde ich einige meiner Verwendungsmethoden sortieren und sie mit meinen Freunden teilen, damit nicht jeder die Möglichkeiten benutzerdefinierter Anweisungen ignorieren und unserer Lösung eine weitere Option hinzufügen sollte.

Benutzerdefinierte Anweisungen

Zusätzlich zu den integrierten Anweisungen von Vue (z. B. v-model oder v-show) können Sie sich bei Vue auch registrieren Benutzerdefinierte Anweisungen. Benutzerdefinierte Anweisungen. v-model 或 v-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。

两种在 Vue 中重用代码的方式:组件组合式函数。组件是主要的构建模块,而组合式函数则侧重于有状态的逻辑。另一方面,自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。

一个自定义指令由一个包含类似组件生命周期钩子的对象来定义。钩子函数会接收到指令所绑定元素作为其参数。【相关推荐:vuejs视频教程web前端开发

更为详细的介绍可参考 Vue 官方文档:cn.vuejs.org/guide/reusa…

Quick Start

Vue 自定义指令有全局注册局部注册两种方式。

先来看看注册全局指令的方式,通过 Vue.directive( id, [definition] )方式注册全局指令。然后在入口文件中进行 Vue.use()调用。

批量注册指令,新建 src/directives/index.js 文件:

import fitColumns from './fit-columns'
import enterToInput from './enter-to-input'
import resizeHeight from './resize-height'
import resizeWidth from './resize-width'
import inputFilter from './input-filter'
import copy from './copy'
import longpress from './longpress'
import clickOutside from './click-outside'
import emoji from './emoji'

const directives = {
  fitColumns,
  enterToInput,
  resizeHeight,
  resizeWidth,
  inputFilter,
  copy,
  longpress,
  clickOutside,
  emoji
}

export default {
  install(Vue) {
    Object.keys(directives).forEach((key) => {
      Vue.directive(key, directives[key])
    })
  }
}
Nach dem Login kopieren

在 main.js 引入并调用:

// .....

import Directives from '@/directives'
Vue.use(Directives)

//.....
Nach dem Login kopieren

接下来就要开发具体的自定义指令了,那么开发的要领,以及一些开发技术点还是要先赘述一遍。

Vue2版本: 一个指令定义对象可以提供如下几个钩子函数 (均为可选):

  • bind:只调用一次,指令第一次绑定到元素时调用。在这里可以进行一次性的初始化设置。
  • inserted:被绑定元素插入父节点时调用 (仅保证父节点存在,但不一定已被插入文档中)。
  • update:所在组件的 VNode 更新时调用,但是可能发生在其子 VNode 更新之前。指令的值可能发生了改变,也可能没有。但是你可以通过比较更新前后的值来忽略不必要的模板更新。
  • componentUpdated:指令所在组件的 VNode 及其子 VNode 全部更新后调用。
  • unbind:只调用一次,指令与元素解绑时调用。

指令钩子函数会被传入以下参数

Verwandte Etiketten:
Quelle:juejin.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!