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