当前位置: 首页 > news >正文

用vs与dw做网站百度网盘提取码入口

用vs与dw做网站,百度网盘提取码入口,wordpress制作页面模板下载,日照市机场投资建设有限公司网站vue使用directive 前言vue2使用vue3使用 前言 关于使用自定义指令在官网中是这样描述的 vue2:对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。 vue3:自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。 在 Vue.js 中使用自定义指令&#xf…

vue使用directive

  • 前言
  • vue2使用
  • vue3使用

前言

关于使用自定义指令在官网中是这样描述的

vue2:对普通 DOM 元素进行底层操作,这时候就会用到自定义指令。

vue3:自定义指令主要是为了重用涉及普通元素的底层 DOM 访问的逻辑。

在 Vue.js 中使用自定义指令(directive)可以带来许多好处,包括但不限于这些:

  • 代码复用:自定义指令可以封装一些常用的 DOM 操作,使得这些操作可以在多个组件中复用,减少代码冗余。
  • 简化模板:通过自定义指令,可以将一些复杂的 DOM 操作从模板中移除,使模板更加简洁和易读。
  • 增强功能:自定义指令可以提供一些 Vue 框架本身不直接支持的功能,比如自动聚焦、拖拽、动画等。
  • 更好的封装性:自定义指令可以将 DOM 操作的逻辑封装在指令内部,使得组件的代码更加清晰和模块化。
  • 更细粒度的控制:自定义指令可以绑定到特定的 DOM 元素或属性,提供更细粒度的控制,比如只对某个元素应用某些效果。
  • 生命周期钩子:自定义指令提供了生命周期钩子函数,可以在不同的阶段执行特定的逻辑。

vue2使用

在vue2使用使用directive根据官网介绍可以这样使用

// 注册一个全局自定义指令 `v-focus`
import Vue from 'vue'
Vue.directive('focus', {// 当被绑定的元素插入到 DOM 中时……inserted: function (el) {// 聚焦元素el.focus()}
})

然后在页面中绑定

<input v-focus>

这样就能 聚焦元素 的效果
在这里插入图片描述

当然在项目中可以更加优化
在这里插入图片描述
这里单独创建一个文件夹来存放自定义指令的js文件并使用index导出引入的文件, 这里拿两个实例来举例子 ,一个是复制文本的copy.js文件,一个控制权限的role.js文件。

main.js 文件这样集中引入指令文件

import Vue from 'vue'
import App from './App.vue'
import directives from './directives';Vue.config.productionTip = falseObject.keys(directives).forEach(name => {Vue.directive(name, directives[name]);
});new Vue({render: h => h(App),
}).$mount('#app')

index.js 文件导出引入的指令

import copy from './copy';
import role from './role';export default {copy,role
};

copy.js文件

import { Message } from 'element-ui';
let timer = null;
const copy = {bind(el, binding) {if (binding.value) {el.addEventListener('click', () => copyClick(el, binding));}},
};
const copyClick = (el, binding) => { if (timer) clearTimeout(timer);timer = setTimeout(async () => { await navigator.clipboard.writeText(binding.value);Message.success('复制成功!');timer = null;}, 200);
};
export default copy;

role.js文件

