Vue3 mixin 自定义指令 teleport

news2025/1/12 21:09:10

文章目录

  • Vue3 mixin & 自定义指令 & teleport
    • mixin 混入
      • 简单使用
    • 自定义指令
      • 简单使用
      • 全局注册
      • 参数
    • teleport 传送门
      • 简单使用

Vue3 mixin & 自定义指令 & teleport

mixin 混入

mixins 选项接受一个 mixin 对象数组。这些 mixin 对象可以像普通的实例对象一样包含实例选项,它们将使用一定的选项合并逻辑与最终的选项进行合并。

  • 自定义的属性:组件中的属性优先级高于 mixin 属性的优先级。
  • data, methods:组件中的data、methods优先级高于 mixin data, methods 优先级。
  • 生命周期函数:先执行 mixin 里面的,再执行组件里面的。

简单使用

<script>
const myMixin = {
    number: 222,
    data() {
        return { num: 456 }
    },
    methods: {
        handleClick() {
            console.log("myMixin handleClick");
        }
    },
    created() {
        console.log("myMixin created");
    }
}
export default {
    mixins: [myMixin],
    number: 111,
    data() {
        return {
            num: 123,
        }
    },
    methods: {
        handleClick() {
            console.log("handleClick");
        }
    },
    created() {
        console.log("created");
    }
}
</script>

<template>
    <div>
        <div>{{ num }}</div>
        <div>{{ this.$options.number }}</div>
        <button @click="handleClick">点击</button>
    </div>
</template>

自定义指令

除了 Vue 内置的一系列指令 (比如 v-modelv-show) 之外,Vue 还允许你注册自定义的指令 (Custom Directives)。

简单使用

<script>
const focus = {
    mounted: (el) => el.focus()
}
export default {
    directives: {
        focus
    }
}
</script>

<template>
    <div>
        <input v-focus />
    </div>
</template>

全局注册

const app = createApp(App);
app.directive("focus", (el) => el.focus());
app.mount("#app");
<template>
    <div>
        <input v-focus />
    </div>
</template>

参数

const app = createApp(App);
app.directive("pos", (el, binding) => {
  el.style[binding.arg] = binding.value + "px";
});
app.mount("#app");
<template>
    <div>
        <div class="header" v-pos:left="100">
            <input />
        </div>
    </div>
</template>

<style>
.header {
    position: absolute;
}
</style>

teleport 传送门

<teleport> 是一个内置组件,它可以将一个组件内部的一部分模板“传送”到该组件的 DOM 结构外层的位置去。

简单使用

<Teleport> 挂载时,传送的 to 目标必须已经存在于 DOM 中。理想情况下,这应该是整个 Vue 应用 DOM 树外部的一个元素。如果目标元素也是由 Vue 渲染的,你需要确保在挂载 <Teleport> 之前先挂载该元素。

<script>
export default {
    data() {
        return {
            show: false,
            message: "hello world"
        }
    },
    methods: {
        handleClick() {
            this.show = !this.show;
        }
    }
}
</script>

<template>
    <div id="box2">
    </div>
    <div id="box1">
        <button @click="handleClick">点击</button>
        <Teleport to="#box2">
            <div class="mask" v-show="show">{{ message }}</div>
        </Teleport>
    </div>
</template>

<style>
.mask {
    position: absolute;
    left: 0;
    right: 0;
    top: 0;
    bottom: 0;
    background-color: #000;
    opacity: 0.5;
    color: white;
    font-size: 50px;
    text-align: center;
}
</style>

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/601866.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【企业化架构部署】Apache网页优化

文章目录 一、Apache网页优化概述1.优化内容2.网页压缩2.1gzip概述2.2作用2.3Apache的压缩模块概述mod_gzip模块与mod_deflate模块 3.配置网页压缩功能3.1启用网页压缩功能步骤3.2具体操作步骤 4.配置网页缓存功能4.1启用网页压缩功能步骤4.2具体操作步骤 二、Apache安全优化1.…

【JVM】.class类文件是如何被加载的?

