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

Vue自定义指令- v-loading封装

Vue自定义指令- v-loading封装

文章目录

  • Vue自定义指令- v-loading封装
      • 01-自定义指令
          • 自定义指令的两种注册语法:
      • 02自定义指令的值
      • 03-自定义指令- v-loading指令封装

01-自定义指令


什么是自定义指令?

  • 自定义指令:自己定义的指令,可以封装一些dom操作,扩展额外功能。

1、例如:完成自动聚焦的功能:

自定义指令的两种注册语法:
  • 全局注册-语法:
// 全局注册指令
Vue.directive('focus',{// inserted会在 指令所在的元素,被插入到页面中的时候触发inserted (el) {// el 就是我们指令所绑定的元素el.focus()}
})
  • 局部注册-语法:
  // 2.局部注册指令directives: {// 指令名:指令配置项focus: {// el 是我么指令所绑定的元素inserted (el) {el.focus()}}}

根据使用场景:选择不同的注册方式。


02自定义指令的值

2、例如:实现一个color指令 - 传入不同的颜色,给标签设置文字颜色

语法

我们再绑定指令的时候,可以通过 等号 给我们指令绑定具体的参数。

v-指令名=“指令值”,绑定指令的值

<div v-color="color">我是内容</div>

通过 binding.value可以可以拿到指令值,指令值修改会 触发 update 函数

binding.value可以拿到color的值,当我们指令被修改后,会执行update函数

  <div class="app"><h1 v-color="color1">指令的值1</h1><h1 v-color="color2">指令的值2</h1></div><script>
export default {data () {return {color1: 'red',color2: 'green'}},// 注册自定义指令directives: {color: {// 1、inserted 元素被添加到页面时的逻辑inserted (el,binding) {// binding.value 就是指令的值el.style.color = binding.value},// 2、update 指令的值修改的时候触发,提供dom更新后的逻辑update (el, binding) {el.style.color = binding.value}}}
}
</script>

03-自定义指令- v-loading指令封装


分析 v-loading指令封装

  1. 本质 loading 效果就是一个蒙层,盖在了盒子上
  2. 数据请求中,开启loading状态,添加蒙层
  3. 数据请求完毕后,关闭loading装状态,移除蒙层。

实现:

  1. 准备一个 loading 类,通过伪元素定位,设置宽高,实现蒙层

  2. 开启关闭蒙层状态(添加移除蒙层),本质只需要添加移除类即可

  3. 结合自定义指令的语法进行封装


  <div class="box" v-loading="isLoading"><script>
// 安装axios =>  yarn add axios
import axios from 'axios'// 接口地址:http://hmajax.itheima.net/api/news
// 请求方式:get
export default {data () {return {list: [],isLoading: true}},// 定义局部指令directives: {loading: {inserted (el,binding) {// 指令触发后执行当前钩子  insertedbinding.value ? el.classList.add('loading') : el.classList.remove('loading')},update (el,binding) {// 指令值被修改执行当前钩子 updatebinding.value ? el.classList.add('loading') : el.classList.remove('loading')}}},async created () {// 1. 发送请求获取数据const res = await axios.get('http://hmajax.itheima.net/api/news')setTimeout(() => {// 2. 更新到 list 中,用于页面渲染 v-forthis.list = res.data.data// 数据响应后,改变蒙层状态this.isLoading = false}, 2000)}
}
</script><style>
.loading:before {content: '';position: absolute;left: 0;top: 0;width: 100%;height: 100%;background: #fff url('./loading.gif') no-repeat center;
}
</style>

相关文章:

Vue自定义指令- v-loading封装

Vue自定义指令- v-loading封装 文章目录 Vue自定义指令- v-loading封装01-自定义指令自定义指令的两种注册语法&#xff1a; 02自定义指令的值03-自定义指令- v-loading指令封装 01-自定义指令 什么是自定义指令&#xff1f; 自定义指令&#xff1a;自己定义的指令&#xff0c…...

C++中提供的一些关于查找元素的函数

C中提供的所有关于查找的函数 std::find(begin(), end(), key) std::find(begin(), end(), key)&#xff1a;这个函数用于在一个范围内查找一个等于给定值的元素&#xff0c;返回一个指向该元素的迭代器&#xff0c;如果没有找到则返回范围的结束迭代器。 1.1 例如&#xff…...

Wlan——STA上线流程与802.11MAC帧讲解以及报文转发路径

目录 802.11MAC帧基本概念 802.11帧结构 802.11MAC帧的分类 管理帧 控制帧 数据帧 STA接入无线网络流程 信号扫描—管理帧 链路认证—管理帧 用户关联—管理帧 用户上线 不同802.11帧的转发路径 802.11MAC帧基本概念 802.11协议在802家族中的角色位置 其中802.3标…...

