目录

  • 数据绑定
  • 运算表达式
  • 循环渲染
  • 条件渲染
  • 事件绑定(传参)

首先对初始化后的小程序目录进行梳理(图来自某机构)

补充:
sitemap配置:小程序根目录下的sitemap. json文件用来配置小程序及其页面是否允许被微信索引。

数据绑定

wxml数据显示

<!-- 1 字符串 -->
<view> {{msg}} </view>
<!-- 2 数字类型 -->
<view>{{num}}</view>
<!-- 3 bool类型  -->
<view> 是否: {{isGirl}} </view>
<!-- 4 object类型 -->
<view>{{person.age}}</view>
<view>{{person.height}}</view>
<view>{{person.name}}</view><!-- 5 在标签的属性中使用 -->
<view data-num="{{num}}"> 自定义属性</view><!-- 6 使用bool类型充当属性 checked
字符串和 花括号之间一定不要存在空格 否则会导致识别失败 -->
<view><checkbox checked="{{isChecked}}"> </checkbox>
</view>

js内的data模拟数据

Page({data: {msg: "hello mina",num: 10000,isGirl: false,person: {age: 1,height: 165,name: "fur"},isChecked:false,}
});

运算表达式

  1. 可以在花括号中 加入 表达式 – “语句”
  2. 表达式,指的是一些简单 运算 数字运算 字符串 拼接 逻辑运算。。
    1. 数字的加减
    2. 字符串拼接
    3. 三元表达式
<view>{{1+1}}</view>
<view>{{'1'+'1'}}</view>
<view>{{ 11%2===0 ? '偶数' : '奇数' }}</view>
<!--输出
2
11
奇数
-->

循环

一、列表循环

  1. wx:for="{{数组或者对象}}"
  2. wx:for-item=“循环项的名称”
  3. wx:for-index=“循环项的索引”
  4. wx:key=“唯一的值” 用来提高列表渲染的性能

如果 wx:key 绑定一个普通的字符串,那么这个字符串名称,肯定是 循环数组中的对象的唯一属性
如果 wx:key ="*this" 就表示你的数组是一个普通的数组 *this 表示是 循环项
注意:
当出现 数组的嵌套循环的时候 尤其要注意 以下绑定的名称 不要重名
wx:for-item="item" wx:for-index="index"
默认情况下 我们 不写wx:for-item="item" wx:for-index="index",小程序也会把 循环项的名称 和 索引的名称设为 item 和 index
只有一层循环的话 wx:for-item="item" wx:for-index="index" 可以省略

二、对象循环

  1. wx:for="{{对象}}" wx:for-item=“对象的值” wx:for-index=“对象的属性”
  2. 循环对象的时候 最好把 item和index的名称都修改一下 wx:for-item="value" wx:for-index="key"
<!-- 列表循环--><view><view wx:for="{{list}}"wx:for-item="item"wx:for-index="index"wx:key="id">索引:{{index}} -- 值:{{item.name}}</view></view>
<!-- 对象循环--><view><view wx:for="{{person}}"wx:for-item="value"  wx:for-index="key"wx:key="id">属性:{{key}} -- 值:{{value}}</view></view>

js的data内元素

person: {id:1,age: 1,height: 165,name: "fur"},
list:[{id:0,name:"fur"},{id:1,name:"furfur"}]

block标签

  1. 占位符的标签
  2. 写代码的时候可以看到这标签存在,页面渲染时候小程序会把它移除掉
<view><block wx:for="{{list}}"wx:for-item="item"wx:for-index="index"wx:key="id"class="my_list" >索引:{{index}}--值:{{item.name}}</block></view>

条件渲染

两种方法可以对页面元素进行显示和隐藏

  1. wx:ifwx:elifwx:else
  2. hidden 用法
    1. 在标签上直接加入属性 hidden
    2. hidden="{{true}}"

什么场景下用哪个

  1. 当标签不是频繁的切换显示 优先使用 wx:if,直接把标签从 页面结构给移除掉
  2. 当标签频繁的切换显示的时候 优先使用 hidden,通过添加样式的方式来切换显示
    注意:hidden 属性 不要和样式 display一起使用!会被覆盖掉,因为hidden的原理就是增加display:none
   <view><view>条件渲染</view><view wx:if="{{true}}">显示</view><view wx:if="{{false}}">隐藏</view><view wx:if="{{flase}}">1</view><view wx:elif="{{flase}}">2 </view><view wx:else> 3 </view><view hidden >hidden1</view><view hidden="{{false}}" >hidden2</view><view wx:if="{{false}}">wx:if</view><!-- 错误用法 :hidden无法被隐藏 --><view hidden  style="display: flex;" >hidden</view></view>

打印结果:

事件绑定

例子:使得输入框输入的元素显示到页面元素,点击按钮实现加减操作

步骤分析:

  1. 需要给input标签绑定 input事件 ,绑定关键字 bindinput
  2. 获取输入框的值 ,通过事件源对象来获取 e.detail.value
  3. 把输入框的值 赋值到 data当中,注意不能直接赋值,与vue有所区别!通过this.setData进行赋值
  4. 点击按钮,需要加入一个点击事件bindtap,
  5. 注意:无法在小程序当中的 事件中直接传参 ,通过自定义属性的方式来传递参数,再通过事件源中获取自定义属性

