微信小程序如何像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 相关文章推荐
Display SQL Server Login Mode
Jun 21 Javascript
一个分享按钮的插件使用介绍(可扩展,内附开发制作流程)
Sep 19 Javascript
js日期联动示例
May 02 Javascript
jQuery中removeClass()方法用法实例
Jan 05 Javascript
尝试动手制作javascript放大镜效果
Dec 25 Javascript
AngularJS中比较两个数组是否相同
Aug 24 Javascript
JavaScript复制内容到剪贴板的两种常用方法
Feb 27 Javascript
webpack+vue+express(hot)热启动调试简单配置方法
Sep 19 Javascript
Vue中keep-alive 实现后退不刷新并保持滚动位置
Mar 17 Javascript
小程序中使用css var变量(使js可以动态设置css样式属性)
Mar 31 Javascript
微信h5静默和非静默授权获取用户openId的方法和步骤
Jun 08 Javascript
vue切换菜单取消未完成接口请求的案例
Nov 13 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
献给php初学者(入门学习经验谈)
2010/10/12 PHP
PHP统计nginx访问日志中的搜索引擎抓取404链接页面路径
2014/06/30 PHP
php银联网页支付实现方法
2015/03/04 PHP
js解析与序列化json数据(二)序列化探讨
2013/02/01 Javascript
点击button获取text内容并改变样式的js实现
2014/09/09 Javascript
javascript实现简单的鼠标拖动效果实例
2015/04/10 Javascript
jQuery实现点击按钮文字变成input框点击保存变成文字
2016/05/09 Javascript
JS动态加载脚本并执行回调操作
2016/08/24 Javascript
node.js实现复制文本到剪切板的功能
2017/01/23 Javascript
jquery实现数字输入框
2017/02/22 Javascript
JavaScript 中Date对象的格式化代码方法汇总
2017/09/06 Javascript
JS监控关闭浏览器操作的实例详解
2017/09/12 Javascript
详解Puppeteer前端自动化测试实践
2019/02/21 Javascript
js消除图片小游戏代码
2019/12/11 Javascript
JS获取当前时间的年月日时分秒及时间的格式化的方法
2019/12/18 Javascript
微信小程序点击item使之滚动到屏幕中间位置
2020/03/25 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
跟老齐学Python之print详解
2014/09/28 Python
python嵌套函数使用外部函数变量的方法(Python2和Python3)
2016/01/31 Python
CentOS 7下安装Python 3.5并与Python2.7兼容并存详解
2017/07/07 Python
Python使用flask框架操作sqlite3的两种方式
2018/01/31 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
2018/06/26 Python
python3中numpy函数tile的用法详解
2019/12/04 Python
详解有关PyCharm安装库失败的问题的解决方法
2020/02/02 Python
Python写捕鱼达人的游戏实现
2020/03/31 Python
解决Pycharm 中遇到Unresolved reference 'sklearn'的问题
2020/07/13 Python
CSS3毛玻璃效果(blur)有白边问题的解决方法
2016/11/15 HTML / CSS
Europcar英国:英国汽车和货车租赁
2017/01/21 全球购物
德国珠宝和手表在线商店:VALMANO
2019/03/24 全球购物
OSPREY LONDON官网:英国本土皮具品牌
2019/05/31 全球购物
JD Sports澳洲官网:英国领先的运动鞋和运动时尚零售商
2020/02/15 全球购物
房屋租赁协议书(标准版)
2014/10/02 职场文书
2015年度团总支工作总结
2015/04/23 职场文书
先进党支部事迹材料2016
2016/02/26 职场文书
Linux系统下安装PHP7.3版本
2021/06/26 PHP