目录

  • 1 初识Vue.js
    • 1.1 Vue简介
    • 1.2 Vue开发环境
    • 1.3 Vue的初使用
  • 2 Vue.js 开发基础
    • 2.1 单文件组件
    • 2.2 数据绑定
    • 2.3 指令
    • 2.4 事件对象和事件修饰符
    • 2.5 计算属性和侦听器
    • 2.6 样式绑定
    • 2.7 案例:购物车模块
    • 2.8 案例:学习计划表
  • 3 组件基础(上)
    • 3.1 构建工具Vite
    • 3.2 选项式API和组合式API
    • 3.3 组合式编程
    • 3.4 生命周期
    • 3.5 组件的注册与引用
    • 3.6 组件通信
      • 3.6.1 父组件向子组件传递数据
      • 3.6.2 子组件向父组件传递数据
      • 3.6.3 跨级组件之间的数据传递
    • 3.7 案例:待办事项
  • 4 组件基础(下)
    • 4.1 动态组件
    • 4.2 插槽
    • 4.3 自定义指令
    • 4.4 引用静态资源
    • 4.5 案例:商品管理
  • 5 网络请求
    • 5.1 Axios
    • 5.2 Axios图书列表案例
  • 6 状态管理
    • 6.1 Vuex
    • 6.2 Pinia
  • 7 路由
    • 7.1 初识路由和VueRouter
    • 7.2 嵌套路由
    • 7.3 路由重定向
    • 7.4 动态路由
    • 7.5 命名路由
    • 7.6 编程式导航
    • 7.7 导航守卫
    • 7.8 案例:后台管理系统
  • 8 常用UI组件库
    • 8.1 Element Plus组件库
    • 8.2 Vant组件库
    • 8.3 Ant Design Vue组件库
  • 9 项目实战
    • 9.1 项目所需软件
    • 9.2 项目前台分析
    • 9.3 “微商城”后台分析
自定义指令
  • 1 什么是自定义指令
  • 2 私有自定义指令的...
  • 3 全局自定义指令的...
  • 4 为自定义指令绑定参数
  • 5 自定义指令的函数形式

什么是自定义指令?

当内置指令不能满足开发需求时,可以通过自定义指令来拓展额外的功能。自定义指令的主要作用是方便开发者通过直接操作DOM元素来实现业务逻辑。

Vue中的自定义指令分为两类,分别是私有自定义指令和全局自定义指令。

  • 私有自定义指令是指在组件内部定义的指令。私有自定义指令可以在定义该指令的组件内部使用。例如,在组件A中自定义了指令,只能在组件A中使用,组件B、组件C中不能使用。

  • 全局自定义指令是指在全局定义的指令。全局自定义指令可以在全局使用,例如,在src\main.js文件中定义了全局自定义指令,这个指令可以用于任何一个组件。


一个自定义指令由一个包含自定义指令生命周期函数的参数来定义。常用的自定义指令生命周期函数如下表所示。

函数名

说明

created()

在绑定元素的属性前调用

beforeMount()

绑定元素被挂载前调用

mounted()

在绑定元素的父组件及自身的所有子节点都挂载完成后调用

beforeUpdate()

绑定元素的父组件更新前调用

updated()

在绑定元素的父组件及自身的所有子节点都更新后调用

beforeUnmount()

绑定元素的父组件卸载前调用

unmounted()

绑定元素的父组件卸载后调用


常用的自定义指令生命周期函数的参数如下表所示。

参数

说明

el

指令所绑定的元素,可以直接用于操作DOM元素

binding

一个对象,包含很多属性,用于接收属性的参数值

vnode

代表绑定元素底层的虚拟节点

prevNode

之前页面渲染中指令所绑定元素的虚拟节点


binding中包含以下6个常用属性。

  • value:传递给指令的值。

  • arg:传递给指令的参数。

  • oldValue:之前的值,仅在beforeUpdate()函数和updated()函数中可用,无论值是否更改都可用。

  • modifiers:一个包含修饰符的对象 (如果有)。例如,在v-my-directive.foo.bar 中,修饰符对象是{ foo: true, bar: true }。

  • instance:使用该指令的组件实例。

  • dir:指令的定义对象。