首先对初始化后的小程序目录进行梳理(图来自某机构)
补充:
sitemap配置:小程序根目录下的sitemap. json文件用来配置小程序及其页面是否允许被微信索引。
wxml数据显示
<view> {{msg}} view>
<view>{{num}}view>
<view> 是否: {{isGirl}} view>
<view>{{person.age}}view>
<view>{{person.height}}view>
<view>{{person.name}}view>
<view data-num="{{num}}"> 自定义属性view>
<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,
}
});
<view>{{1+1}}view>
<view>{{'1'+'1'}}view>
<view>{{ 11%2===0 ? '偶数' : '奇数' }}view>
一、列表循环
如果 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"
可以省略
二、对象循环
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标签
<view>
<block
wx:for="{{list}}"
wx:for-item="item"
wx:for-index="index"
wx:key="id"
class="my_list" >
索引:{{index}}
--
值:{{item.name}}
block>
view>
两种方法可以对页面元素进行显示和隐藏
wx:if
、wx:elif
、wx:else
hidden="{{true}}"
什么场景下用哪个
display:none
<view>
<view>条件渲染view>
<view wx:if="{{true}}">显示view>
<view wx:if="{{false}}">隐藏view>
<view wx:if="{{flase}}">1view>
<view wx:elif="{{flase}}">2 view>
<view wx:else> 3 view>
<view hidden >hidden1view>
<view hidden="{{false}}" >hidden2view>
<view wx:if="{{false}}">wx:ifview>
<view hidden style="display: flex;" >hiddenview>
view>
例子:使得输入框输入的元素显示到页面元素,点击按钮实现加减操作
步骤分析:
e.detail.value
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) {
// 获取自定义属性 operation
const operation = e.currentTarget.dataset.operation;
this.setData({
num: this.data.num + operation
})
}
})