一、类加载过程 .class文件最终加载到JVM并使用整体步骤及图示如下&#xff1a; 每个步骤所做的事情如下&#xff1a; 1、加载 &#xff08;1&#xff09;通过一个类的全限定名来获取该类文件的二进制字节流&#xff1b;&#xff08;读取class文件到内存中&#xff09; &am…

点击这里!解锁海量数据在openGauss Developer Day 2023的高光时刻

5月26日&#xff0c;openGauss Developer Day 2023在此起彼伏的掌声中圆满落幕。最前沿的核心产品、最深度的专业解读、最全面的落地案例......海量数据在此次盛会上时时高光&#xff0c;事事精彩&#xff0c;尤其是在专场分论坛上&#xff0c;数据库领域各路精英济济一堂&…

linuxOPS基础_linux文件检索及筛选

find命令 查找文件 主要功能&#xff1a;当我们查找一个文件时&#xff0c;必须使用的一个命令。 find 搜索路径 [选项]选项选项说明-name指定要搜索文件的名称&#xff0c;支持*星号通配符&#xff08;Shift 8&#xff09;-type代表搜索的文件类型&#xff0c;f代表普通文件…

使用开源代码和开源软件如何选择开源许可证

常用的开源许可证 世界上的开源许可证大约有近百种&#xff0c;如何使用开源代码和开源软件并正确理解、遵守这些开源许可证赋予的权利和义务是个比较繁琐的问题&#xff0c;我们对其中主要的六种许可证GPL、BSD、MIT、Mozilla、Apache和LGPL做个简单的梳理&#xff0c;对比一下…

什么是企业移动化管理 (EMM)

什么是EMM或企业移动化管理 企业移动化管理 &#xff08;EMM&#xff09; 是组织用来保护公司拥有和员工拥有的移动设备上的敏感公司数据的一组策略和做法。Mobile Device Manager Plus 是一个全面的 EMM 解决方案&#xff0c;允许 IT 团队和管理员跨多个平台管理设备&#xf…

推进产业发展健全服务体系,中国信通院数字员工评测工作正式启动

数字技术与应用正在快速重塑全新的经济发展格局&#xff0c;创新应用人工智能、大数据、云计算等新兴技术是企业实施数字化转型的重要策略之一。 “数字员工”是数字生产力与创造力体系的核心要素&#xff0c;自动化、智能化的执行模式将成为企业业务运营的新常态。随着数字员…

外包实在是太坑了,划水三年,感觉人都废了

先说一下自己的情况&#xff0c;专科生&#xff0c;19年通过校招进入杭州某个外包软件公司&#xff0c;干了接近3年的功能测试&#xff0c;今年年初&#xff0c;感觉自己不能够在这样下去了&#xff0c;长时间呆在一个舒适的环境会让一个人堕落! 而我已经在一个企业干了3年的功…

革命性3D打印数据处理软件 CHITUBOX Pro 1.3.0 Crack

CHITUBOX PRO登场 革命性的3D打印数据处理软件&#xff0c;让你发挥3D打印的无限潜力 支持多种主流CAD文件格式 除了传统的stl和obj文件&#xff0c;CHITUBOX Pro还支持导入各种主流的CAD文件格式&#xff0c;包括3ds、3mf、3dm、stp、step、wrl、x3d、sat、sab、dae、dxf、fb…

5.2.5 IP数据报(三)IP数据报的分片与重组

5.2.5 IP数据报&#xff08;三&#xff09;IP数据报的分片与重组 前面我们在学习IP数据报的格式中&#xff0c;提及了数据报的分片&#xff0c;这里我们要弄明白几个问题 为什么要分片&#xff1f; 前面我们已经解释过&#xff0c;如图 因为在数据报传送的过程中如果总长度超出…

Sui教育资助计划:共同构建Web3教育的未来

Sui教育资助计划旨在通过与社区成员一起构建公开的教育资料&#xff0c;加速推广Web3&#xff0c;并支持Sui生态系统的发展。 内容类别 包括教程、指南、视频以及文本等形式的教育材料包括学习奖励和其他体验式的教育产品&#xff0c;将学习游戏化可帮助开发人员加快构建速度…