const role = {bind (el, binding) { //只有包含了2的dom元素才显示if (!binding.value.includes(2)) {el.style.display = 'none';}},
};export default role;

最后在文件中使用

<template><div class="hello"><el-button type="primary" round v-copy="text">点击我复制</el-button><li v-role="[1]">这是一号dom</li><li v-role="[1,2]">这是二号dom</li><li v-role="[1,2,3]">这是三号dom</li></div>
</template><script>
export default {name: 'HelloWorld',data () {return {text: 'hello world'}}
}
</script>

最后看实际效果
请添加图片描述
这就是基础的使用,
关于生命周期钩子函数
官网提供了像bindinsertedupdatecomponentUpdatedunbind等,可以在不同的阶段执行特定的逻辑。
更多的参考 vue2指令官网

vue3使用

在vue3中使用指令与vue2写法有点不同
官网是这样使用的

const app = createApp({})// 使 v-focus 在所有组件中都可用
app.directive('focus', {/* ... */
})// 使用的组件
<template><input v-focus />
</template>

这里的举例跟vue2的一样,不过项目是用vite+ts搭建的
在这里插入图片描述
单独创建一个文件夹来存放自定义指令的js文件并使用index导出引入的文件, 这里拿两个实例来举例子 ,复制文本的copy.ts文件和控制权限的role.ts文件。

main.ts 文件这样集中引入指令文件

import { createApp } from 'vue' 
import App from './App.vue' 
import directives from './directives';const app = createApp(App)for (const [name, directive] of Object.entries(directives)) {app.directive(name, directive);
}   app.mount('#app')

在index.ts 文件中导出

import copy from './copy';
import role from './role';export default {copy,role
};

copy.ts文件

import { DirectiveBinding } from 'vue';
import { ElMessage } from 'element-plus';
let timer: any = null;
const copy = {mounted(el: HTMLElement, binding: DirectiveBinding) {if (binding.value) {el.addEventListener('click', () => copyClick(el, binding));}},
};
const copyClick = (el: HTMLElement, binding: DirectiveBinding) => { if (timer) clearTimeout(timer);timer = setTimeout(async () => {// 复制文本await navigator.clipboard.writeText(binding.value);ElMessage.success('复制成功!');timer = null;}, 200);
};
export default copy;

role.ts文件

import { DirectiveBinding } from 'vue';
const role = {mounted(el: HTMLElement, binding: DirectiveBinding) {//包含了 2 的元素才显示if (!binding.value.includes(2)) {el.remove();}},
};
export default role;

使用的vue件

<script setup lang="ts">
import { ref } from "vue";
const text = ref("这是赋值的值12345");
</script><template><el-button type="primary" round v-copy="text">点击我复制</el-button><li v-role="[1]">这是一号dom</li><li v-role="[1,2]">这是二号dom</li><li v-role="[1,2,3]">这是三号dom</li>
</template>

最后看效果
请添加图片描述
最后关于生命周期钩子函数,官网给出了这些
在这里插入图片描述
更多的扩展使用可以参考官网
vue3指令官网

http://www.hkea.cn/news/983160/

相关文章:

  • 做购物网站需不需要交税费郑州网站托管
  • 是不是做网站就能赚钱谷歌seo关键词优化
  • 萝岗门户网站建设今日重大新闻头条财经
  • 个人相册网站模板怎么把网站排名排上去
  • 建设外贸网站案例统计站老站长推荐草莓
  • 1688网站的特点全网营销系统
  • 西安做网站企业网址怎么申请
  • 专业网站建设品牌百度指数里的资讯指数是什么
  • 做网站规避什么网站制作
  • 网站开发工作方案2022拉人头最暴利的app
  • 网站建设好还是阿里巴巴好磁力猫torrent kitty
  • wordpress跨域访问前端优化网站
  • 住房和城乡建设部网站买卖合同北京中文seo
  • WordPress自己安装了插件深圳seo推广外包
  • 建立网站舆情分析报告范文
  • wordpress 空格 插件班级优化大师app
  • 成都有实力的网站建设网络培训心得
  • 中企高呈建设网站在百度怎么创建自己的网站
  • 女的和女的做那个视频网站怎么在网上做网络营销
  • 网站开发需要什么软件百度怎样发布作品
  • 专门做宠物食品的网站市场调研怎么做
  • 兰州网站建设q.479185700棒成年s8视频加密线路
  • 付费网站推广seo关键词排名优化怎么收费
  • 网站由那些组成google网页搜索
  • 对一个网站做性能测试谷歌paypal官网入口
  • 北京住房投资建设中心网站首页快速排名怎么做
  • 中国网站制作 第一个佛山网站优化
  • thinkphp做的教育网站微商引流推广
  • 做特卖网站手机版电商最好卖的十大产品
  • 怎样做网站平叿trinseo公司