Python|爬虫和测试|selenium框架模拟登录示例(一)

前言&#xff1a; 上一篇文章Python|爬虫和测试|selenium框架的安装和初步使用&#xff08;一&#xff09;_晚风_END的博客-CSDN博客 大概介绍了一下selenium的安装和初步使用&#xff0c;主要是打开某个网站的主页&#xff0c;基本是最基础的东西&#xff0c;那么&#xff0c;…...

QT的概述

什么是QT Qt是一个跨平台的C图形用户界面应用程序框架。它为应用程序开发者提供建立艺术级图形界面所需的所有功能。它是完全面向对象的&#xff0c;很容易扩展&#xff0c;并且允许真正的组件编程。 QT项目的创建 .pro文件 .pro 文件是一个Qt项目文件&#xff0c;用于定义…...

Hive 导入csv文件,数据中包含逗号的问题

问题 今天 Hive 导入 csv 文件时&#xff0c;开始时建表语句如下&#xff1a; CREATE TABLE IF NOT EXISTS test.student (name STRING COMMENT 姓名,age STRING COMMENT 年龄,gender STRING COMMENT 性别,other_info STRING COMMENT 其他信息 ) COMMENT 学生信息表 ROW FORM…...

1、Odoo开发起点

1.1.odoo的模块组成 init.py将一个文件夹编程python包manifestpyodoo模块定义的清单文件&#xff0c;用于对odoo模块管理详见model模型类文件&#xff0c;存放py文件security表级别权限管理static静态文件views视图文件。wizard瞬态模型向导文件位置 1.2.odoo的开发规范 非强…...

Ubuntu22.04 交叉编译树莓派CM4 kernel

通过这个文章记录一下如何在Ubuntu22.04编译树莓派CM4的kernel。 主要参考树莓派官网的方法&#xff0c;也总结了一些关于SD卡分区的知识。 1&#xff0c;虚拟机安装Ubuntu 22.04&#xff0c;就不介绍了。 2&#xff0c;先将树莓派官方系统烧录倒SD卡中&#xff0c;设备能正…...

稀疏矩阵搜索(两种方法解决:1.暴力+哈希 2.二分法)

题目&#xff1a; 有个排好序的字符串数组&#xff0c;其中散布着一些空字符串&#xff0c;编写一种方法&#xff0c;找出给定字符串的位置。 示例&#xff1a; 输入: words ["at", "", "", "", "ball", "", &…...

NodeJS系列教程、笔记

NodeJS系列教程、笔记 点我进入专栏 Node.js安装与基本使用 NodeJS的Web框架Express入门 Node.js的sha1加密 Nodejs热更新 Nodejs配置文件 Nodejs的字节操作&#xff08;Buffer&#xff09; Node.js之TCP&#xff08;net&#xff09; Node.js使用axios进行web接口调用 …...

4.4TCP半连接队列和全连接队列

目录 什么是 TCP 半连接队列和全连接队列&#xff1f; TCP 全连接队列溢出 如何知道应用程序的 TCP 全连接队列大小&#xff1f; 如何模拟 TCP 全连接队列溢出的场景&#xff1f; 全连接队列溢出会发生什么 ? 如何增大全连接队列呢 ? TCP 半连接队列溢出 如何查看 TC…...

一键实现 Oracle 数据整库同步至 Apache Doris

在实时数据仓库建设或迁移的过程中&#xff0c;用户必须考虑如何高效便捷将关系数据库数据同步到实时数仓中来&#xff0c;Apache Doris 用户也面临这样的挑战。而对于从 Oracle 到 Doris 的数据同步&#xff0c;通常会用到以下两种常见的同步方式&#xff1a; OGG/XStream/Lo…...

Unity3D软件安装包分享(附安装教程)

目录 一、软件简介 二、软件下载 一、软件简介 Unity3D是一款全球知名的游戏开发引擎&#xff0c;由Unity Technologies公司开发。它提供了一个跨平台、多功能的开发环境&#xff0c;支持创建2D和3D游戏、交互式应用、虚拟现实、增强现实等多种类型的应用程序。以下是Unity3D…...

Vue2向Vue3过度Vue3组合式API

目录 1. Vue2 选项式 API vs Vue3 组合式API2. Vue3的优势3 使用create-vue搭建Vue3项目1. 认识create-vue2. 使用create-vue创建项目 4 熟悉项目和关键文件5 组合式API - setup选项1. setup选项的写法和执行时机2. setup中写代码的特点3. <script setup>语法糖 6 组合式…...

