欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

vue 動態(tài)創(chuàng)建組件的兩種方法

 更新時間:2020年12月31日 11:07:38   作者:_冰  
這篇文章主要介紹了vue 動態(tài)創(chuàng)建組件的兩種方法,幫助大家更好的理解和使用vue框架,感興趣的朋友可以了解下

Vue動態(tài)創(chuàng)建組件實例并掛載到body

方式一

import Vue from 'vue'

/**
 * @param Component 組件實例的選項對象
 * @param props 組件實例中的prop
 */
export function create(Component, props) {
 const comp = new (Vue.extend(Component))({ propsData: props }).$mount()
 
 document.body.appendChild(comp.$el)

 comp.remove = () => {
  document.body.removeChild(comp.$el)

  comp.$destroy()
 }

 return comp
}

方式二

import Vue from 'vue'

export function create(Component, props) {
 // 借雞生蛋new Vue({render() {}}),在render中把Component作為根組件
 const vm = new Vue({
  // h是createElement函數(shù),它可以返回虛擬dom
  render(h) {
   console.log(h(Component,{ props }));
   
   // 將Component作為根組件渲染出來
   // h(標簽名稱或組件配置對象,傳遞屬性、事件等,孩子元素)
   return h(Component, { props })
  }
 }).$mount() // 掛載是為了把虛擬dom變成真實dom
 // 不掛載就沒有真實dom
 // 手動追加至body
 // 掛載之后$el可以訪問到真實dom
 document.body.appendChild(vm.$el)

 console.log(vm.$children);
 
 // 實例
 const comp = vm.$children[0]

 // 淘汰機制
 comp.remove = () => {
  // 刪除dom
  document.body.removeChild(vm.$el)

  // 銷毀組件
  vm.$destroy()
 }

 // 返回Component組件實例
 return comp
}

使用

A組件(要動態(tài)創(chuàng)建的組件)

<template>
 <div class="a">
  <h2>{{ title }}</h2>
  <p>{{ data }}</p>
 </div>
</template>

<script>
export default {
 props: {
  title: {
   type: String,
   default: "hello world!"
  },
  message: {
   type: String,
   default: "o(∩_∩)o 哈哈"
  },
  duration: {
   type: Number,
   default: 1000
  }
 },
 data() {
  return {
   data: "我是a組件",
  };
 },
 created() {
  let num = 1
  
  const timer = setInterval(() => {
   this.data = num++
  }, this.duration)

  this.$once("hook: beforeDestroy", () => clearInterval(timer))
 }
};
</script>

<style>
.a {
 position: fixed;
 width: 100%;
 top: 16px;
 left: 0;
 text-align: center;
 pointer-events: none;
 background-color: #fff;
 border: grey 3px solid;
 box-sizing: border-box;
}
</style>

B組件(操作動態(tài)創(chuàng)建組件的地方)

<template>
 <div class="b">
  <button @click="createA">創(chuàng)建</button>
 </div>
</template>

<script>
import A from "@/components/A.vue"
import { create } from "@/utils/create.js"
export default {

 components: {
  A,
 },
 methods: {
  createA() {
   // 創(chuàng)建A組件,并掛載到body上
   create(A, { title: "vue", message: "么么噠😙" })
  }
 },
};
</script>

以上就是vue 動態(tài)創(chuàng)建組件的兩種方法的詳細內(nèi)容,更多關于vue 動態(tài)創(chuàng)建組件的資料請關注腳本之家其它相關文章!

相關文章

  • 淺談Vue SSR中的Bundle的具有使用

    淺談Vue SSR中的Bundle的具有使用

    這篇文章主要介紹了淺談Vue SSR中的Bundle的具有使用,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2019-11-11
  • vue.js將unix時間戳轉換為自定義時間格式

    vue.js將unix時間戳轉換為自定義時間格式

    這篇文章主要介紹了vue.js將unix時間戳轉換為自定義時間格式的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-01-01
  • vue+axios?methods方法return取不到值問題及解決

    vue+axios?methods方法return取不到值問題及解決

    這篇文章主要介紹了vue+axios?methods方法return取不到值問題及解決,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-10-10
  • vue實現(xiàn)導入json解析成動態(tài)el-table樹表格

    vue實現(xiàn)導入json解析成動態(tài)el-table樹表格

    本文主要介紹了vue實現(xiàn)導入json解析成動態(tài)el-table樹表格,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-02-02
  • 淺談Vue入門需掌握的知識

    淺談Vue入門需掌握的知識

    這篇文章主要介紹了淺談Vue入門需掌握的知識,感興趣的同學參考下
    2021-04-04
  • 解決vue2.0動態(tài)綁定圖片src屬性值初始化時報錯的問題

    解決vue2.0動態(tài)綁定圖片src屬性值初始化時報錯的問題

    下面小編就為大家分享一篇解決vue2.0動態(tài)綁定圖片src屬性值初始化時報錯的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-03-03
  • nginx+vite項目打包以及部署的詳細過程

    nginx+vite項目打包以及部署的詳細過程

    我們使用nginx部署Vue項目,實質上就是將Vue項目打包后的內(nèi)容同步到nginx指向的文件夾,下面這篇文章主要給大家介紹了關于nginx+vite項目打包以及部署的相關資料,需要的朋友可以參考下
    2023-01-01
  • Vue父子組件屬性傳遞實現(xiàn)方法詳解

    Vue父子組件屬性傳遞實現(xiàn)方法詳解

    這篇文章主要介紹了Vue父子組件屬性傳遞實現(xiàn)方法,我們主要從案例出發(fā),用Vue3的寫法寫父子組件之間的屬性傳遞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習吧
    2023-02-02
  • Vue拖拽排序組件Vue-Slicksort解讀

    Vue拖拽排序組件Vue-Slicksort解讀

    這篇文章主要介紹了Vue拖拽排序組件Vue-Slicksort,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • Vue-cli3簡單使用(圖文步驟)

    Vue-cli3簡單使用(圖文步驟)

    這篇文章主要介紹了Vue-cli3簡單使用(圖文步驟),小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2019-04-04

最新評論