最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue2實(shí)現(xiàn)傳送門(mén)效果的示例

 更新時(shí)間:2023年04月23日 09:46:08   作者:漢武大帝·  
本文主要介紹了vue2實(shí)現(xiàn)傳送門(mén)效果的示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

描述

在Vue3中<Teleport> 是一個(gè)內(nèi)置組件,使我們可以將一個(gè)組件的一部分模板“傳送”到該組件的 DOM 層次結(jié)構(gòu)之外的 DOM 節(jié)點(diǎn)中;現(xiàn)在在vue2實(shí)現(xiàn)一下效果:將組件掛載到body上

先看效果

代碼

Teleport 組件:

<script>
export default {
  props: {
    to: {
      type: String,
      required: true
    },
    disabled: {
      type: Boolean,
      required: true
    }
  },
  inject: ['parent'],
  //   inject 選項(xiàng)應(yīng)該是:
  // 一個(gè)字符串?dāng)?shù)組,或 一個(gè)對(duì)象,對(duì)象的 key 是本地的綁定名,value 是:
  //     在可用的注入內(nèi)容中搜索用的 key (字符串或 Symbol),或
  //     一個(gè)對(duì)象,該對(duì)象的:
  //          from property 是在可用的注入內(nèi)容中搜索用的 key (字符串或 Symbol)
  //          default property 是降級(jí)情況下使用的 value
 
  // Vue 選項(xiàng)中的 render 函數(shù)若存在,則 Vue 構(gòu)造函數(shù)不會(huì)從 template 選項(xiàng)或通過(guò) el 選項(xiàng)指定的掛載元素中提取出的 HTML 模板編譯渲染函數(shù)。
  render() {
    return <div class="Teleport">{this.$scopedSlots.default()}</div>
    // $scopedSlots用來(lái)訪(fǎng)問(wèn)作用域插槽。對(duì)于包括 默認(rèn) slot 在內(nèi)的每一個(gè)插槽,該對(duì)象都包含一個(gè)返回相應(yīng) VNode 的函數(shù)。
  },
  watch: {
    disabled() {
      if (!this.disabled) {
        // this指向組件的實(shí)例。$el指向當(dāng)前組件的DOM元素。
        document.querySelector(this.to).appendChild(this.$el);
      } else {
        this.parent.toSourceDom(this.$el);
      }
    }
  },
  mounted() {
    if(!this.disabled) document.querySelector(this.to).appendChild(this.$el)
  },
  methods: {},
};
</script>
<style lang="scss" scoped>
.Teleport {
  width: 100%;
  height: 100%;
}
</style>

index.vue 中引用 Teleport.vue 組件

<template>
  <div>
    <Teleport v-if="isShow" :disabled="isTeleport" to="body">
      <div class="cover">
        <div class="inner">
          我是彈窗
          <div class="close" @click="closed">關(guān)閉按鈕</div>
        </div>
      </div>
    </Teleport>
    <button @click="show">顯示</button>
  </div>
