Teleport的使用
发表于|更新于|Notes
|总字数:279|阅读时长:1分钟|浏览量:
Teleport可以把组件的某一部分 DOM 渲染到 Vue 组件树之外的任意指定位置,而逻辑(状态、事件)仍保留在原组件内部。
这个特性非常适用于模态框、弹出框等需要在页面特定位置显示的组件。
1 |
|
如上所示
- 弹窗覆盖全屏,不受父级
position: absolute; width: 50px;的限制; show状态仍由<my-alert>组件自身管理,不需要额外的全局状态或事件总线;
文章作者: Yuki-I-Rain
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 Yuki-I-Rain!
相关推荐
2025-11-15
数据注入
所谓数据注入,是指父组件可以向其所有子组件提供数据,不论在层级结构上此子组件的层级有多深。 实现数据注入需要使用组件的provide与inject两个配置项,提供数据的父组件需要设置provide配置项来提供数据,子组件需要设置inject配置项来获取数据。 123456789101112131415161718192021222324252627282930313233343536373839404142434445<body> <div id="Application"> <my-list :count="5"> </my-list> </div> <script> const App = Vue.createApp({}) const listCom = { props:{ count: Num...
2025-09-04
Vue常用指令
v-model基本用法在表单上使用,用于双向绑定 实用修饰符 lzay修饰符 12<input v-model.lazy="textField"/> <p>文本输入框内容:{{textField}}</p> 只有当用户完成输入,即输入框失去焦点后,段落中才会同步到输入框中最终的文本数据。 trim修饰符 12<input v-model.trim="textField"/> <p>文本输入框内容:{{textField}}</p> 将绑定的文本数据的首尾空格去掉。 v-on(@)基本用法 为html标签绑定事件 事件类型 事件 意义 可用的元素 click 单击事件,当组件被单击时触发 大部分 HTML 元素 dblclick 双击事件,当组件被双击时触发 大部分 HTML 元素 focus 获取焦点事件,例如输入框开启编辑模式时触发 i...
2025-10-20
组件的高级配置(应用的全局配置选项)
当调用Vue.createApp方法后,会创建一个Vue应用实例,对于此应用实例,其内部封装了一个config对象,我们可以通过这个对象的一些全局选项来对其进行配置。常用的配置项有异常与警告捕获配置和全局属性配置。 异常和警告,使用自定义的函数来对抛出的异常和警告进行处理: 1234567891011const App = Vue.createApp({})App.config.errorHandler = (err, vm, info) => { // 捕获运行中产生的异常 // err参数是错误对象,info为具体的错误信息}App.config.warnHandler = (msg, vm, trace) => { // 捕获运行中产生的警告 // msg是警告信息,trace是组件的关系回溯} 通过globalProperties全局属性对象进行配置: 12345678910111213const App = Vue.createApp({})/...
2025-11-17
Mixin技术
基本用法 通过Mixin技术,组件的复用性可以得到进一步的提高: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546<body> <div id="Application"> <my-com1 title="组件1"></my-com1> <my-com2 title="组件2"></my-com2> <my-com3 title="组件3"></my-com3> </div> <script> const App = Vue.createApp({}); const com1 = { props: ['title'], template: ` &l...
2025-12-11
带参数的动态路由
路由参数匹配 在components文件夹下创建一个UserPage.vue的文件用以编写用户中心组件,直接通过解析路由中的参数来显示当前用户的昵称和编号 123456789<template> <h1>姓名:{{$route.params.username}}</h1> <h2>id:{{$route.params.id}}</h2></template><script> export default { };</script> 如上所示,在组件内部可以使用$route属性获取全局路由对象,而路由定义的参数可以在此对象的params属性中获取 在根目录下的main.js 中编写: 123456789101112131415161718192021222324import { createApp } from 'vue...
2025-10-16
自定义组件的插槽
插槽是指HTML起始标签与结束标签中间的部分,通常在使用div标签时,其内部的插槽位置既可以放置要显示的文案,又可以嵌套放置其他标签,例如: 1234<div>文案部分</div><div> <button>按钮</button></div> 插槽的核心作用是将组件内部的元素抽离到外部进行实现,在进行自定义组件的设计时,良好的插槽逻辑可以使组件的使用更加灵活。 基本用法12345678910111213141516171819202122232425<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" con...
评论
公告
Welcome to my blog~
