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

淺入深出Vue之組件使用

 更新時(shí)間:2019年07月11日 09:19:05   作者:若羽。  
這篇文章主要給大家介紹了關(guān)于淺入深出Vue之組件使用的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用Vue具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

組件在 vue開(kāi)發(fā)中是必不可少的一環(huán),用好組件這把屠龍刀,就能解決不少問(wèn)題。

組件是什么

官方的定義:

  • 組件是可復(fù)用的 Vue 實(shí)例,并且可帶有一個(gè)名字。

官方的定義已經(jīng)非常簡(jiǎn)明了,組件就是一個(gè)實(shí)例。

如何使用組件

在具體編寫組件實(shí)例代碼前,我們先來(lái)如下幾個(gè)約定:

  • 所有組件基于單文件組件,即一個(gè) .vue文件就是一個(gè)組件
  • data 必須為一個(gè)函數(shù)
  • template 節(jié)點(diǎn)下只能有一個(gè)子節(jié)點(diǎn)

約束不多,但最后兩個(gè)需要牢記在心。

基于單文件組件的前提下,一個(gè)組件的基本構(gòu)造如下:

<template>
  <div>
    <!-- 頁(yè)面內(nèi)容 -->
  </div>
</template>

<script>
export default {
  // 組件的邏輯,數(shù)據(jù)部分
}
</script>

<style>
 /** 樣式定義 **/
</style>

一個(gè)單文件組件由三個(gè)部分組成:

  1. 頁(yè)面內(nèi)容,即視圖部分,這部分是對(duì)數(shù)據(jù)的展示
  2. 邏輯,數(shù)據(jù)定義部分,這部分是定義、控制數(shù)據(jù)
  3. 樣式部分,服務(wù)于視圖

這三部分會(huì)在接下來(lái)的章節(jié)中一一實(shí)踐,在本篇中并不會(huì)給出具體的實(shí)例代碼。 本篇更側(cè)重于講清楚在寫組件之前應(yīng)該要注意的地方。

組件的命名

在這里向跑題的一點(diǎn)是:

  • 不管是前端還是后端還是其他方向,命名一定要重視,并能給出準(zhǔn)確的、無(wú)歧義的、簡(jiǎn)潔的命名

命名不僅僅是為了自己維護(hù)代碼,更多的是為了團(tuán)隊(duì)、協(xié)作開(kāi)發(fā)以及交流。良好的命名會(huì)讓你的代碼更具可讀性,而良好的可讀性會(huì)讓你的代碼更具可維護(hù)性。綜上,希望童鞋們能認(rèn)真命名,避免在項(xiàng)目中產(chǎn)出類似的命名:

var x = getSomething(y);

var somethingA = getSomethingB();

...

在這里,vue官方是強(qiáng)烈建議遵循 W3C規(guī)范去為組件命名的:

  • 字母全小寫且分隔符使用連字符(短橫線):-

當(dāng)然你也可以使用Pascal命名:

  • 首字母大寫,無(wú)分隔符

但是在使用組件時(shí),都是使用的 W3C規(guī)范。假設(shè)現(xiàn)在你有一個(gè)名稱為 HelloWorld的組件,那么如何在其他組件中使用:

<hello-world></hello-world>

建議在命名時(shí)考慮以下因素:

  • 詞要達(dá)意,言簡(jiǎn)意賅,不要長(zhǎng)篇大論
  • 避免產(chǎn)生多義性
  • 避免直接機(jī)翻中文,很多時(shí)候某些特有名詞或者是業(yè)務(wù)中提煉出來(lái)的詞并不適合直接機(jī)翻(機(jī)器翻譯)。對(duì)同一機(jī)翻詞匯,一百個(gè)人心中可能有一百種不同的解釋
  • 參考優(yōu)秀開(kāi)源項(xiàng)目的命名規(guī)范
  • 參考語(yǔ)言/框架所推薦的規(guī)范
  • 同一項(xiàng)目中,對(duì)于同一個(gè)業(yè)務(wù)知識(shí)、名詞的翻譯盡可能保持一致(同樣也是為了避免多義性)

在同一個(gè)項(xiàng)目中,盡可能保持統(tǒng)一風(fēng)格

組件的注冊(cè)

在另一個(gè)組件中如果需要使用其它自定義組件,那首先是需要將組件注冊(cè)。