</template>
<script>
import Teleport from "./Teleport.vue";
import model from "./model.vue";
export default {
  data() {
    return {
      isShow: false, // 控制 Teleport 組件掛載時(shí)機(jī)
      isTeleport: false, // 控制什么時(shí)候被傳送
    };
  },
  provide() {
    return {
      parent: this,
    };
  },
  components: { Teleport, model },
  methods: {
    show() {
      this.isShow = true;
    },
    closeModel() {
      this.isShow = false;
    },
    toSourceDom(dom) {
      document.getElementById("sourceBox").appendChild(dom);
    },
  },
};
</script>
<style lang="scss" scoped>
.cover {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  bottom: 0;
  background: rgba($color: #000000, $alpha: 0.3);
  .inner {
    width: 500px;
    height: 300px;
    border-radius: 10px;
    background: #fff;
    color: red;
    font-weight: 600;
    position: absolute;
    left: 40%;
    top: 30%;
    text-align: center;
    font-size: 30px;
    .close{
      position: absolute;
      bottom: 0;
      right: 0;
      background: skyblue;
      padding: 10px;
      cursor: pointer;
      border-radius: 10px 0 0 0;
    }
  }
}
</style>

到此這篇關(guān)于vue2實(shí)現(xiàn)傳送門(mén)效果的示例的文章就介紹到這了,更多相關(guān)vue2 傳送門(mén)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 關(guān)于Vue腳手架中render 理解

    關(guān)于Vue腳手架中render 理解

    這篇文章主要介紹了Vue腳手架中的 render 理解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • vue3實(shí)現(xiàn)封裝時(shí)間計(jì)算-日期倒計(jì)時(shí)組件-還有XX天&第XX天

    vue3實(shí)現(xiàn)封裝時(shí)間計(jì)算-日期倒計(jì)時(shí)組件-還有XX天&第XX天

    這篇文章主要介紹了vue3實(shí)現(xiàn)封裝時(shí)間計(jì)算-日期倒計(jì)時(shí)組件-還有XX天&第XX天,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue實(shí)現(xiàn)自定義日期組件功能的實(shí)例代碼

    vue實(shí)現(xiàn)自定義日期組件功能的實(shí)例代碼

    這篇文章主要介紹了vue自定義日期組件的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2018-11-11
  • Vue多布局模式實(shí)現(xiàn)方法詳細(xì)講解

    Vue多布局模式實(shí)現(xiàn)方法詳細(xì)講解

    這篇文章主要介紹了Vue多布局模式實(shí)現(xiàn)方法,多布局模式可以根據(jù)用戶(hù)角色所在場(chǎng)景切換頁(yè)面布局,是非常常見(jiàn)的基礎(chǔ)功能,感興趣的同學(xué)可以參考下文
    2023-05-05
  • vue如何在引入的el-tree前添加圖標(biāo)

    vue如何在引入的el-tree前添加圖標(biāo)

    這篇文章主要介紹了vue如何在引入的el-tree前添加圖標(biāo)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • vue項(xiàng)目中常用解決跨域的方法總結(jié)(CORS和Proxy)

    vue項(xiàng)目中常用解決跨域的方法總結(jié)(CORS和Proxy)

    在vue項(xiàng)目中,一般我們會(huì)遇到跨域的問(wèn)題,vue項(xiàng)目中解決跨域是非常簡(jiǎn)單的,下面這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目中常用解決跨域的方法,主要解釋CROS和Proxy兩種方式,需要的朋友可以參考下
    2022-12-12
  • Vue表單驗(yàn)證插件Vue Validator使用方法詳解

    Vue表單驗(yàn)證插件Vue Validator使用方法詳解

    這篇文章主要為大家詳細(xì)介紹了Vue表單驗(yàn)證插件Vue Validator使用方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • Vue首頁(yè)加載過(guò)慢的解決方式

    Vue首頁(yè)加載過(guò)慢的解決方式

    這篇文章主要介紹了Vue首頁(yè)加載過(guò)慢的解決方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-08-08
  • Vue生命周期區(qū)別詳解

    Vue生命周期區(qū)別詳解

    這篇文章主要介紹了Vue生命周期區(qū)別詳解,本篇文章通過(guò)簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下
    2021-07-07
  • 微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)記錄

    微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)記錄

    這篇文章主要介紹了微信小程序Webview與H5通信的思路與實(shí)戰(zhàn)的相關(guān)資料,由于微信小程序與H5之間的通信限制,無(wú)法滿(mǎn)足業(yè)務(wù)需求,通過(guò)動(dòng)態(tài)改變url的hash值來(lái)傳遞參數(shù),并利用vue-router組件的路由守衛(wèi)來(lái)避免頁(yè)面刷新,需要的朋友可以參考下
    2025-01-01

最新評(píng)論

武威市| 保亭| 海南省| 澄江县| 邢台市| 济阳县| 新野县| 克拉玛依市| 乌拉特前旗| 襄樊市| 疏附县| 宣城市| 潞西市| 筠连县| 南雄市| 会泽县| 类乌齐县| 黎平县| 三明市| 望江县| 鞍山市| 南投市| 乌苏市| 湘西| 穆棱市| 临夏市| 改则县| 芦溪县| 夏邑县| 定兴县| 久治县| 宜丰县| 澜沧| 大姚县| 奉贤区| 华阴市| 镇赉县| 北海市| 遵义市| 抚宁县| 瑞安市|