Vue extend的基本用法(實例詳解)
Vue.extend 屬于 Vue 的全局 API,在實際業(yè)務(wù)開發(fā)中我們很少使用,因為相比常用的 Vue.component 寫法使用 extend 步驟要更加繁瑣一些。
我們創(chuàng)建Vue實例時,都會有一個el選項,來指定實例的根節(jié)點,如果不寫el選項,那組件就處于未掛載狀態(tài)。Vue.extend 的作用,就是基于 Vue 構(gòu)造器,創(chuàng)建一個‘ 子類 ',它的參數(shù)跟new Vue的基本一樣,但data要跟組件一樣,是個函數(shù),再配合$mount
,就可以渲染組件,并且掛載到任意指定的節(jié)點上,比如body(這是單文件組件做不到的)
下面我們就來看兩個例子:
1.在單文件組件中使用
<template> <div id="about"></div> </template> <script> import Vue from 'vue/dist/vue.js' var Profile = Vue.extend({ template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>', data: function () { return { firstName: 'Walter', lastName: 'White', alias: 'Heisenberg' } } }) // 創(chuàng)建 Profile 實例,并掛載到一個元素上。 let profile=new Profile().$mount(); export default { mounted(){ let divid=document.getElementById('about'); divid.appendChild(profile.$el) } } </script>
這里需要注意幾個點:
報錯信息
如果有小伙伴遇到了這個問題,那么你導(dǎo)入的是
import Vue from 'vue'
這個時候只需要修改成即可解決問題
import Vue from 'vue/dist/vue.js'
在單文件組件中的掛載問題:
因為這里是通過獲取節(jié)點的方式添加到某個元素內(nèi),所以一定要在鉤子函數(shù)中掛載,確保當(dāng)前頁面的dom節(jié)點加載完成。
mounted(){ let divid=document.getElementById('about'); divid.appendChild(profile.$el) }
2.單獨構(gòu)建js文件
//index.js import Vue from 'vue/dist/vue.js' export default function Create(node){ var notiful=Vue.extend({ template:`<p>{{name}}</p>`, data(){ return { name:"liuhuas" } } }) var noti=new notiful().$mount(); document.getElementById(node).appendChild(noti.$el); }
創(chuàng)建完成后我們就可以在任何地方引入這個js文件 ,并執(zhí)行Create方法,注意的是這里的Create方法里面也獲取了dom,那么就需要在相應(yīng)的鉤子函數(shù)中去執(zhí)行這個方法。
總結(jié)
以上所述是小編給大家介紹的Vue extend的基本用法,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
詳解vue+nodejs獲取多個表數(shù)據(jù)的方法
這篇文章主要為大家介紹了vue+nodejs獲取多個表數(shù)據(jù)的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下,希望能夠給你帶來幫助2021-12-12vue實現(xiàn)一個矩形標(biāo)記區(qū)域(rectangle marker)的方法
這篇文章主要介紹了vue實現(xiàn)一個矩形標(biāo)記區(qū)域 rectangle marker的方法,幫助大家實現(xiàn)區(qū)域標(biāo)記功能,感興趣的朋友可以了解下2020-10-10vue主動刷新頁面及列表數(shù)據(jù)刪除后的刷新實例
今天小編就為大家分享一篇vue主動刷新頁面及列表數(shù)據(jù)刪除后的刷新實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-09-09vite獲取所有環(huán)境變量(env)的實現(xiàn)方法
本文主要介紹了vite獲取所有環(huán)境變量(env)的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06vue3中的ref,toRef,toRefs三個的作用使用小結(jié)
Vue3中ref、reactive、toRef、toRefs都是與響應(yīng)式數(shù)據(jù)相關(guān)的,就此做一份筆記作為區(qū)別,本文重點給大家講解vue3中的ref,toRef,toRefs三個是干嘛的,有什么作用,感興趣的朋友跟隨小編一起看看吧2022-11-11如何解決element-ui中select下拉框popper超出彈框問題
這篇文章主要介紹了如何解決element-ui中select下拉框popper超出彈框問題,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-04-04