而注冊(cè)分為:

  • 局部注冊(cè)
  • 全局注冊(cè)

局部注冊(cè)

局部注冊(cè)的用法:

<template>
  <div>
    <!-- 第三步: 在頁(yè)面中使用 -->
    <hello-world></hello-world>
  </div>
</template>

<script>

// 第一步:引入組件
import HelloWorld from 'your/component/path'

export default {

  // 第二步:在當(dāng)前組件注冊(cè)此組件,注冊(cè)之后才可以在頁(yè)面中使用
  components: [
    HelloWorld
  ]
}
</script>

上圖我們可以看到,在單文件組件中局部注冊(cè)的使用步驟:

  • 將組件引入
  • 在當(dāng)前組件中注冊(cè),這一步也就體現(xiàn)了局部二字,因?yàn)樽?cè)后的作用域僅在當(dāng)前組件內(nèi)。
  • 在視圖中使用

全局注冊(cè)

如果這個(gè) HelloWorld組件是經(jīng)常要用的一個(gè) UI組件怎么辦,如果使用局部注冊(cè)那意味著每個(gè)組件中都將存在第一步和第二步的重復(fù)代碼。

看見(jiàn)重復(fù)代碼,我們應(yīng)該形成一種想要干掉它的本能。因?yàn)橹貜?fù)代碼屬于項(xiàng)目中的壞味道,會(huì)讓項(xiàng)目的整體質(zhì)量下降,并且直接影響項(xiàng)目的可維護(hù)性和可擴(kuò)展性。

想想,當(dāng)這個(gè)項(xiàng)目非常龐大,龐大到這個(gè)基礎(chǔ)組件已經(jīng)被成百上千個(gè)組件引用了,哪天你要改這個(gè)組件的文件名或者移動(dòng)路徑時(shí),將是一場(chǎng)災(zāi)難。

因此,在 vue中提供了全局注冊(cè)的辦法。只需注冊(cè)一次,剩余組件中第一步和第二步的代碼就可以直接刪掉,因?yàn)槿肿?cè)之后可以直接在視圖中使用。

// main.js 入口文件,在創(chuàng)建根實(shí)例之前將其注冊(cè)
import HelloWorld from 'your/component/path'

Vue.component('HelloWorld', HelloWorld)

new Vue({
  ...
})

但是這種手動(dòng)全局注冊(cè)單個(gè)組件也存在一個(gè)問(wèn)題:

  • 不夠自動(dòng)化,當(dāng)組件數(shù)量繁多時(shí),手動(dòng)注冊(cè)組件就又成了一個(gè)負(fù)擔(dān)

這里童鞋們可以思考思考如何在 vue中實(shí)現(xiàn)自動(dòng)全局注冊(cè)組件。

寫在后面

組件系統(tǒng)所包含的內(nèi)容是相當(dāng)豐富的,三言兩語(yǔ)很難說(shuō)完整,因此這里只提組件最基礎(chǔ)的使用和注冊(cè)以及在實(shí)踐中會(huì)遇到的問(wèn)題。

下一篇將會(huì)詳細(xì)的說(shuō)明子組件及在其上進(jìn)行數(shù)據(jù)傳遞的相關(guān)知識(shí),同樣,也是以理論為主。也是作為基礎(chǔ)篇的最后一篇~

好了,以上就是這篇文章的全部?jī)?nèi)容了,希望本文的內(nèi)容對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,謝謝大家對(duì)腳本之家的支持。

