針對同一元件內較多不同模組進行元件封裝,實現程式碼優化
需求:
主頁中有不同的頻道,各個頻道互不干擾,各自展示自己的文章資料
思路:
1、找到資料介面
2、封裝請求方法
3、在元件中請求獲取資料,將資料儲存到 data 中
4、模板繫結展示
根據不同的頻道載入不同的文章列表,
- 有一個
list
陣列,用來儲存資料列表 - 檢視
a
頻道:請求獲取資料,讓list = a
頻道文章資料 - 檢視
b
頻道:請求獲取資料,讓list = b
頻道文章資料 - 檢視
c
頻道:請求獲取資料,讓list = c
頻道文章資料
問題出現:
1,需要宣告很多不同的頻道名稱,2,切換頻道後重復發起資料請求;
優化解決方案:
準備多個 list 陣列,每個頻道對應一個,檢視哪個頻道就把資料往哪個頻道的列表陣列中存放,這樣的話就不會導致覆蓋問題
一一宣告頻道太麻煩,因此:
封裝一個文章列表元件,然後在頻道列表把文章列表遍歷出來
,通過元件間傳值的方式,把頻道物件傳給文章列表元件;文章列表元件使用頻道物件中的id來獲取文章列表資料;之後把文章列表元件在頻道列表中遍歷出來;
最終:
具體操作:
父元件home/index,其中channels變數儲存了所有的頻道資訊 由channels遍歷生成的article-list子元件接收父元件傳來的每項channel資料, 根據channel中的引數獲取資料,然後儲存到list中,通過不斷上拉/下拉重新整理,將資料不斷push/unshift到list陣列中,(由於article-list子元件一直存在,所以資料一致被儲存),然後遍歷list生成子元件article-item,來進行每一項的渲染,該子元件接收父元件傳來的article資料,該資料來源於遍歷出來的list的每一項,在article-item根據article傳來的資料渲染出具體的值,由於每個頻道都是單獨存在的,所以list的值也不同,互相切換互不影響,點選哪個頻道,該頻道發起請求,一次請求,只要不離開父元件home,就一直存在;
實現:
//home父元件
<van-tab
v-for="channel in channels"
:key="channel.id"
:title="channel.name"
>
<!-- 頻道文章列表 -->
<article-list :channel="channel"></article-list>
</van-tab>
//article-list文章列表元件
<article-item
v-for="(article, index) in list"
:key="index"
:article="article"
></article-item>
//article-list具體項元件進行渲染具體項
點選不同 頻道時,儲存的資料也不同,同時點選過的資料也會被儲存下來;
相關文章
- Android 元件化之通訊(多模組,多程式)Android元件化
- Android模組化與元件化–多模組區分編譯Android元件化編譯
- [Android] 元件化 & 模組化 & 外掛化演進Android元件化
- Gradle自動實現Android元件化模組構建GradleAndroid元件化
- element對上傳元件二次封裝,vue上傳下載元件的實現元件封裝Vue
- 如何優雅的封裝vue元件封裝Vue元件
- 微信小程式元件封裝微信小程式元件封裝
- iOS的元件化(模組化)之路iOS元件化
- 通過Gradle自動實現Android元件化模組構建GradleAndroid元件化
- iOS 元件化/模組化架構設計實踐iOS元件化架構
- 微信小程式元件化 快速實現可用模態窗微信小程式元件化
- 藉助Python 函式進行模組化程式碼Python函式
- 關於模組化、元件化的理解元件化
- 純原生元件化-模組化的探索元件化
- 微信小程式自定義元件封裝及元件傳值微信小程式元件封裝
- 封裝模組實現商品增刪改查封裝
- 元件化頁面:封裝el-table元件化封裝
- UI設計培訓分享:ui設計的如何進行元件化和模組化?UI元件化
- React元件中對子元件children進行加強React元件
- gePlugin封裝成winform控制元件,一行程式碼即可載入。Plugin封裝ORM控制元件行程
- 封裝UI元件庫封裝UI元件
- vue元件封裝指南Vue元件封裝
- (乾貨)微信小程式元件封裝微信小程式元件封裝
- 【JavaScript】淺談前端模組化與元件化JavaScript前端元件化
- vue實現 可展開 且 可多選table 元件封裝Vue元件封裝
- 封裝一個優雅的element ui表格元件封裝UI元件
- 什麼是模組化,元件化, 外掛化?元件化
- 100行程式碼實現一個vue分頁元件行程Vue元件
- Android元件化實現Android元件化
- 一對一聊天原始碼,vue實現環形進度條元件原始碼Vue元件
- 對於封裝react元件的一些思考封裝React元件
- 微信小程式之如何使用自定義元件封裝原生 image 元件微信小程式元件封裝
- Android元件化開發實踐(一):為什麼要進行元件化開發?Android元件化
- 小程式如何封裝提示元件並且使用封裝元件
- Vue 封裝動態元件Vue封裝元件
- 封裝Vue 的 SVG 元件封裝VueSVG元件
- 二次封裝這幾個 element-ui 元件後,讓程式碼更加優雅了封裝UI元件
- 聊聊MVC和模組化以及MVVM和元件化MVCMVVM元件化