基于matlab使用差分波束成形技术形成线性差分麦克风阵列

一、前言 本示例展示了差分波束成形的基本概念&#xff0c;以及如何使用该技术形成线性差分麦克风阵列。 二、加法与差分麦克风阵列 麦克风阵列已部署在许多音频应用中。根据布局的不同&#xff0c;麦克风阵列可分为两大类&#xff1a;加法麦克风阵列和差分麦克风阵列。附加麦克…

机器视觉陶瓷检测设备稳定性怎么样?不稳定因素有哪些?

机器视觉陶瓷检测设备是一种利用现代计算机视觉技术对陶瓷产品进行快速、高效的缺陷检测的设备。相比传统的人工检测方法&#xff0c;机器视觉陶瓷检测设备具有检测速度快、精度高、可靠性强等优点&#xff0c;可以大大提高陶瓷生产线的生产效率和产品质量。但是&#xff0c;由…

学成在线(视频处理-需求分析:xxl-job)

需求分析 作业分片方案 任务添加成功后&#xff0c;对于要处理的任务&#xff0c;会添加到待处理任务表中&#xff0c;现在启动多个执行器实例去查询这些待处理任务&#xff0c;此时如何保证多个执行器不会重复执行任务&#xff1f;在上一小节的测试中&#xff0c;每个执行器…

VMware ESXi 8.0U1a Unlocker OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版)

VMware ESXi 8.0 Update 1a Unlocker & OEM BIOS 集成网卡驱动和 NVMe 驱动 (集成驱动版) 发布 ESXi 8.0U1 集成驱动版&#xff0c;在个人电脑上运行企业级工作负载 请访问原文链接&#xff1a;https://sysin.org/blog/vmware-esxi-8-u1-sysin/&#xff0c;查看最新版。原…

手动上传海豚调度器资源中心的文件,解决dolphinscheduler资源中心上传大一点jar包的bug问题

手动上传海豚调度器资源中心的文件 1. 登录hdfs的任意服务器节点上传文件 注意&#xff1a;切换hdfs用户 su hdfs2. 上传文件资源到ds的资源中心&#xff08;hdfs上的资源目录&#xff09; 这里示例目录是&#xff1a;/dolphinscheduler/root/resources/gwmDs/demo-shell 示…

客服端向服务端发布、订阅、取消

这里写目录标题 PUBLISH – 发布消息SUBSCRIBE – 订阅主题SUBACK – 订阅确认UNSUBSCRIBE – 取消订阅 PUBLISH – 发布消息 MQTT客户端一旦连接到服务端&#xff0c;便可以发布消息。 每条发布的MQTT消息必须包含一个主题。MQTT服务器可以通过主题确定将消息转发给哪些客户端…

ES教程:从入门到入土

文章目录 一、环境准备1. ES安装 二、基本概念2.1 节点&#xff08;Node&#xff09;Master-eligible nodes与 Master nodeData NodeIngest NodeCoordinating NodeMachine Learning Node 2.2 集群&#xff08;cluster&#xff09;2.3 分片&#xff08;Shard&#xff09;2.4 副本…

linux0.12-12-fs

[606页] 第12章 文件系统 606–12-1-总体功能 607–12-1-1-MINIX文件系统 611–12-1-2-文件类型、属性和目录项 615–12-1-3-高速缓冲区 616–12-1-4-文件系统底层函数 616–12-1-5-文件中数据的访问操作 618–12-1-6-文件和目录管理系统调用 619–12-1-7-360KB软盘中文件系统…

openGauss DBMind上的多指标关联性分析介绍

背景 随着互联网的发展&#xff0c;今天的数据库系统往往非常庞大且复杂&#xff0c;针对数据库系统的运维工作需要监控大量数据指标来了解数据库的运行状况。数据库指标往往以时间序列的方式出现&#xff0c;当业务层面关键指标出现异常时&#xff0c;运维人员需要迅速定位异…