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

vue自定義組件插入到body中的實現(xiàn)方式

 更新時間:2025年12月13日 14:31:34   作者:@紅@旗下的小兵  
文章介紹了如何在Vue中創(chuàng)建一個自定義的notice提醒組件,并將其插入到body中,該組件通過調(diào)用`show`方法顯示,調(diào)用`remove`方法銷毀,主要步驟包括創(chuàng)建組件、使用render函數(shù)加載、$mount掛載并插入到body中

vue自定義組件插入到body中

以notice提醒組件為例,調(diào)用組件,如下:

實現(xiàn)了兩個方法

  • show方法時顯示組件
  • remove方法銷毀組件
// 加載組件
let noticeCom = vm.$create({
    title: '提醒標題', 
    content: '提醒內(nèi)容',
    duration: 2000 // 組件的顯示時長
}).show()
// 銷毀
noticeCom.remove()

實現(xiàn)思路

  • (1)首先創(chuàng)建組件
  • (2)使用render函數(shù)加載組件
  • (3)$mount掛載組件,把組件渲染為真實dom
  • (4)把dom插入到body中去

Notice.vue組件:

<!--Notice.vue組件-->
<template>
  <div v-if="isShow" class="notices">
     <div>{{title}}</div><div>{{contents}}</div>
  </div>
</template>
<script>
export default {
    props: {title: String, contents: String, duration: Number},
    data() {return {isShow: false}},
    methods: {
        show() { // show 方法控制組件的顯示
            this.isShow = true
            let timer = setTimeout(() => {
                this.isShow = false
                clearTimeout(timer)
            }, this.duration)
        }
    }
}
</script>

在main.js中,把渲染Notice組件的方法掛載到vue實例上:

// main.js 把notice組件渲染掛載到vue實例上
import notice from "@/components/notice.js"
Vue.prototype.$create = notice

notice.js:

// notice.js 加載組件的主文件
import Vue from 'vue'
export default function create(component, props) {
    let vm = new Vue({
        // 使用render函數(shù)渲染組件
        render(h) {
            return h(component,{props})
        }
    }).$mount()
    document.body.appendChild(vm.$el) // vm.$el 是Notice組件掛載的根節(jié)點<div class="notices">··· ···</div>
    const noticeComponent = vm.$children[0]
    // 組件掛載銷毀實例的方法(實際就是刪除dom)
    noticeComponent.removeNotice = function () {
        document.body.remove(vm.$el)
    }
    return noticeComponent
}

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • vue2.0中vue-cli實現(xiàn)全選、單選計算總價格的實例代碼

    vue2.0中vue-cli實現(xiàn)全選、單選計算總價格的實例代碼

    本篇文章主要介紹了vue2.0中vue-cli實現(xiàn)全選、單選計算總價格的實例代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • vue和better-scroll實現(xiàn)列表左右聯(lián)動效果詳解

    vue和better-scroll實現(xiàn)列表左右聯(lián)動效果詳解

    這篇文章主要介紹了vue和better-scroll實現(xiàn)列表左右聯(lián)動效果,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-04-04
  • Vue3初探之ref、reactive以及改變數(shù)組的值

    Vue3初探之ref、reactive以及改變數(shù)組的值

    在setup函數(shù)中,可以使用ref函數(shù)和reactive函數(shù)來創(chuàng)建響應式數(shù)據(jù),下面這篇文章主要給大家介紹了關(guān)于Vue3初探之ref、reactive以及改變數(shù)組值的相關(guān)資料,需要的朋友可以參考下
    2022-09-09
  • 一文教你學會在Vue3中自定義指令

    一文教你學會在Vue3中自定義指令

    這篇文章主要為大家詳細介紹一下如何在Vue3中實現(xiàn)自定義指令,文中的示例代碼講解詳細,具有一定的借鑒價值,需要的同學可以參考一下
    2022-07-07
  • Vue項目實現(xiàn)i18n國際化多語言切換方案實踐

    Vue項目實現(xiàn)i18n國際化多語言切換方案實踐

    本文將圍繞Vue項目國際化,借助官方提供的Vue I18n插件,介紹,講解安裝配置、多語言切換、復雜場景應用及優(yōu)化等,文中的示例代碼講解詳細,感興趣的小伙伴可以了解下
    2025-09-09
  • Vue3中埋點指令封裝詳解

    Vue3中埋點指令封裝詳解

    對于Vue項目來說,如果遇到一個埋點的需求,我們最好的解決方案就是封裝一個指令,所以本文就來和大家詳細講講具體是如何封裝埋點指令的吧
    2023-08-08
  • vue flex 布局實現(xiàn)div均分自動換行的示例代碼

    vue flex 布局實現(xiàn)div均分自動換行的示例代碼

    這篇文章主要介紹了vue flex 布局實現(xiàn)div均分自動換行,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • vue3常用的指令之v-bind和v-on指令用法

    vue3常用的指令之v-bind和v-on指令用法

    vue的v-on與v-bind,v-on就是用于綁定事件的,下面這篇文章主要給大家介紹了關(guān)于vue3常用的指令之v-bind和v-on指令用法的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2023-12-12
  • Vue2面試考點之$nextTick原理解析

    Vue2面試考點之$nextTick原理解析

    平時在獲取真實DOM的時候獲取不到最新的DOM元素,使用$nextTick就可以,那為什么$nextTick就可以獲取到最新的DOM元素呢,本文就來帶著這兩個問題來解析一下nextTick的原理
    2023-05-05
  • vue.js利用Object.defineProperty實現(xiàn)雙向綁定

    vue.js利用Object.defineProperty實現(xiàn)雙向綁定

    這篇文章主要為大家詳細介紹了vue.js利用Object.defineProperty實現(xiàn)雙向綁定,幫大家解析神秘的Object.defineProperty方法
    2017-03-03

最新評論

平度市| 万山特区| 松桃| 巨鹿县| 阳城县| 孟津县| 南通市| 柏乡县| 茌平县| 铜梁县| 杭锦旗| 江门市| 贞丰县| 南靖县| 仁布县| 尼玛县| 平舆县| 建湖县| 临沭县| 桃园县| 淳化县| 万盛区| 逊克县| 方城县| 定远县| 和顺县| 琼结县| 洮南市| 通山县| 滦平县| 澄城县| 大港区| 永安市| 北票市| 堆龙德庆县| 中阳县| 东丰县| 永兴县| 石城县| 井冈山市| 兴安县|