微信小程序如何像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中的其他对象
Jan 16 Javascript
基于jquery的滚动新闻列表
Jun 19 Javascript
js计算精度问题小结
Apr 22 Javascript
JS无限极树形菜单,json格式、数组格式通用示例
Jul 30 Javascript
JavaScript计算两个日期时间段内日期的方法
Mar 16 Javascript
javascript日期格式化方法汇总
Oct 04 Javascript
深入解析jQuery中Deferred的deferred.promise()方法
May 03 Javascript
JS中常用的输出方式(五种)
Jun 12 Javascript
微信小程序中遇到的iOS兼容性问题小结
Nov 14 Javascript
JS集合set类的实现与使用方法示例
Feb 01 Javascript
详解JS实现系统登录页的登录和验证
Apr 29 Javascript
浅谈Webpack4 Tree Shaking 终极优化指南
Nov 18 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
什么是调频(FM)、调幅(AM)、短波(SW)、长波(LW)
2021/03/01 无线电
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
php 文章采集正则代码
2009/12/28 PHP
PHP实现简单实用的验证码类
2015/07/29 PHP
让JavaScript 轻松支持函数重载 (Part 1 - 设计)
2009/08/04 Javascript
JS 对象介绍
2010/01/20 Javascript
jQuery 获取URL参数的插件
2010/03/04 Javascript
javascript的动态加载、缓存、更新以及复用(一)
2014/06/09 Javascript
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
深入理解javascript作用域第二篇之词法作用域和动态作用域
2016/07/24 Javascript
jQuery内容过滤选择器用法示例
2016/09/09 Javascript
JS识别浏览器类型(电脑浏览器和手机浏览器)
2016/11/18 Javascript
js仿拉勾网首页穿墙广告效果
2017/03/08 Javascript
vue 实现 tomato timer(蕃茄钟)实例讲解
2017/07/24 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
详解puppeteer使用代理
2018/12/27 Javascript
jquery-ui 进度条功能示例【测试可用】
2019/07/25 jQuery
layui radio单选限制下一个radio单选的实例
2019/09/03 Javascript
vue选项卡切换登录方式小案例
2019/09/27 Javascript
JS array数组检测方式解析
2020/05/19 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[06:25]DOTA2英雄梦之声_第17期_大地之灵
2014/06/20 DOTA
在Django的URLconf中使用多个视图前缀的方法
2015/07/18 Python
解读Python编程中的命名空间与作用域
2015/10/16 Python
python使用xlrd与xlwt对excel的读写和格式设定
2017/01/21 Python
浅谈pandas中DataFrame关于显示值省略的解决方法
2018/04/08 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
对python中的try、except、finally 执行顺序详解
2019/02/18 Python
Jupyter 无法下载文件夹如何实现曲线救国
2020/04/22 Python
Linux开机引导的步骤是什么
2015/10/19 面试题
期终自我鉴定
2014/02/17 职场文书
2016年国陪研修感言
2015/11/18 职场文书
详解Java ES多节点任务的高效分发与收集实现
2021/06/30 Java/Android
Java实现给Word文件添加文字水印
2022/02/15 Java/Android
css实现左上角飘带效果的完整代码
2022/03/18 HTML / CSS