当前位置: 首页> 教育> 幼教 > 网络企业_建设网站的公司哪个济南兴田德润怎么联系_淘宝运营_微信推广朋友圈广告

网络企业_建设网站的公司哪个济南兴田德润怎么联系_淘宝运营_微信推广朋友圈广告

时间:2025/7/10 3:33:05来源:https://blog.csdn.net/weixin_64684095/article/details/142687112 浏览次数:0次
网络企业_建设网站的公司哪个济南兴田德润怎么联系_淘宝运营_微信推广朋友圈广告

一、构建指令

1. 生命周期

created:在指令被绑定到元素之前调用。这个钩子很少使用,因为指令通常在元素存在时才需要进行操作。

beforeMount:在指令绑定的元素被插入到 DOM 之前调用。

mounted:在指令绑定的元素被插入到 DOM 后调用。这是最常用的生命周期钩子之一,通常在这里进行对元素的初始化操作。

beforeUpdate:在包含指令的组件更新之前调用。当组件的响应式数据发生变化导致组件重新渲染时,这个钩子会被触发。

updated:在包含指令的组件更新后调用。可以在这里对更新后的元素进行操作。

beforeUnmount:在指令绑定的元素被从 DOM 中移除之前调用。可以在这里进行一些清理操作,例如移除事件监听器等。

unmounted:在指令绑定的元素被从 DOM 中移除后调用。这是另一个进行清理操作的好时机。

const myDirective = {created(el, binding, vnode) {console.log("指令创建");},beforeMount(el, binding, vnode) {console.log("指令在元素插入 DOM 前");},mounted(el, binding, vnode) {console.log("指令在元素插入 DOM 后");},beforeUpdate(el, binding, vnode, prevVnode) {console.log("指令在组件更新前");},updated(el, binding, vnode, prevVnode) {console.log("指令在组件更新后");},beforeUnmount(el, binding, vnode) {console.log("指令在元素移除 DOM 前");},unmounted(el, binding, vnode) {console.log("指令在元素移除 DOM 后");},};export default myDirective;

2. 生命周期参数

生命周期函数参数 el、binding、vnode、prevNode,分别表示:

el:指令绑定的元素。可进行 DOM 操作。

binding:一个对象,包含以下属性:

value:指令的绑定值。

arg:传递给指令的参数,如果没有参数则为 undefined。

modifiers:一个包含指令修饰符的对象。

oldValue:上一次更新时的旧值,仅在 beforeUpdate 和 updated 钩子中可用。

vnode:虚拟节点。

prevNode:上一次更新前的虚拟节点。

<input v-focus:a.b="10" /><!--{value: 10,arg: 'a',modifiers: { b: true },oldValue: /* 上一次更新时 value 的值 */} -->

3. 创建指令

在 src/directive 下创建一个 Focus.js 文件,用来自动 input 获取焦点。

// Focus.jsconst Focus = {mounted: (el) => el.focus(),};export default Focus;

二、引入指令

在 src/main.js 中引入指令

// main.jsimport { createApp } from "vue";import App from "./App.vue";/** 指令 */import Focus from "@/directive/Focus.js";const app = createApp(App);app.directive("focus", Focus);app.mount("#app");

三、使用指令

在组件中使用指令

<input v-focus v-model="value" />

关键字:网络企业_建设网站的公司哪个济南兴田德润怎么联系_淘宝运营_微信推广朋友圈广告

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: