微信小程序如何像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 相关文章推荐
解析arp病毒背后利用的Javascript技术附解密方法
Aug 06 Javascript
javascript innerHTML、outerHTML、innerText、outerText的区别
Nov 24 Javascript
fancybox modal的完美解决(右上的X)
Oct 30 Javascript
jQuery实现自定义checkbox和radio样式
Jul 13 Javascript
JavaScript资源预加载组件和滑屏组件的使用推荐
Mar 10 Javascript
Chrome浏览器的alert弹窗禁止再次弹出后恢复的方法
Dec 30 Javascript
JS实现复选框的全选和批量删除功能
Apr 05 Javascript
jQuery dateRangePicker插件使用方法详解
Jul 28 jQuery
详解ajax的data参数错误导致页面崩溃
Apr 30 Javascript
详解小程序rich-text对富文本支持方案
Nov 28 Javascript
javascript前端和后台进行数据交互方法示例
Aug 07 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 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
《PHP边学边教》(02.Apache+PHP环境配置――下篇)
2006/12/13 PHP
php中的观察者模式
2010/03/24 PHP
PHP提交表单失败后如何保留已经填写的信息
2014/06/20 PHP
thinkphp框架类库扩展操作示例
2019/11/26 PHP
CSS3画一个阴阳八卦图
2021/03/09 HTML / CSS
枚举JavaScript对象的函数
2006/12/22 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
javascript 构建一个xmlhttp对象池合理创建和使用xmlhttp对象
2010/01/15 Javascript
js 居中漂浮广告
2010/03/21 Javascript
JavaScript 打地鼠游戏代码说明
2010/10/12 Javascript
js获得参数的getParameter使用示例
2014/02/26 Javascript
JavaScript函数定义的常见注意事项小结
2014/09/16 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery实现表格隔行换色效果
2015/11/19 Javascript
jQuery ajax请求返回list数据动态生成input标签,并把list数据赋值到input标签
2016/03/29 Javascript
javascript设计模式之单体模式学习笔记
2017/02/15 Javascript
详解在vue-cli中使用路由
2017/09/25 Javascript
微信小程序自定义tab实现多层tab嵌套功能
2018/06/15 Javascript
Vue2.2.0+新特性整理及注意事项
2018/08/22 Javascript
JavaScript中关于base64的一些事
2019/05/06 Javascript
解决node终端下运行js文件不支持ES6语法
2020/04/04 Javascript
Django中的CACHE_BACKEND参数和站点级Cache设置
2015/07/23 Python
Python实现类似jQuery使用中的链式调用的示例
2016/06/16 Python
python实现聊天小程序
2018/03/13 Python
Python中bisect的使用方法
2019/12/31 Python
Python中的面向接口编程示例详解
2021/01/17 Python
python使用scapy模块实现ARP扫描的过程
2021/01/21 Python
css3圆角边框和边框阴影示例
2014/05/05 HTML / CSS
css3 实现滚动条美化效果的实例代码
2021/01/06 HTML / CSS
家乐福巴西网上超市:Carrefour巴西
2016/10/31 全球购物
压铸汽车模型收藏家:Diecastmodelswholesale.com
2016/12/21 全球购物
Nixon手表英国官网:美国尼克松手表品牌
2020/02/10 全球购物
英国手工制作的现代与经典的沙发和床:Love Your Home
2020/09/26 全球购物
struct与class的区别
2014/02/03 面试题
2014年大学教师工作总结
2014/12/02 职场文书
初中成绩单评语
2014/12/29 职场文书