微信小程序如何像vue一樣在動態(tài)綁定類名
小程序 開發(fā)中遇到這樣一個問題...
排行榜開發(fā)的時(shí)候,前三名的樣式不同,其余的樣式一樣。但是都是通過同一元素來遍歷的,當(dāng)時(shí)卡了一下。后來發(fā)現(xiàn)有module模塊化這一概念,于是查了下api,一下子就做出來了。
就是不同名次上邊的樣式根據(jù)實(shí)際情況展示效果。
模塊化
我們可以將一些公共的代碼抽離成為一個單獨(dú)的 js 文件,作為一個模塊。模塊只有通過 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動態(tài)綁定一個變量的值為元素的某個屬性的時(shí)候,會在變量前面加上冒號:,例:<img :src="imgSrc"/>
微信小程序:綁定某個變量的值為元素屬性時(shí),會用兩個大括號括起來。例:<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一樣在動態(tài)綁定類名 ,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
相關(guān)文章
vue element 表頭添加斜線的實(shí)現(xiàn)代碼
這篇文章主要介紹了vue element 表頭添加斜線的實(shí)現(xiàn)代碼,代碼簡單易懂,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-11-11Vue+Element+Springboot圖片上傳的實(shí)現(xiàn)示例
最近在學(xué)習(xí)前段后分離,本文介紹了Vue+Element+Springboot圖片上傳的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下2021-11-11基于Vue3實(shí)現(xiàn)無限滾動組件的示例代碼
如果你在社交媒體上停留的時(shí)間過長,那么,你所在的網(wǎng)站很可能正在使用無限滾動組件。這篇文章教你利用Vue3實(shí)現(xiàn)無限滾動組件,感興趣的可以參考一下2022-09-09如何使用Webstorm和Chrome來調(diào)試Vue項(xiàng)目
這篇文章主要介紹了如何使用Webstorm和Chrome來調(diào)試Vue項(xiàng)目,對Vue感興趣的同學(xué),一定要看一下2021-05-05vue計(jì)時(shí)器的實(shí)現(xiàn)方法
這篇文章主要為大家詳細(xì)介紹了vue計(jì)時(shí)器的實(shí)現(xiàn)方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-06-06vue項(xiàng)目中的public、static及指定不編譯文件問題
這篇文章主要介紹了vue項(xiàng)目中的public、static及指定不編譯文件問題,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-03-03