首页 > 其他分享 >Vue3:Teleport

Vue3:Teleport

时间:2022-09-20 22:47:33浏览次数:49  
标签:模态 Teleport color 50% isShow UI Vue3

Teleport

Vue 鼓励我们通过将 UI 和相关行为封装到组件中来构建 UI。我们可以将它们嵌套在另一个内部,以构建一个组成应用程序 UI 的树。

然而,有时组件模板的一部分逻辑上属于该组件,而从技术角度来看,最好将模板的这一部分移动到 DOM 中 Vue app 之外的其他位置

模态弹框

to属性:放到指定位置

<template>
  <div class="reson">
    <button @click="showModel">点击弹出模态框</button>

    <teleport to="body">
      <div class="mask" v-show="isShow">
        <div class="box">
          <h1>我是模态框</h1>
          <button @click="closeModel">点击关闭模态框</button>
        </div>
      </div>
    </teleport>

  </div>
</template>

<script>
import { ref } from "vue"
export default {
  name: 'Reson',

  setup() {
    let isShow = ref(false)
    //显示
    let showModel = function () {
      isShow.value = true
    }
    //隐藏
    let closeModel = function () {
      isShow.value = false
    }
    return { isShow, showModel, closeModel }
  }
};
</script>

<style lang="scss" scoped>
.reson {
  background-color: pink;
}
.mask {
  width: 100%;
  height: 100%;
  position: absolute;
  top: 0;
  left: 0;
  background-color: rgba(0, 0, 0, 0.5);
}
.box {
  width: 300px;
  height: 300px;
  background-color: aqua;
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
</style>

 

 

 

 

标签:模态,Teleport,color,50%,isShow,UI,Vue3
From: https://www.cnblogs.com/LIXI-/p/16712910.html

相关文章

  • Vue3:状态驱动的动态 CSS
     状态驱动的动态CSS单文件组件的<style>标签可以通过v-bind这一CSS函数将CSS的值关联到动态的组件状态上 <template><divclass="box1">hello</div>......
  • Vue3:注册组件
    注册组件组件内部<script>importBox1from"./Box1.vue"exportdefult{components:{Box1},setup(){}}</scr......
  • Vue3:Suspense
    等待异步组件时渲染一些额外的内容,让应用有更好的用户体验<suspense>组件有两个插槽。它们都只接收一个直接子节点。default插槽里的节点会尽可能展示出来。如果不能,则......
  • Vue3:监听属性
    监听属性与vue2.x中的watch配置功能一致注意监视reactive定义的响应式数据时,oldvalue无法正确获取,强制开始了深度监视(deep的配置失效)监视reactive定义的响应......
  • Vue3:生命周期
    Vue3.x的生命周期在Vue3.x中,新增了一个setup生命周期函数,setup执行的时机是在beforeCreate生命函数之前执行,因为在这个函数中不能通过this来获取实例的;同时为了命名的统一......
  • vue3在单独的js文件中使用pinia报错:getActivePinia was called with no active Pinia.
    1、之前在main.js中使用方式是:import{createPinia}from'pinia'constpinia=createPinia();app.use(pinia);2、现在的问题是我要再建一个js文件,需要用到我建的pini......
  • VUE3 动态添加路由
    在vue2中我们通常使用如下方式添加动态路由:router.addRoute(parentOrRoute,route)//添加单个router.addRoutes(routes)//添加多个在vue3......
  • Vue 系统组件 <Teleport> 简介rr
    <Teleport>传递组件@说明:将组件内的一部份模板传送到组件外层对象上,且不影响整个组件逻辑。 <Teleportto=""display=""></Teleport> 属性:to[必需String|H......
  • 学习vue3-先抄写文档
      当style标签带有scopedattribute的时候,它的css只会影响当前组件的元素。它的实现方式是通过PostCSS将当前组件添加属性,css选择器都添加对应属性选择器。子组......
  • vue3 watch和 watchEffect对比
    watch和watchEffectwatchwatch显式指定依赖数据,依赖数据更新时执行回调函数具有一定的惰性(lazy),第一次页面展示的时候不会执行,只有数据变化的时候才会执行(设置i......