微信小程序如何像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中的继承实例代码
Apr 27 Javascript
Javascript中产生固定结果的函数优化技巧
Jan 16 Javascript
解析JavaScript中instanceof对于不同的构造器或许都返回true
Dec 03 Javascript
基于JavaScript实现TAB标签效果
Jan 12 Javascript
Jquery中map函数的用法
Jun 03 Javascript
Bootstrap基本组件学习笔记之列表组(11)
Dec 07 Javascript
Vue非父子组件通信详解
Jun 12 Javascript
Vue入门之animate过渡动画效果
Apr 08 Javascript
axios 处理 302 状态码的解决方法
Apr 10 Javascript
React Native 混合开发多入口加载方式详解
Sep 23 Javascript
《javascript设计模式》学习笔记五:Javascript面向对象程序设计工厂模式实例分析
Apr 08 Javascript
js实现移动端轮播图滑动切换
Dec 21 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
动易数据转成dedecms的php程序
2007/04/07 PHP
PHP使用curl_multi_select解决curl_multi网页假死问题的方法
2018/08/15 PHP
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
jquery 插件实现图片延迟加载效果代码
2010/02/06 Javascript
基于Jquery的文字滚动跑马灯插件(一个页面多个滚动区)
2010/07/26 Javascript
jQuery语法总结和注意事项小结
2012/11/11 Javascript
jQuery中mouseover事件用法实例
2014/12/26 Javascript
jQuery使用$.get()方法从服务器文件载入数据实例
2015/03/25 Javascript
window.open打开窗口被拦截的快速解决方法
2016/08/04 Javascript
JavaScript中函数声明与函数表达式的区别详解
2016/08/18 Javascript
前端面试知识点锦集(JavaScript篇)
2016/12/28 Javascript
JS百度地图搜索悬浮窗功能
2017/01/12 Javascript
iscroll.js滚动加载实例详解
2017/07/18 Javascript
webpack4 入门最简单的例子介绍
2018/09/05 Javascript
JavaScript指定断点操作实例教程
2018/09/18 Javascript
node.js中ws模块创建服务端和客户端,网页WebSocket客户端
2019/03/06 Javascript
vue 实现特定条件下绑定事件
2019/11/09 Javascript
vue element-ui读取pdf文件的方法
2019/11/26 Javascript
[00:03]DOTA2新版本PA至宝展示
2014/11/19 DOTA
Python实现字典按照value进行排序的方法分析
2017/12/23 Python
Python中使用支持向量机SVM实践
2017/12/27 Python
python opencv实现图片旋转矩形分割
2018/07/26 Python
Python编程实现tail-n查看日志文件的方法
2019/07/08 Python
Python手绘可视化工具cutecharts使用实例
2019/12/05 Python
Python编程快速上手——正则表达式查找功能案例分析
2020/02/28 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
新锐科技Java程序员面试题
2016/07/25 面试题
大学生社会实践自我鉴定
2014/03/24 职场文书
学生期末评语大全
2014/04/30 职场文书
激励员工的口号
2014/06/16 职场文书
实习护士自荐信
2014/06/21 职场文书
门店店长岗位职责
2015/04/14 职场文书
2016年学习贯彻十八届五中全会精神心得体会
2016/01/05 职场文书
go语言中切片与内存复制 memcpy 的实现操作
2021/04/27 Golang
深入浅析React中diff算法
2021/05/19 Javascript
Python加密技术之RSA加密解密的实现
2022/04/08 Python