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

Vue非單文件組件使用詳解

 更新時(shí)間:2023年06月05日 15:34:57   作者:摔跤貓子  
Vue單文件組件通常使用.vue文件擴(kuò)展名,下面這篇文章主要給大家介紹了關(guān)于Vue非單文件組件使用的相關(guān)資料,文中通過(guò)圖文以及實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下

傳統(tǒng)網(wǎng)頁(yè)一些不可避免的小問(wèn)題:

1.網(wǎng)頁(yè)JS、CSS等資源依賴(lài)關(guān)系混亂,不方便維護(hù)

2.代碼復(fù)用率很低

使用組件將代碼進(jìn)行復(fù)用,簡(jiǎn)化項(xiàng)目結(jié)構(gòu),提高運(yùn)行效率,便于維護(hù)

組件定義

組件即為實(shí)現(xiàn)應(yīng)用中局部功能代碼(css、html、js)和資源(mp3、mp4、字體資源)的集合
模塊化:當(dāng)應(yīng)用中的JS都是以模塊來(lái)編寫(xiě)的,那這個(gè)應(yīng)用就是一個(gè)模塊化的應(yīng)用
組件化:當(dāng)應(yīng)用中的JS都是以組件來(lái)編寫(xiě)的,那這個(gè)應(yīng)用就是一個(gè)組件化的應(yīng)用

傳統(tǒng)網(wǎng)頁(yè)

傳統(tǒng)網(wǎng)站如需要新建一個(gè)頁(yè)面,需要頭部、中間內(nèi)容部分、底部,每次新建頁(yè)面都得復(fù)制來(lái)一套,引用的外部樣式也是如此;如果有一處需要更改,那么所復(fù)制的每個(gè)頁(yè)面都需要更改,還有著遺漏某個(gè)隱藏極深的頁(yè)面漏改的可能。

組件

組件是獨(dú)立和可復(fù)用的代碼組織單元,組件系統(tǒng)是vue核心特性之一,它讓開(kāi)發(fā)者使用小型、獨(dú)立和通??蓮?fù)用的組件構(gòu)建大型應(yīng)用,使得前端開(kāi)發(fā)的過(guò)程變成搭積木的過(guò)程。

傳統(tǒng)代碼

實(shí)現(xiàn)步驟

新建一個(gè)頁(yè)面并創(chuàng)建好頁(yè)面容器及對(duì)應(yīng)的Vue實(shí)例,在data中定義三個(gè)變量如下

 data: function () {
	 return {
	       header:'頁(yè)面頭部',
	       content: '頁(yè)面內(nèi)容',
	       footer:'頁(yè)面底部'
	   };
},

在頁(yè)面中通過(guò)差值語(yǔ)法的方式將數(shù)據(jù)渲染展示

<div class="box">{{header}}</div>
<hr />
<div class="box">{{content}}</div>
<hr />
<div class="box">{{footer}}</div>

這樣看上去也沒(méi)有什么問(wèn)題,影響貌似也不大,但是如果現(xiàn)在讓你再實(shí)現(xiàn)一個(gè)頁(yè)面,保持結(jié)構(gòu)不變的同時(shí)修改數(shù)據(jù),那是不是只能把這段代碼復(fù)制粘貼呢?這樣就違背了組件的作用,組件是把代碼進(jìn)行復(fù)用而不是復(fù)制

組件代碼

定義組件

使用Vue.extend(option)創(chuàng)建,格式與new Vue時(shí)幾乎一樣,但是這里有兩點(diǎn)要注意;
一是不需要寫(xiě)el,因?yàn)閑l最終是由vm來(lái)決定的、二是data必須寫(xiě)成函數(shù),這樣組件復(fù)用時(shí)互不干擾

通過(guò)template字段直接將html編寫(xiě)在里面即可

const header = Vue.extend({
            template:`
                <div>
                    <span>{{header}}</span>
                </div>
            `,
            data(){
                return {
                    header:'頁(yè)面頭部'
                }
            }
        });

注冊(cè)組件

局部注冊(cè)

在new Vue中使用components選項(xiàng)即可實(shí)現(xiàn)組件局部注冊(cè)

// 創(chuàng)建vue實(shí)例
        const vm = new Vue({
            el: '#root',
            //2.組件注冊(cè)
            components:{
                headercom:header,
                contentcom:content,
                footercom:footer,
            }
        });

使用局部注冊(cè)時(shí),如果頁(yè)面上有兩個(gè)容器對(duì)應(yīng)著兩個(gè)vm,那只有注冊(cè)過(guò)的vm才能使用這個(gè)組件,如果另外一個(gè)vm需要使用也需要再次注冊(cè)才能使用,但是這樣代碼又重復(fù)了,所以有了下面的全局注冊(cè)

