亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

uni-app 自定義組件

1. 前言

前面小節我們講過uni-app 組件,包括一些常用組件的用法。像<view></view>、<text></text>這類的基礎組件,我們可以直接使用,不需要提前定義,因為這些是系統幫我們預設好的。

但是這些系統預設的基礎組件不能滿足我們所有的開發需求,在 uni-app 項目中,我們可以根據項目的開發需求去自定義組件。

那如何去創建自定義組件并且引用呢?其實有開始標簽和結束標簽都可以理解為組件,下面我們來具體了解一下自定的組件的創建與引用。

2. 自定義組件的創建

在 uni-app 項目中,我們可以通過HBuilder 開發者工具新建一個后綴名為 .vue 的文件,在這個 .vue 文件中創建自定義組件。

后面將該組件通過 import 的方式導入,再在 components 中進行注冊就可以像基礎組件一樣使用了。

2.1創建一個自定義組件。

打開 HBuilder 開發者工具,之前創建過的項目會自動打開。在前面小節中我們創建過 imoocProjects 項目,就會出現在 HBuilder 開發者工具中的頁面左側。

展開項目目錄,右鍵點擊 components 文件夾,選擇新建組件。

勾選創建同名目錄,將組件命名為 login。

點擊創建, components 文件夾下面會出現一個名為login的文件夾,下面有一個login.vue文件,我們打開這個文件,系統會默認幫我們創建以下代碼。

實例:

<template>
  <view>

  </view>
</template>

<script>
  export default {
    data() {
      return {
      };
    }
  }
</script>

<style>

</style>

這樣一個自定義的組件就創建好了,目前這個組件還是空的,沒有實質上的內容,為了方便大家更好的去了解自定義組件,我們來模擬實際開發過程中的例子,定義一下組件的內容。

模擬一個實際的業務場景:假設我們想做一個有登錄權限的應用,部分頁面需要用戶登錄后才能查看,點擊這些頁面時,需要彈出登錄彈窗方便用戶登錄。如果在每個頁面都寫一個登錄彈窗,會大大降低應用的可維護性,這時自定義彈窗就有了用武之地。

我們只需要來自定義一個登錄彈窗組件,到時在頁面中直接調用這個組件就可以了。

2.2自定義登錄彈窗組件

2.2.1 在 <template > 標簽中添加組件的頁面結構代碼

<template>
  <view>
    <view class="modal-mask"></view>
    <view class="modal-dialog">
      <view class="modal-content">
        <p>慕課網wiki</p>
      </view>
      <button>授權登錄</button>
    </view>
  </view>
</template>

2.2.2 在 <style> 標簽中添加組件樣式代碼

<style>
.modal-mask {
  width: 100%;
  height: 100%;
  position: fixed;
  top: 0;
  left: 0;
  background: black;
  opacity: 0.5;
  z-index: 9000;
}
.modal-dialog {
  width: 560rpx;
  position: fixed;
  z-index: 9999;
  background: #ffffff;
  margin: -150rpx 95rpx;
  border-radius: 16rpx;
}
.modal-content {
  display: flex;
  padding: 10rpx 53rpx 50rpx 53rpx;
  font-size: 32rpx;
  justify-content: center;
}
button {
  background:#feb600;
}
</style>

該組件我們只定義了頁面結構代碼和樣式代碼,頁面邏輯會在組件引用的時候定義,所以沒有在 <script> 標簽中定義邏輯代碼,這個根據實際開發需求來就可以了。

3.自定義組件的引用

上面我們做了一個登錄彈窗,如果想要將登錄彈窗顯示出來,就需要先引入注冊組件。

比如我們想在首頁顯示登錄彈窗,就需要在 pages/index/index.vue 文件中引入 login.vue 這個組件,下面我們來操作一下。

3.1 引入并使用組件

在 pages/index/index.vue 文件 script 標簽下面引入并注冊組件。

<script>
  //引入組件
  import Login from "components/login/login.vue"
  export default {
    //注冊組件
    components: {
      Login
    }
  }
</script>

3.2 使用組件

在 template 標簽下面使用組件

<template>
  <view>
    <!-- 使用組件 -->
    <Login></Login>
  </view>
</template>

3.3 查看效果

點擊工具欄–運行–運行到內置瀏覽器,出現下面的效果,說明我們的自定義組件創建并使用成功了。

到了這一步就算完成了自定義組件的創建和引用。但有時明明成功引用了組件,但是組件卻沒有顯示出來,并且也沒有報錯。

這種情況往往是因為新創建的組件沒有被重新編譯,大多數情況下,重啟編譯器組件就可以正常顯示了。

4. 小結

使用自定義組件可以讓我們更加靈活的進行項目開發,組件可以理解為項目的一個個零件,我們通過組裝這些零件來完成項目的開發。

在自定義組件中,我們可以根據項目需求定義自己的屬性和方法,所以自定義組件適應的業務場景很廣泛。善用自定義組件進行開發,使我們的項目復用性更高、可維護性更強并且降低了組件之間重復性。

跟著本小節的學習,我們模擬了一個實際的業務場景,創建了一個登陸彈窗組件,并且在頁面中引用顯示出組件。主要了解了如何創建并引用 uni-app 自定義組件,本節課程需要掌握的知識點如下:

  • 掌握如何在 HBuilder 開發者工具中創建自定義組件,并理解如何在組件中填充代碼;

  • 了解并掌握怎樣引入并注冊自定義組件,將組件中的內容顯示在頁面中。