⛳ Docker 安装 MySQL

&#x1f38d;目录 ⛳ Docker 安装 MySQL&#x1f69c; 一、搜索 mysql , 查看版本&#x1f3a8; 二、拉取mysql镜像&#x1f463; 三、建立容器的挂载文件&#x1f9f0; 四、创建mysql配置文件&#xff0c;my.conf&#x1f3ed; 五、根据镜像产生容器&#x1f381; 六、远程连…...

4.6 TCP面向字节流

TCP 是面向字节流的协议&#xff0c;UDP 是面向报文的协议 操作系统对 TCP 和 UDP 协议的发送方的机制不同&#xff0c;也就是问题原因在发送方。 UDP面向报文协议&#xff1a; 操作系统不会对UDP协议传输的消息进行拆分&#xff0c;在组装好UDP头部后就交给网络层处理&…...

uniapp返回上一页并刷新

在uniapp中&#xff0c;经常会有返回上一页的情况&#xff0c;官方提供有 uni.navigateBack 这个api来实现效果&#xff0c;但是此方法返回到上一页之后页面并不会更新&#xff08;刷新&#xff09;。 例如有这样一个场景&#xff1a;从地址列表页点击添加按钮进入添加地址页面…...

LRU cache的实现细节优化——伪结点的技巧

LRU cache的实现是面试常见的题目&#xff0c;思路比较简单&#xff0c;可以参考思路 这个题目在实际面试中容易出错&#xff0c;主要是npe和头节点与尾节点的更新&#xff0c;有没有办法避免这一点呢&#xff0c;这时可以发现伪节点的好处&#xff0c;永远不用更新头尾节点&am…...

【C/C++】父类指针指向子类对象 | 隐藏

创作不易&#xff0c;本篇文章如果帮助到了你&#xff0c;还请点赞 关注支持一下♡>&#x16966;<)!! 主页专栏有更多知识&#xff0c;如有疑问欢迎大家指正讨论&#xff0c;共同进步&#xff01; &#x1f525;c系列专栏&#xff1a;C/C零基础到精通 &#x1f525; 给大…...

NSSCTF——Web题目2

目录 一、[HNCTF 2022 Week1]2048 二、[HNCTF 2022 Week1]What is Web 三、[LitCTF 2023]1zjs 四、[NCTF 2018]签到题 五、[SWPUCTF 2021 新生赛]gift_F12 一、[HNCTF 2022 Week1]2048 知识点&#xff1a;源代码审计 解题思路&#xff1a; 1、打开控制台&#xff0c;查看…...

从零到富:探索CSGO搬砖项目的无限可能

在如今互联网时代&#xff0c;有一项令人惊叹的项目正悄然兴起&#xff0c;它就是CSGO搬砖项目。作为一个从零开始的家伙&#xff0c;我亲身经历了这个项目的神奇魅力&#xff0c;每天轻松赚取几十上百的收益&#xff0c;无风险&#xff0c;低成本。今天&#xff0c;我将带领大…...

Uniapp中vuex的使用

vuex的学习笔记&#xff0c;很多地方还都不是很懂&#xff0c;先记下来再说&#xff0c;比小程序里自带的store复杂很多&#xff0c;看着头大&#xff0c;而且方法里面很多ES6的内容&#xff0c;头都看到爆炸 一、初始化vuex 新建store.js&#xff0c;挂载到main.js 1、在根…...

SpringBoot案例-配置文件-参数配置化

前言 目前我们已经完成了部门管理和员工管理功能接口的实现&#xff0c;阿里云OSS工具类中&#xff0c;我们会设置4个参数&#xff0c;分别是云服务域名、云服务ID和密码、文件存储的Bucket、就会存在以下问题&#xff1a;参数配置分散以及参数发生变化&#xff0c;就需要对应…...

android系统启动流程之zygote(Native)启动分析

zygote有一部分运行在native,有一部分运行在java层&#xff0c;它是第一个进入java层的进程 zygote在启动时&#xff0c;在init.${ro.zygote}.rc脚本中&#xff0c;里面描述了zygote是如何被启动的&#xff0c; 当init进程解析到zygote.rc文件时&#xff0c;将根据解析出来的命…...

Win10上ffmpeg出现Invalid report file level

在win10上经常使用ffmpeg&#xff0c;但是最近突然ffmpeg用不了&#xff0c;不管ffmpeg还是ffplay&#xff0c;输出始终一句话&#xff1a; Invalid report file level 重新通过scoop装了以后还是同样的错误。 后来发现是一个环境变量设置有问题&#xff0c;FFREPORT。 我在w…...