wxml页面

<view>  {{num}}
</view>
输入:
<input type="text" bindinput="handleInput" />
<button bindtap="handletap" data-operation="{{1}}" >+</button>
<button bindtap="handletap" data-operation="{{-1}}">-</button>

js文件

Page({data: {num: 0},// 输入框的input事件的执行逻辑handleInput(e) {this.setData({num: e.detail.value})},// 加 减 按钮的事件handletap(e) {// 获取自定义属性 operationconst operation = e.currentTarget.dataset.operation;this.setData({num: this.data.num + operation})}
})

微信小程序基础而重要语法整理总结(数据绑定、运算表达式、循环渲染、条件渲染、事件绑定(传参))相关推荐

  1. 微信小程序 基础语法

    微信小程序 基础语法 官网:https://mp.weixin.qq.com/debug/wxadoc/dev/framework/view/wxml/ .wxml文件中 列表渲染 <view ...

  2. 微信小程序基础(全家福01)

    微信小程序基础 目标 能够知道如何创建小程序项目 能够清除小程序项目的基本组成结构 能够知道小程序页面有几个部分组成 能够知道小程序中常见的组件如何使用 能够知道小程序如何进行协同开发和发布 讲解目录 ...

  3. 微信小程序基础之开源项目库汇总

    awesome-github-wechat-weapp 是由OpenDigg整理并维护的微信小程序开源项目库集合.我们会定期同步OpenDigg上的项目到这里,也欢迎各位提交项目给我们. (链接:ht ...

  4. 微信小程序--基础内容(详解)(一)

    一.常用标签 1.view 标签 view 标签是一个块级元素,类似于 div(小程序里面没有div标签),里面可以放任何内容或者插值表达式,如下所示: <view>这是view标签< ...

  5. 微信小程序基础学习笔记Day02

    学习目标:微信小程序基础Day02 今日目标: 能够使用 WXML 模板语法渲染页面结构 能够使用 WXSS 样式美化页面结构 能够使用 app.json 对小程序进行全局性配置 能够使用 page. ...

  6. 小程序学习 - 01小程序简介+微信小程序基础

    小程序简介 小程序是一个全新的.轻量级的移动端应用. 起源 在小程序出现之前的移动端开发的解决方案有: Android iOS Windows Phone - 后来退出历史舞台 移动端开发发展了一段时 ...

  7. 微信小程序基础学习笔记Day01

    学习目标:微信小程序基础Day01 今日目标: 能够知道如何创建小程序项目 能够清楚小程序项目的基本组成结构 能够知道小程序页面由几部分组成 能够知道小程序中常见的组件如何使用 能够知道小程序如何进行 ...

  8. 更改微信小程序的基础版本库;更改uni-app小程序基础库;更改用户的微信小程序基础库最低版本;设置用户的微信小程序版本库;

    需求场景:微信小程序不少API都有最低版本支持,为了避免不必要的麻烦,我们可以根据需要给小程序设置基础库最低版本,这样若用户使用的基础库版本低于设置的最低版本要求,则无法正常使用小程序,并提示更新微信 ...

  9. 《微信小程序-基础篇》初识微信小程序

    大家好,好久不见了,前段时间各种原因分享不稳定,后面一段时间内参与了主站的原力计划,请麻烦各位支持一下,万分感谢- 本系列将从零开始介绍微信小程序的开发,介绍完基础以后会实际同步开发一个微信小程序的项 ...

最新文章

  1. shell 命令执行结果判断语句
  2. 使用c语言标准库中的时间函数
  3. 使用hibernate实现树形结构无限级分类
  4. python Gevent – 高性能的Python并发框架
  5. 7 MyBatis映射文件中的拼接符
  6. Spring Boot 2.x 启动全过程源码分析(上)入口类剖析
  7. FTP的主动模式与被动模式
  8. React开发(165):ant design validateFields
  9. JEECG 商业版本和开源版本有什么区别呢?
  10. cocos2d-x 中菜单类
  11. C++模板元 -- 变长参数模板
  12. tensorflow之random_normal
  13. 人脸方向学习(八):Face Recognition-MobileFaceNets解读
  14. 【原创】实战padding oracle漏洞
  15. 全国计算机二级c语言题库,计算机二级c语言题库及答案
  16. 关于body.clientHeight,body.clientWidht获取的不是可视高度的问题
  17. 阿里云 OSS 客户端直传 Policy 模式使用
  18. 互联网金融学习总结(5)——市场主流的风控模型简要学习总结
  19. PC系统启动过程简介以及Windows引导修复
  20. 动手深度学习笔记(一)2.1数据操作

热门文章

  1. 金融之期货软件搭建,股票平台搭建,融资融券平台搭建
  2. Numpy中数据的常用的保存与读取方法
  3. 集度首台验证样车下线,智驾软件已跑通红绿灯识别等功能
  4. 蓝桥杯: 调手表【BFS】【Python】
  5. python怎么保存文件视频教程_python3将视频流保存为本地视频文件
  6. ghost win7旗舰版系统安装图文教程
  7. JCA-Java加密框架
  8. java - (二)netty 心跳监测机制
  9. android系统垃圾广告,做精致的少数派!教你两分钟关闭Flyme8全部广告
  10. 产生任意进制乘法表的程序代码