微信小程序如何像vue一樣在動(dòng)態(tài)綁定類名
小程序 開發(fā)中遇到這樣一個(gè)問題...
排行榜開發(fā)的時(shí)候,前三名的樣式不同,其余的樣式一樣。但是都是通過同一元素來遍歷的,當(dāng)時(shí)卡了一下。后來發(fā)現(xiàn)有module模塊化這一概念,于是查了下api,一下子就做出來了。
就是不同名次上邊的樣式根據(jù)實(shí)際情況展示效果。
模塊化
我們可以將一些公共的代碼抽離成為一個(gè)單獨(dú)的 js 文件,作為一個(gè)模塊。模塊只有通過 module.exports 或者 exports 才能對外暴露接口。
通俗的將就是自身獨(dú)立,作用域只作用于該模塊,與js互不影響。
主要代碼
module部分
<wxs module="rank">
var indexof = function(index){
switch(index){
case 0:
return 'first-price';
break;
case 1:
return 'second-price';
break;
case 2:
return 'third-price';
break;
}
};
module.exports.style = indexof;
</wxs>
view
<view class="weui-badge {{rank.style(index)}}">{{index + 1}}</view>
補(bǔ)充:
vue與微信小程序的一些區(qū)別
一.條件渲染
vue:使用v-if指令,v-else表示v-if的else塊,v-else-if表示v-if 的“else-if 塊”
<div v-if="type === 'A'"> A </div> <div v-else-if="type === 'B'"> B </div> <div v-else-if="type === 'C'"> C </div> <div v-else> Not A/B/C </div>
微信小程序:使用wx:if,wx:else表示wx:if的else塊,wx:elif表示wx:if的"else-if"塊
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
二.顯示隱藏元素
VUE:v-show="..."
微信小程序:hidden="{{...}}"
三.綁定class
vue:全用v-bind,或者簡寫為:bind,和本有的class分開寫
<div class="test" v-bind:class="{ active: isActive }"></div>
微信小程序:
<view class="test {{isActive ? 'active':'' }}"></view>
四.事件處理
VUE:使用v-on:event綁定事件,或者使用@event綁定事件
<button v-on:click="counter += 1">Add 1</button> <button v-on:click.stop="counter+=1">Add1</button> //阻止事件冒泡
微信小程序:全用bindtap(bind+event),或者catchtap(catch+event)綁定事件
<button bindtap="clickMe">點(diǎn)擊我</button> <button catchtap="clickMe">點(diǎn)擊我</button> //阻止事件冒泡
五.綁定值
VUE:vue動(dòng)態(tài)綁定一個(gè)變量的值為元素的某個(gè)屬性的時(shí)候,會在變量前面加上冒號:,例:<img :src="imgSrc"/>
微信小程序:綁定某個(gè)變量的值為元素屬性時(shí),會用兩個(gè)大括號括起來。例:<image src="{{imgSrc}}"></image>
六.綁定事件傳參
VUE:vue綁定事件的函數(shù)傳參數(shù)時(shí),可以把參數(shù)寫在函數(shù)后面的括號里
<div @click="changeTab(1)">哈哈</div>
微信小程序:微信小程序的事件我試過只能傳函數(shù)名,至于函數(shù)值,可以綁定到元素中,在函數(shù)中獲取
<view data-tab="1" catchtap="changeTab">哈哈</view>
js:
changeTab(e){
var _tab = e.currentTarget.dataset.tab;
}
七.設(shè)置值
VUE:設(shè)置test的值可以用,this.test = true;獲取test的值可以用this.test.
微信小程序:設(shè)置test的值要用this.setData({test:true});獲取test的值用this.data.test
總結(jié)
以上所述是小編給大家介紹的微信小程序如何像vue一樣在動(dòng)態(tài)綁定類名 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
基于前端VUE+ElementUI實(shí)現(xiàn)table行上移或下移功能(支持跨頁移動(dòng))
有時(shí)候需要前端實(shí)現(xiàn)上移和下移功能,下面這篇文章主要給大家介紹了關(guān)于如何基于前端VUE+ElementUI實(shí)現(xiàn)table行上移或下移(支持跨頁移動(dòng))的相關(guān)資料,文中通過代碼介紹的非常詳細(xì),需要的朋友可以參考下2024-07-07
VUE+Element實(shí)現(xiàn)增刪改查的示例源碼
這篇文章主要介紹了VUE+Element實(shí)現(xiàn)增刪改查的示例源碼,幫助大家更好的理解和使用vue,感興趣的朋友可以了解下2020-11-11
vue給數(shù)組中對象排序 sort函數(shù)的用法
這篇文章主要介紹了vue給數(shù)組中對象排序 sort函數(shù)的用法,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-09-09
vue項(xiàng)目實(shí)現(xiàn)局部全屏完整代碼
最近需要做一個(gè)全屏功能,所以這里給大家總結(jié)下,這篇文章主要給大家介紹了關(guān)于vue項(xiàng)目實(shí)現(xiàn)局部全屏的相關(guān)資料,需要的朋友可以參考下2023-09-09