Vue3 中引入液晶数字字体(通常用于大屏设计)

一、下载 .ttf 字体文件到本地&#xff0c;放在 src 中的 assets 文件下 下载液晶字体 DS-Digital.ttf 二、在 css 文件中引入字体 /* src/assets/fonts/dsfont.css */ font-face {font-family: electronicFont;src: url(./DS-Digital.ttf);font-weight: normal;font-styl…...

从 Future 到 CompletableFuture:简化 Java 中的异步编程

引言 在并发编程中&#xff0c;我们经常需要处理多线程的任务&#xff0c;这些任务往往具有依赖性&#xff0c;异步性&#xff0c;且需要在所有任务完成后获取结果。Java 8 引入了 CompletableFuture 类&#xff0c;它带来了一种新的编程模式&#xff0c;让我们能够以函数式编…...

【ARMv8 SIMD和浮点指令编程】NEON 乘法指令——乘法知多少?

NEON 乘法指令包括向量乘法、向量乘加和向量乘减,还有和饱和相关的指令。总之,乘法指令是必修课,在我们的实际开发中会经常遇到。 1 MUL (by element) 乘(向量,按元素)。该指令将第一个源 SIMD&FP 寄存器中的向量元素乘以第二个源 SIMD&FP 寄存器中的指定值,将…...

Nginx详解 第三部分:Nginx高级配置(附配置实例)

Part 3 一、网页的状态页二、Nginx第三方模块2.1 echo 模块 三、变量3.1 内置变量3.1.1 常用内置变量3.1.2 举个例子 3.2 自定义变量 四、自定义访问日志 (优化)4.1 自定义访问日志的格式4.2 自定义json 格式日志 五、Nginx压缩功能&#xff08;重要&#xff09;六、HTTPS 功能…...

postman访问ruoyi后台接口

打开若依页面&#xff0c;登录进去&#xff0c;F12打开控制台&#xff0c;选一个后台服务&#xff0c;把下图两个节点&#xff0c;补到postman请求header里面即可...

怎么能找到做系统前的收藏网站/营销软文范例大全300

《斩仙》自推出以来&#xff0c;受到了众多玩家给予的帮助和支持。最近我们收到玩家提出合并服务器的建议&#xff0c;为了让玩家得到更好的游戏体验&#xff0c;结识新的朋友&#xff0c;我们正在努力进行服务器合并工作。由于服务器较多&#xff0c;我们每次将优先选择人气相…...

做返利网站/百度 营销推广是做什么的

1.原始套接字使用场景 我们平常所用到的网络编程都是在应用层收发数据&#xff0c;每个程序只能收到发给自己的数据&#xff0c;即每个程序只能收到来自该程序绑定的端口的数据。收到的数据往往只包括应用层数据&#xff0c;原有的头部信息在传递过程中被隐藏了。某些情况下我们…...

专业建设成果/长春seo公司

从Windows粘贴代码或指令到LInux&#xff0c;可以用【ctrl】【insert】复制&#xff0c;用【shift】【insert】粘贴&#xff0c;此方法也可以用于Linux环境之间复制粘贴 从LInux粘贴代码或指令到Windows&#xff0c;可以用【ctrl】【insert】复制&#xff0c;用【shift】【ins…...

互动案例的网站/凡科网站建设

昨天下午在闪银经过了一面&#xff0c;这里大概记录下面试问题吧&#xff01; 自我介绍挑一个展示自己实力的项目来讲解一下&#xff0c;这里要把项目模块结构图画好了程序题&#xff1a;①对字符串做 split 分词处理 ②二分查找算法转载于:https://www.cnblogs.com/optor/p/86…...

深圳做网站公司 南山/网站推广软件有哪些

1. 将这3块磁盘升级为动态磁盘。&#xff08;截图&#xff09;1)创建三块硬盘。2&#xff09;开始-运行&#xff0c;输入“diskmgmt.msc”3&#xff09;右键磁盘&#xff0c;联机。4&#xff09;右键磁盘初始化。5&#xff09;选择GPT格式。2. 在磁盘1上创建一个简…...

工业产品外观设计公司/如何做网站优化

在无源晶体的设计中&#xff0c;经常遇到负载电容CL的大小取值、晶振设计与精度的提高、KHz无源晶振的停止、音叉晶体谐振器的精度漂移以及精度和无源晶振在高温下的精度是否等于低温的精度烦忧的问题等。 无源晶体振荡器&#xff08;包括KHz和MHz&#xff09;是否能够直接参考…...