微信小程序如何像vue一样在动态绑定类名


Posted in Javascript onApril 17, 2018

小程序 开发中遇到这样一个问题...

排行榜开发的时候,前三名的样式不同,其余的样式一样。但是都是通过同一元素来遍历的,当时卡了一下。后来发现有module模块化这一概念,于是查了下api,一下子就做出来了。

微信小程序如何像vue一样在动态绑定类名 

就是不同名次上边的样式根据实际情况展示效果。

模块化

我们可以将一些公共的代码抽离成为一个单独的 js 文件,作为一个模块。模块只有通过 module.exports 或者 exports 才能对外暴露接口。

通俗的将就是自身独立,作用域只作用于该模块,与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>

补充:

vue与微信小程序的一些区别

一.条件渲染

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">点击我</button>
<button catchtap="clickMe">点击我</button> //阻止事件冒泡

五.绑定值

VUE:vue动态绑定一个变量的值为元素的某个属性的时候,会在变量前面加上冒号:,例:<img :src="imgSrc"/>

微信小程序:绑定某个变量的值为元素属性时,会用两个大括号括起来。例:<image src="{{imgSrc}}"></image>

六.绑定事件传参

VUE:vue绑定事件的函数传参数时,可以把参数写在函数后面的括号里

<div @click="changeTab(1)">哈哈</div>

微信小程序:微信小程序的事件我试过只能传函数名,至于函数值,可以绑定到元素中,在函数中获取

<view data-tab="1" catchtap="changeTab">哈哈</view>

js:

changeTab(e){
  var _tab = e.currentTarget.dataset.tab; 
}

七.设置值

VUE:设置test的值可以用,this.test = true;获取test的值可以用this.test.

微信小程序:设置test的值要用this.setData({test:true});获取test的值用this.data.test

总结

以上所述是小编给大家介绍的微信小程序如何像vue一样在动态绑定类名 ,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
javascript编程起步(第七课)
Feb 27 Javascript
用JQuery 实现的自定义对话框
Mar 24 Javascript
用JavaScript页面不刷新时全选择,全删除(GridView)
Apr 14 Javascript
基于jquery的jqDnR拖拽溢出的修改
Feb 12 Javascript
node.js Web应用框架Express入门指南
May 28 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
Mar 02 Javascript
微信小程序 实现点击添加移除class
Jun 12 Javascript
使用selenium抓取淘宝的商品信息实例
Feb 06 Javascript
在vue项目中引入高德地图及其UI组件的方法
Sep 04 Javascript
浅谈vuex actions和mutation的异曲同工
Dec 13 Javascript
解决vue与node模版引擎的渲染标记{{}}(双花括号)冲突问题
Sep 11 Javascript
Webpack3+React16代码分割的实现
Mar 03 Javascript
Angular数据绑定机制原理
Apr 17 #Javascript
基于vue-ssr的静态网站生成器VuePress 初体验
Apr 17 #Javascript
jQuery实现使用sort方法对json数据排序的方法
Apr 17 #jQuery
jQuery+datatables插件实现ajax加载数据与增删改查功能示例
Apr 17 #jQuery
jQuery实现带右侧索引功能的通讯录示例【附源码下载】
Apr 17 #jQuery
Angular 容器部署的方法
Apr 17 #Javascript
bootstrap中日历范围选择插件daterangepicker的使用详解
Apr 17 #Javascript
You might like
javascript 写类方式之三
2009/07/05 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
js对象之JS入门之Array对象操作小结
2011/01/09 Javascript
nodejs 后缀名判断限制代码
2011/03/31 NodeJs
js中的scroll和offset 使用比较的实例与分析
2013/09/29 Javascript
jquery淡化版banner异步图片文字效果切换图片特效
2014/04/08 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
浅析JavaScript中的事件机制
2015/06/04 Javascript
javascript数组去重的六种方法汇总
2015/08/16 Javascript
老司机带你解读jQuery插件开发流程
2016/05/16 Javascript
jquery如何实现点击空白处隐藏元素
2017/12/05 jQuery
VS Code转换大小写、修改选中文字或代码颜色的方法
2017/12/15 Javascript
小程序获取周围IBeacon设备的方法
2018/10/31 Javascript
详解nodejs http请求相关总结
2019/03/31 NodeJs
vue+element 模态框表格形式的可编辑表单实现
2019/06/07 Javascript
解决vue net :ERR_CONNECTION_REFUSED报错问题
2020/08/13 Javascript
vue-cli4.0多环境配置变量与模式详解
2020/12/30 Vue.js
[48:00]完美世界DOTA2联赛循环赛 Forest vs Inki BO2第二场 11.04
2020/11/04 DOTA
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
只需7行Python代码玩转微信自动聊天
2019/01/27 Python
Python的条件表达式和lambda表达式实例
2019/01/31 Python
Python HTML解析器BeautifulSoup用法实例详解【爬虫解析器】
2019/04/05 Python
使用Filter过滤python中的日志输出的实现方法
2019/07/17 Python
python随机数分布random均匀分布实例
2019/11/27 Python
pytorch使用tensorboardX进行loss可视化实例
2020/02/24 Python
aws 通过boto3 python脚本打pach的实现方法
2020/05/10 Python
美国滑雪和滑雪板商店:Buckman
2018/03/03 全球购物
农贸市场管理制度
2014/01/31 职场文书
个人自荐材料
2014/05/23 职场文书
毕业生求职信范文
2014/06/29 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
铁路安全反思材料
2014/12/24 职场文书
先进个人事迹材料
2014/12/29 职场文书
工程部岗位职责范本
2015/04/11 职场文书
高中生综合素质评价范文
2015/08/18 职场文书
win10+anaconda安装yolov5的方法及问题解决方案
2021/04/29 Python