全局注冊(cè)

全局注冊(cè)方法:使用Vue.component(‘’,‘’),它有兩個(gè)參數(shù),第一個(gè)是組件名,第二個(gè)組件的指向,也就是你定義好的組件

Vue.component('name',name);

使用組件

定義跟注冊(cè)好組件后即可在頁(yè)面進(jìn)行使用,通過(guò)編寫(xiě)組件標(biāo)簽的形式即可

<headercom></headercom>
<hr />
<contentcom></contentcom>
<hr />
<footercom></footercom>

避坑

1.組件注冊(cè)時(shí)使用大小寫(xiě)命名會(huì)報(bào)錯(cuò),同時(shí)組件名稱(chēng)不要使用一些html標(biāo)簽名稱(chēng)
2.components注冊(cè)時(shí)單詞拼寫(xiě)容易錯(cuò)誤
3.單個(gè)vm中存在多個(gè)components

總結(jié) 

到此這篇關(guān)于Vue非單文件組件使用的文章就介紹到這了,更多相關(guān)Vue非單文件組件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果

    Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果

    大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果來(lái)源于最近工作中element后臺(tái)管理頁(yè)面一張大屏的UI圖,該UI圖上有一個(gè)模塊需要有數(shù)字往上翻動(dòng)的效果。本文通過(guò)截圖代碼的形式給大家介紹Vue.js實(shí)現(xiàn)大屏數(shù)字滾動(dòng)翻轉(zhuǎn)效果,感興趣的朋友一起看看吧
    2019-11-11
  • VSCode搭建Vue項(xiàng)目的方法

    VSCode搭建Vue項(xiàng)目的方法

    這篇文章主要介紹了VSCode搭建Vue項(xiàng)目的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • Vue3自動(dòng)引入組件與組件庫(kù)的方法實(shí)例

    Vue3自動(dòng)引入組件與組件庫(kù)的方法實(shí)例

    關(guān)于vue?組件還是非常好用的,真正掌握預(yù)計(jì)需要一段時(shí)間,下面這篇文章主要給大家介紹了關(guān)于Vue3自動(dòng)引入組件與組件庫(kù)的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2022-10-10
  • vue里面父組件修改子組件樣式的方法

    vue里面父組件修改子組件樣式的方法

    下面小編就為大家分享一篇vue里面父組件修改子組件樣式的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-02-02
  • vue項(xiàng)目中如何將當(dāng)前頁(yè)面生成圖片

    vue項(xiàng)目中如何將當(dāng)前頁(yè)面生成圖片

    這篇文章主要介紹了vue項(xiàng)目中如何將當(dāng)前頁(yè)面生成圖片問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-10-10
  • vue3使用svg圖標(biāo)的方式總結(jié)

    vue3使用svg圖標(biāo)的方式總結(jié)

    在Vue?3中,可以使用多種方式來(lái)使用SVG圖標(biāo),這篇文章主要為大家總結(jié)了五個(gè)常用的方式,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下
    2023-08-08
  • element-ui實(shí)現(xiàn)表格邊框的動(dòng)態(tài)切換并防抖

    element-ui實(shí)現(xiàn)表格邊框的動(dòng)態(tài)切換并防抖

    這篇文章主要介紹了element-ui實(shí)現(xiàn)表格邊框的動(dòng)態(tài)切換并防抖方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08
  • vue路由傳參頁(yè)面刷新參數(shù)丟失問(wèn)題解決方案

    vue路由傳參頁(yè)面刷新參數(shù)丟失問(wèn)題解決方案

    這篇文章主要介紹了vue路由傳參頁(yè)面刷新參數(shù)丟失問(wèn)題解決方案,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • vue3點(diǎn)擊出現(xiàn)彈窗后背景變暗且不可操作的實(shí)現(xiàn)代碼

    vue3點(diǎn)擊出現(xiàn)彈窗后背景變暗且不可操作的實(shí)現(xiàn)代碼

    這篇文章主要介紹了vue3點(diǎn)擊出現(xiàn)彈窗后背景變暗且不可操作的實(shí)現(xiàn)代碼,本文通過(guò)實(shí)例代碼圖文相結(jié)合給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-08-08
  • vue項(xiàng)目中api接口管理總結(jié)

    vue項(xiàng)目中api接口管理總結(jié)

    本篇文章給大家介紹了vue項(xiàng)目中API接口管理的相關(guān)知識(shí)點(diǎn),以及相關(guān)JS代碼分析,有興趣的朋友參考下。
    2018-04-04

最新評(píng)論