一、小程序结构目录
![在这里插入图片描述](https://img-blog.csdnimg.cn/9cbe8d02935a45cd81ed9b6b76e50efe.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_14,color_FFFFFF,t_70,g_se,x_16)
1. 全局配置app.json
app.json 是当前?程序的全局配置,包括了?程序的所有??路径、界?表现、?络超时时间、底部tab等。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4b0c4021bef34d4fa59a1e46e497e8c6.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_9,color_FFFFFF,t_70,g_se,x_16)
- pages 字段??于描述当前?程序所有??路径,这是为了让微信客?端知道当前你的?程序??定义在哪个?录。
- window字段?定义?程序所有??的顶部背景颜?,?字颜?定义等。
- tabBar字段 - 如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。
2. 页面配置page.json
page.json其实?来表????录下的 page.json这类和?程序??相关的配置。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/7306af825b044552890d8a9724091a16.png)
开发者可以独?定义每个??的?些属性,如顶部颜?、是否允许下拉刷新等等。 ![在这里插入图片描述](https://img-blog.csdnimg.cn/fa511df0d88744f8840c078fff700553.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_20,color_FFFFFF,t_70,g_se,x_16)
3. sitemap配置sitemap.json
小程序根目录下的 sitemap.json 文件用于配置小程序及其页面是否允许被微信索引,文件内容为一个 JSON 对象,如果没有 sitemap.json ,则默认为所有页面都允许被索引
二、小程序模板语法
text相当于span标签,行内元素 view相当于div标签,块元素 checkbox 复选框
1. 数据绑定
普通写法 ![在这里插入图片描述](https://img-blog.csdnimg.cn/72c6503462ca440795c2e73b3a59e09e.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_12,color_FFFFFF,t_70,g_se,x_16) ![在这里插入图片描述](https://img-blog.csdnimg.cn/683a8489c3fe4aff9378c780a73e5df7.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_11,color_FFFFFF,t_70,g_se,x_16)
2. 运算
<view>{{1+2+3}}</view>
<view>{{'1' + '1'}}</view>
<view>{{isChecked ? true : false}}</view>
![在这里插入图片描述](https://img-blog.csdnimg.cn/3ecd846961fe49e68cf4b3e84758e5c9.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_10,color_FFFFFF,t_70,g_se,x_16)
3. 列表渲染和对象渲染
1. 列表渲染
- 基本语法 :
wx:for="{{数组或对象}}" - wx:for-item : 指定数组当前元素的变量名, 不写默认为item
- wx:for-index :指定数组当前下标的变量名,不写默认为index
- wx:key :?来提?数组渲染的性能
<view wx:for="{{books}}" wx:for-item="book" wx:for-index="index" wx:key="index">
书名 :{{book}}
索引 :{{index}}
</view>
![在这里插入图片描述](https://img-blog.csdnimg.cn/a86fe2b39d4e4daca9407b333753d62b.png)
2. 对象渲染
对象渲染时, wx:for-item=“值” wx:for-index=“键”
<view wx:for="{{person}}" wx:for-item="value" wx:for-index="key">
{{key}} -- {{value}}
</view>
![在这里插入图片描述](https://img-blog.csdnimg.cn/bfc1ed6e667e41beace75aab6c33c85d.png)
4. block
渲染?个包含多节点的结构块 block最终不会变成真正的dom元素
5. 条件渲染
1. wx:if
使用 wx:if="{{condition}}" 来判断是否需要渲染该代码块
<view wx:if="{{isShow}}">111</view>
<view wx:if="{{!isShow}}">222</view>
<view wx:if="{{isShow}}">111</view>
<view wx:if="{{!isShow}}">222</view>
wx:if 直接不显示该标签 ![在这里插入图片描述](https://img-blog.csdnimg.cn/4d100bbc58b44d3a88f3aa572bbc4859.png)
2. hidden
<view hidden="{{isHidden}}">
我不会显示
</view>
<view hidden="{{!isHidden}}">
我会显示
</view>
![在这里插入图片描述](https://img-blog.csdnimg.cn/25f4cfc61e42448e9bba2e1229586f7b.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_7,color_FFFFFF,t_70,g_se,x_16)
hidden相当于给标签添加 dispaly:none 属性 ![在这里插入图片描述](https://img-blog.csdnimg.cn/57bdd72760bb434a8f3de2a3532e38d1.png)
6. 事件的绑定
input事件 :给input标签绑定的事件,输入的时候触发
<input type="text" value="{{num}}" bindinput="handleInput">
</input>
<view>
{{num}}
</view>
Page({
data: {
num: 0
},
handleInput(e) {
console.log("...")
}
})
1. 如何获取页面的值
通过事件源对象
Page({
data: {
num: 0
},
handleInput(e) {
console.log(e.detail.value)
}
})
![在这里插入图片描述](https://img-blog.csdnimg.cn/79390906cb94489faece653d1bbdf181.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5a2m5Lmg5Lit55qE5bCP6I-c6bifLg==,size_11,color_FFFFFF,t_70,g_se,x_16)
2. 把输入框的值赋值到data中
Page({
data: {
num: 0
},
handleInput(e) {
this.setData({
num: e.detail.value
})
}
})
7. 事件的绑定(按钮)
tap事件 :点击事件,点击的时候触发 点击事件 :bindtap 无法在小程序中的事件直接传参 通过自定义属性的方式来传递参数
<button bindtap="handleClick" data-operation="{{1}}">+</button>
<button bindtap="handleClick" data-operation="{{-1}}">-</button>
在事件源中获取自定义属性
Page({
data: {
num: 0
},
handleClick(e) {
console.log(e.currentTarget.dataset.operation);
}
})
1. num添加传递的数据
Page({
data: {
num: 0
},
handleClick(e) {
const operation = e.currentTarget.dataset.operation
this.setData({
num: this.data.num += operation
})
}
})
![在这里插入图片描述](https://img-blog.csdnimg.cn/411eac99167d44bba94b3ecf0c14a63e.png)
|