相關(guān)文章

  • 如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能

    如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能

    本文給大家分享tinymce編輯器如何在vue3.0+中使用tinymce及實(shí)現(xiàn)多圖上傳文件上傳公式編輯功能,tinymce安裝方法文中也給大家詳細(xì)介紹了,對(duì)vue tinymce實(shí)現(xiàn)上傳公式編輯相關(guān)知識(shí)感興趣的朋友跟隨小編一起學(xué)習(xí)下吧
    2021-05-05
  • 詳解Vue 全局變量,局部變量

    詳解Vue 全局變量,局部變量

    這篇文章主要介紹了Vue全局變量局部變量,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • Vue項(xiàng)目本地沒(méi)有問(wèn)題但部署到服務(wù)器上提示錯(cuò)誤(問(wèn)題解決方案)

    Vue項(xiàng)目本地沒(méi)有問(wèn)題但部署到服務(wù)器上提示錯(cuò)誤(問(wèn)題解決方案)

    一個(gè) VUE 的項(xiàng)目在本地部署沒(méi)有問(wèn)題,但是部署到服務(wù)器上的時(shí)候提示訪問(wèn)資源的錯(cuò)誤,遇到這樣的問(wèn)題如何解決呢?下面小編給大家?guī)?lái)了Vue項(xiàng)目本地沒(méi)有問(wèn)題但部署到服務(wù)器上提示錯(cuò)誤的解決方法,感興趣的朋友一起看看吧
    2023-05-05
  • elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟

    elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟

    upload上傳是前端開(kāi)發(fā)很常用的一個(gè)功能,在Vue開(kāi)發(fā)中常用的Element組件庫(kù)也提供了非常好用的upload組件,這篇文章主要給大家介紹了關(guān)于elementui使用el-upload組件實(shí)現(xiàn)自定義上傳的詳細(xì)步驟,需要的朋友可以參考下
    2023-12-12
  • 基于Vue3的全屏拖拽上傳組件

    基于Vue3的全屏拖拽上傳組件

    本文主要介紹了基于Vue3的全屏拖拽上傳組件,其實(shí)思路上與其他拖拽上傳組件基本一樣,都是指定一個(gè)區(qū)域可拖拽,然后讀取文件在上傳,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-09-09
  • vue構(gòu)建單頁(yè)面應(yīng)用實(shí)戰(zhàn)

    vue構(gòu)建單頁(yè)面應(yīng)用實(shí)戰(zhàn)

    本篇文章主要介紹了vue構(gòu)建單頁(yè)面應(yīng)用實(shí)戰(zhàn),使用 SPA,沒(méi)有頁(yè)面切換,就沒(méi)有白屏阻塞,可以大大提高 H5 的性能,達(dá)到接近原生的流暢體驗(yàn)。
    2017-04-04
  • vue實(shí)現(xiàn)滾動(dòng)條始終懸浮在頁(yè)面最下方

    vue實(shí)現(xiàn)滾動(dòng)條始終懸浮在頁(yè)面最下方

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)滾動(dòng)條始終懸浮在頁(yè)面最下方,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法

    vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法

    這篇文章主要給大家介紹了關(guān)于vue3路由跳轉(zhuǎn)params傳參接收不到的解決辦法,Vue3是目前前端開(kāi)發(fā)中非常流行的框架之一,文中通過(guò)實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • 關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告解決方法

    關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告解決方法

    這篇文章主要介紹了關(guān)于Vue項(xiàng)目使用scss終端發(fā)出警告的解決方法,出現(xiàn)這個(gè)問(wèn)題的原因是項(xiàng)目中使用了DartSass舊版的JavaScriptAPI,這些API已被棄用,文章將解決的辦法介紹的非常詳細(xì),需要的朋友可以參考下
    2025-04-04
  • 前端vue面試總問(wèn)watch和computed區(qū)別及建議總結(jié)

    前端vue面試總問(wèn)watch和computed區(qū)別及建議總結(jié)

    在現(xiàn)代前端的面試中,vue和react是面試過(guò)程中基本必問(wèn)的技術(shù)棧,其中Vue響應(yīng)式話題,watch和computed是面試官非常喜歡聊的主題,雖然watch和computed它們都用于監(jiān)聽(tīng)數(shù)據(jù)的變化,但它們?cè)趯?shí)現(xiàn)原理、使用場(chǎng)景和行為上有著顯著的區(qū)別,本文將深入探討,并提供一些面試過(guò)程中的建議
    2023-10-10

最新評(píng)論

凌海市| 伊宁县| 年辖:市辖区| 潮安县| 海安县| 太湖县| 政和县| 景洪市| 莆田市| 嘉荫县| 本溪市| 辽阳市| 阿拉善盟| 仙桃市| 武宁县| 荃湾区| 横山县| 贵定县| 乌苏市| 铜鼓县| 文安县| 来宾市| 汨罗市| 泸水县| 公主岭市| 茶陵县| 南涧| 怀集县| 抚顺县| 房山区| 临朐县| 长岭县| 阳东县| 湖北省| 庐江县| 新源县| 宁津县| 仁布县| 青铜峡市| 渭源县| 咸宁市|