微信小程序开发(五)——数据绑定、运算、样式导入、页面跳转
目录
数据绑定
简单绑定
例子:调用data数据
例子:设置隐藏,通过wx:if方式
例子:wx:for方式用索引去获取数组中的数据
运算
三元运算
算术运算
逻辑运算
样式导入
例子:顶部导航栏
页面跳转
例子:普通的跳转
数据绑定
官方文档
WXML 中的动态数据均来自对应 Page 的 data。
简单绑定
数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于:
例子:调用data数据
在JavaScript中:
data: { name:"赵丽颖",arr:["杨晨","司徒"],
}
在WXML中调用JavaScript中的data数据
<view wx:if="{{isFlag}}"> {{name}} </view>
<view wx:if="{{isFlag}}"> {{arr[0]}} {{arr[1]}} </view>
运行结果:
例子:设置隐藏,通过wx:if方式
JavaScript中:
data: { name:"赵丽颖",arr:["杨晨","司徒"],arr1: ["a", "b","c","d"],obj:{name:"哦哦",age:40},active:"kkkk",isFlag:true,num:0},
//自定义的隐藏方法
closeHandle:function(){console.log("点击")console.log(this.data.isFlag)// 更改一个值并渲染到页面,不能用this.data直接更改// this.data.isFlag = falsethis.setData({isFlag:false})},
//自定义的显示方法openHandle:function(){this.setData({isFlag:true})},
//自定义的点击显示和隐藏的切换方法
changeHandle:function(){this.setData({isFlag:!this.data.isFlag})},
在WXML中
<view wx:if="{{isFlag}}"> {{name}} </view>
<view wx:if="{{isFlag}}"> {{arr[0]}} {{arr[1]}} </view>
<view class='{{ active }}' wx:if="{{isFlag}}"> {{ obj.name }} {{ obj.age }}</view>
<!-- 绑定事件 bindtapwx:if="true"--><view wx:if="{{isFlag}}">看是否隐藏</view><!-- 绑定事件:bindtap="事件处理函数" 事件处理函数在js中-->
<view class='img' wx:if="{{isFlag}}"><image src='https://cdn.cnbj1.fds.api.mi-img.com/mi-mall/b7b2063a4f85d95b37ec3a061c47b9c1.jpg?thumb=1&w=358&h=252'></image>
</view>
<!-- <view > {{num}} </view> --><view class='f1'><button bindtap='closeHandle'>隐藏</button><button bindtap='openHandle'>显示</button><button bindtap='addHandle'>增加 </button><button bindtap='changeHandle'>点击切</button></view>
运行效果:
例子:wx:for方式用索引去获取数组中的数据
wx:for会根据数组的数量自动生成标签数量
WXML中代码:
<!-- 将循环执行数组中值,item是数组中的值,index是索引 -->
<view wx:for="{{ arr }}">{{ item }}</view><view wx:for="{{ arr1 }}">{{index}}----{{ item }}</view> --><!-- data-变量名 data-index -->
<view bindtap='ch'><view wx:for="{{ arr1 }}" data-index='{{index}}'>{{item}}</view>
</view>
JavaScript中:
data: { arr:["杨晨","司徒"],arr1: ["a", "b","c","d"],},
ch:function(e){console.log(e.target.dataset.index)console.log(e)}
运行结果:
运算
三元运算
一开始将flag的值设置true或false效果
<view hidden="{{flag}}"> Hidden </view>
data: {flag:false},
现在使用三元运算的方式,效果是相同的
<view hidden="{{flag ? true : false}}"> Hidden </view>
算术运算
a=5,b=8,c=10
<view>{{a + b}} + {{ c }} + {{ 1+3 }}</view>
data: {a:5,b:8,c:10},
逻辑运算
length>5为false
<view wx:if="{{length > 5}}">aaaaaaaaa </view>
data: {length:3},
运行结果:
length>5为true
data: {length:30},
运行结果:
样式导入
使用@import语句可以导入外联样式表,@import后跟需要导入的外联样式表的相对路径,使用;表示语句结束
需要使用相对路径
导入的xiaomi的wxss
/* pages/xiaomi/xiaomi.wxss */
/* 背景颜色 */
page{background-color: red;
}
现在的yun.wxss表
/* pages/yun/yun.wxss */
@import "../xiaomi/xiaomi.wxss";
运行结果:
例子:顶部导航栏
JavaScript代码:
/*** 页面的初始数据*/data: {tabIndex:0,tablist: ['推荐', '手机', '智能'],},ch:function(e){console.log(e.target.dataset.index);this.setData({tabIndex: e.target.dataset.index})},
WXML:
<!--pages/test1/test1.wxml-->
<view class='a' bindtap='ch'>
<!-- 循环第一次时index为0,如果tabIndex==index,执行active动作0 == 0 active1 == 1 active2 == 1 active--><view wx:for="{{ tablist }}" data-index="{{index}}" class="{{ tabIndex==index? 'active':'' }}"> {{item}} </view>
</view><view class='wrap' wx:if="{{ tabIndex ==0 }}">手机</view>
<view class='wrap' wx:if="{{ tabIndex ==1 }}">推荐</view>
<view class='wrap' wx:if="{{ tabIndex ==2 }}">智能</view>
WXSS:
/* pages/test1/test1.wxss */.a{display: flex;height: 40px;background-color: gray;
}
.a>view{width: 50px;
}
.active{color: orange;border-bottom: 2px solid orange;
}
运行结果:
页面跳转
可以定义一个方法去实现这种页面的跳转,(给跳转页面传数值 跳转的路径?)。
跳转普通页面的话我们可以使用
wx.navigateTo({// 可以写相对路径,也可以写绝对路径url: url,})
而跳转tabbar定义的页面可以使用
// 跳转到tabbar页面
wx.switchTab({url: '/pages/index/index',
})
有时我们往往会为url赋值跳转,我们可以使用拼接字符串的方式去编写url。
有两种拼接方式:
- 拼接字符串方法1:使用 + 号
var url = '../test1/test1?id=' + e.currentTarget.dataset.id+'&name=aaa';
- 拼接字符串方法2:${变量名}
var url = `../tiao2/tiao2?id=${e.currentTarget.dataset.id}&name=bbb`
例子:普通的跳转
初始页面WXML:
<!-- 跳转页面方法 -->
<view bindtap='toclass' data-id='1'>跳转1</view>
<view bindtap='toclass' data-id='2'>跳转2</view>
<view bindtap='toclass' data-id='3'>跳转3</view>
<view bindtap='toclass' data-id='4'>跳转4</view>
<view bindtap='tofu'>跳转到01界面</view>
初始页面JS:
toclass:function(e){//给跳转页面传数值 跳转的路径?console.log(e.currentTarget.dataset.id);// '../test1/test1?id=1230'// 拼接字符串方法1:使用 + 号// var url = '../test1/test1?id=' + e.currentTarget.dataset.id+'&name=aaa';// 拼接字符串方法2:${变量名}var url = `../tiao2/tiao2?id=${e.currentTarget.dataset.id}&name=bbb`// 跳转普通页面wx.navigateTo({// 可以写相对路径,也可以写绝对路径url: url,})},tofu:function(){// wx.navigateTo({// url: '../index/index',// })// 跳转到tabbar页面wx.switchTab({url: '/pages/index/index',})},
跳转页面tiao2的WXML:
<view>{{name}}</view>
<view>************************************</view>
跳转页面tiao2的JS:
/*** 生命周期函数--监听页面加载*/onLoad: function (options) {console.log(options.id);this.setData({name: options.id,})},
运行结果:
一起学习,一起进步 -.- ,如有错误,可以发评论
微信小程序开发(五)——数据绑定、运算、样式导入、页面跳转相关推荐
- 视频教程-微信小程序开发教程(第一阶段、页面设计)(维吾尔语)-HTML5/CSS
微信小程序开发教程(第一阶段.页面设计)(维吾尔语) 毕业于北京邮电大学计算机专业.拥有将近10年的开发经验.精通java.php.python.c/c++.微信开发等等技术! 艾孜麦提阿布都热合曼 ...
- 微信小程序开发之六 —— 数据绑定与列表渲染
文章目录 学习前后 数据分离 数据类型 组件属性数据绑定 渲染对象类型数据 列表渲染 wx:for wx:key 渲染一下电影列表 学习前后 上一篇:微信小程序开发之五 -- 体验WeUI 下一篇:微 ...
- 微信小程序开发:按Pages编译显示页面
最近刚开始接触微信小程序开发,在慢慢学习,开始点击编译总是进入一个界面运行所以比较苦恼,于是找到以下解决方案. 解决方案一:选择"普通编译模式",会进入app.json文件下pag ...
- 微信小程序开发之选项卡(窗口顶部TabBar)页面切换
微信小程序开发中选项卡.在Android中选项卡一般用fragment,到了小程序这里瞬间懵逼了. 总算做出来了.分享出来看看. 先看效果: 再上代码: 1.index.wxml [html] vie ...
- 入门微信小程序开发(三)数据绑定的几种用法
一.数据绑定 与书写HTML页面一样,小程序页面也只能通过多写多练提升.在构建完页面后就出现了一个问题,我们该如何获取组件元素让数据与之关联呢? 在网页开发中,我们同样使用JS操作DOM,包括数据渲染 ...
- 微信小程序开发(五) - 全局(app.js)逻辑 - js 文件
微信小程序中使用的逻辑文件 ,本质上还是.js 文件,脚本中的很多东西进行了二次封装,本质上可以在外部调试中,查看 逻辑层(App Service) 小程序开发框架的逻辑层由 JavaScript 编 ...
- 微信小程序开发(一) 动态修改页面标题
为提高微信小程序的用户体验,原则上设计页面时,页面顶部标题应随内容不同进行修改. 微信小程序固定架构 pages example example.js example.json example.wxm ...
- 微信小程序的手机通讯录点击本页面跳转位置的代码详解
最近开始做小程序,通读一遍文档再上手并不算难,但不得不说小程序里还是有一些坑.这里说一下如何实现页面锚点跳转,一个城市列表的效果示意图如下: 因为在微信小程序的环境中不能想在浏览器里设置标签,或者操作 ...
- 微信小程序开发的数据绑定和事件绑定
一.数据绑定 1.定义数据 在页面对应的 .js(或 ts)文件中,把数据定义到 data 对象中即可: 2.Mustache 语法的格式(渲染数据) 把 data 中的数据绑定到页面中渲染,使用 M ...
- 微信小程序开发2——数据绑定、控制属性
数据绑定 index.wxml <!--index.wxml--> <view class="container"><!-- {{ }} 小胡子语法 ...
最新文章
- ItClust:利用迁移学习解决scRNA-seq中的细胞聚类问题
- (十四)访问标志 Access_flags
- ubuntu下软件删除
- 组件,控件,插件,库都是什么鬼啊
- Jsoup使用DOM方法来遍历一个文档
- All Of ACM
- jquery学习记录
- (125)FPGA面试题-熟悉AXI总线吗,介绍AXI
- iPhone 12 Mini曝光:售价5000内、电池容量不忍看
- Android 自动判断是电话,网址,EMAIL方法之Linkify
- python是什么专业学的-什么样的人适合学Python,应该怎么学?
- C# SOCKE通信
- C#winform初试报表
- macos复制粘贴快捷键 快速_苹果电脑复制粘贴快捷键是什么 如何操作【图文】...
- 高斯法求解方程原理及实现
- UDS服务中关于服务器响应行为的实现规则
- 默认浏览器怎么更改为别的浏览器,这2个方法很简单
- 【视觉-单目三维重建-理论篇】单目视觉三维重建----论文调研1
- Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
- matlab画动物轮廓图,MATLAB一维插值的应用实例—画左右手的轮廓图
热门文章
- API接口安全思考和最佳实践
- JAVA-Servlet项目接入支付宝网站支付
- 清华大学计算机综合基础真题,【盛世清北】2021清华大学912计算机专业基础综合考研真题-清华考...
- QQ三国华容道拼图脚本(半成品,成功率不高)
- git prune 相关
- 论war3中的随机数系统
- 利用SUS实现自动补丁管理
- JAVA有percentile函数吗_五分位算法
- 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)
- 什么是论坛域名?论坛域名适用在哪些地方?