使用mint-ui開發(fā)項目的一些心得(分享)
Mint-ui:
1、Cell
開發(fā)過程中,有時需要修改mt-cell自帶的icon和value的標簽樣式,這時我們可以在<mt-cell></mt-cell>內新添如下標簽進行改寫:
<si-cell class="user-cell item-cell" title="當前產品" to="/selectproduct" is-link> <i class="siiconfont siicon-product"></i> <span>{{productSelected}}</span> </si-cell>
mt-cell無法直接綁定v-click事件,修改做法可以在<mt-cell></mt-cell>外面包一層<div></div>,在div上綁定click事件,代碼可參照第2點search中的代碼;
2、Search
通常情況下我們的參數(shù)不會直接是一個數(shù)組,可能需要對數(shù)據(jù)進行一些自定義處理,我的寫法如下:
<si-search v-model="value" :result="filterResult"> <div v-for="item in filterResult" :key="item" @click="switchCustomer(item)"> <si-cell :title="item"></si-cell> </div> </si-search>
filterResult是計算屬性,以此過濾好后臺傳來的數(shù)據(jù)后,再將其綁定在cell外的div層,還可以如第1點所說的綁定click事件,此處filterResult進行了中英文過濾,可以通過數(shù)據(jù)的中文名和英文名兩個屬性進行搜索。
filterResult() { var that = this; that.defaultResult = []; var re = /^[a-zA-Z]+$/; var data = that.result.data; var val = that.value; if (re.test(val)) { for (var i = 0;i < data.length;i++) { console.log(data[i].englishname); if (new RegExp(val, 'i').test(data[i].englishname)) { that.defaultResult.push(data[i].title); } } return that.defaultResult; } else { for (var i = 0;i < data.length;i++) { that.defaultResult.push(data[i].title); } return that.defaultResult.filter(value => new RegExp(val, 'i').test(value)); } }
3、Tabbar
通常情況下,底部的tabbar欄是需要在多頁面復用的,所以可以獨立成一個組件,然后通過外部容器作為父組件進行使用,切換tab的同時,tabbar需要向父組件傳遞選中的一個自定義的tabchange事件
selectTab: function(id) { this.$emit('tabchange', id); }
父組件接收自定義事件tabchange,觸發(fā)setSelected函數(shù)進行數(shù)據(jù)更新,通過數(shù)據(jù)驅動視圖更新:
<si-tabbar :Selected="selected" @tabchange="setSelected"></si-tabbar>
修改selected的值來切換tab
setSelected: function(data) { this.selected = data; this.tabToggle(data); }
template內有關tab-container里的代碼如下:
<div class="page-wrap"> <si-tab-container class="page-tabbar-container" v-model="selected"> <si-tab-container-item id="konwledge"> <si-news></si-news> </si-tab-container-item> <si-tab-container-item id="dashboard"> <si-overview></si-overview> </si-tab-container-item> <si-tab-container-item id="report"> <si-report></si-report> </si-tab-container-item> <si-tab-container-item id="user"> <si-user></si-user> </si-tab-container-item> </si-tab-container> </div>
4、Header
mt-header的title因為是mint-ui框架自帶生成的,所以在父組件上我們可能無法在title上綁定click事件,但功能需求中有這樣的要求:
雖然應該極力避免直接操作dom,但目前我的解決方法還在頁面渲染完成之后,在mounted的生命周期中用原生js綁定click事件,因為此時html元素已經生成,所以可以綁定到title的標簽<h1>。
mounted () { // 綁定click事件到mint-ui自動生成的頭部標題上 var h1 = document.getElementsByTagName('h1'); var that = this; if (that.headOptions.isTitleIcon == true) { h1[0].addEventListener("click",function() { that.$router.push({path: '/selectproduct'}); }) } },
5、datetime-picker
使用該組件一定要注意mint-ui的版本,2.2.5以上才可以,版本低會導致無法正常調用open方法顯示datetime-picker。
open(picker) { this.$refs[picker].open(); }
以上這篇使用mint-ui開發(fā)項目的一些心得(分享)就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
VUE使用ElementUI下拉框 @change事件數(shù)據(jù)不回顯問題
這篇文章主要介紹了VUE使用ElementUI下拉框 @change事件數(shù)據(jù)不回顯問題。具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-02-02公共Hooks封裝報表導出useExportExcel實現(xiàn)詳解
這篇文章主要為大家介紹了公共Hooks封裝報表導出useExportExcel實現(xiàn)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-12-12Vue3組合式API之getCurrentInstance詳解
我們可以通過?getCurrentInstance這個函數(shù)來返回當前組件的實例對象,也就是當前vue這個實例對象,下面這篇文章主要給大家介紹了關于Vue3組合式API之getCurrentInstance的相關資料,需要的朋友可以參考下2022-09-09Vue?axios和vue-axios的關系及使用區(qū)別
axios是基于promise的HTTP庫,可以使用在瀏覽器和node.js中,它不是vue的第三方插件,vue-axios是axios集成到Vue.js的小包裝器,可以像插件一樣安裝使用:Vue.use(VueAxios, axios),本文給大家介紹Vue?axios和vue-axios關系,感興趣的朋友一起看看吧2022-08-08