目录

数据绑定

简单绑定

例子:调用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,})},

运行结果:

一起学习,一起进步 -.- ,如有错误,可以发评论

微信小程序开发(五)——数据绑定、运算、样式导入、页面跳转相关推荐

  1. 视频教程-微信小程序开发教程(第一阶段、页面设计)(维吾尔语)-HTML5/CSS

    微信小程序开发教程(第一阶段.页面设计)(维吾尔语) 毕业于北京邮电大学计算机专业.拥有将近10年的开发经验.精通java.php.python.c/c++.微信开发等等技术! 艾孜麦提阿布都热合曼 ...

  2. 微信小程序开发之六 —— 数据绑定与列表渲染

    文章目录 学习前后 数据分离 数据类型 组件属性数据绑定 渲染对象类型数据 列表渲染 wx:for wx:key 渲染一下电影列表 学习前后 上一篇:微信小程序开发之五 -- 体验WeUI 下一篇:微 ...

  3. 微信小程序开发:按Pages编译显示页面

    最近刚开始接触微信小程序开发,在慢慢学习,开始点击编译总是进入一个界面运行所以比较苦恼,于是找到以下解决方案. 解决方案一:选择"普通编译模式",会进入app.json文件下pag ...

  4. 微信小程序开发之选项卡(窗口顶部TabBar)页面切换

    微信小程序开发中选项卡.在Android中选项卡一般用fragment,到了小程序这里瞬间懵逼了. 总算做出来了.分享出来看看. 先看效果: 再上代码: 1.index.wxml [html] vie ...

  5. 入门微信小程序开发(三)数据绑定的几种用法

    一.数据绑定 与书写HTML页面一样,小程序页面也只能通过多写多练提升.在构建完页面后就出现了一个问题,我们该如何获取组件元素让数据与之关联呢? 在网页开发中,我们同样使用JS操作DOM,包括数据渲染 ...

  6. 微信小程序开发(五) - 全局(app.js)逻辑 - js 文件

    微信小程序中使用的逻辑文件 ,本质上还是.js 文件,脚本中的很多东西进行了二次封装,本质上可以在外部调试中,查看 逻辑层(App Service) 小程序开发框架的逻辑层由 JavaScript 编 ...

  7. 微信小程序开发(一) 动态修改页面标题

    为提高微信小程序的用户体验,原则上设计页面时,页面顶部标题应随内容不同进行修改. 微信小程序固定架构 pages example example.js example.json example.wxm ...

  8. 微信小程序的手机通讯录点击本页面跳转位置的代码详解

    最近开始做小程序,通读一遍文档再上手并不算难,但不得不说小程序里还是有一些坑.这里说一下如何实现页面锚点跳转,一个城市列表的效果示意图如下: 因为在微信小程序的环境中不能想在浏览器里设置标签,或者操作 ...

  9. 微信小程序开发的数据绑定和事件绑定

    一.数据绑定 1.定义数据 在页面对应的 .js(或 ts)文件中,把数据定义到 data 对象中即可: 2.Mustache 语法的格式(渲染数据) 把 data 中的数据绑定到页面中渲染,使用 M ...

  10. 微信小程序开发2——数据绑定、控制属性

    数据绑定 index.wxml <!--index.wxml--> <view class="container"><!-- {{ }} 小胡子语法 ...

最新文章

  1. ItClust:利用迁移学习解决scRNA-seq中的细胞聚类问题
  2. (十四)访问标志 Access_flags
  3. ubuntu下软件删除
  4. 组件,控件,插件,库都是什么鬼啊
  5. Jsoup使用DOM方法来遍历一个文档
  6. All Of ACM
  7. jquery学习记录
  8. (125)FPGA面试题-熟悉AXI总线吗,介绍AXI
  9. iPhone 12 Mini曝光:售价5000内、电池容量不忍看
  10. Android 自动判断是电话,网址,EMAIL方法之Linkify
  11. python是什么专业学的-什么样的人适合学Python,应该怎么学?
  12. C# SOCKE通信
  13. C#winform初试报表
  14. macos复制粘贴快捷键 快速_苹果电脑复制粘贴快捷键是什么 如何操作【图文】...
  15. 高斯法求解方程原理及实现
  16. UDS服务中关于服务器响应行为的实现规则
  17. 默认浏览器怎么更改为别的浏览器,这2个方法很简单
  18. 【视觉-单目三维重建-理论篇】单目视觉三维重建----论文调研1
  19. Web课程设计-仿当当网-增删改查-java+jsp+mysql-期末大作业
  20. matlab画动物轮廓图,MATLAB一维插值的应用实例—画左右手的轮廓图

热门文章

  1. API接口安全思考和最佳实践
  2. JAVA-Servlet项目接入支付宝网站支付
  3. 清华大学计算机综合基础真题,【盛世清北】2021清华大学912计算机专业基础综合考研真题-清华考...
  4. QQ三国华容道拼图脚本(半成品,成功率不高)
  5. git prune 相关
  6. 论war3中的随机数系统
  7. 利用SUS实现自动补丁管理
  8. JAVA有percentile函数吗_五分位算法
  9. 几种常见的开源软件许可协议(GPL, LGPL, Apache License, BSD)
  10. 什么是论坛域名?论坛域名适用在哪些地方?