这是我参与8月更文挑战的第11天,活动详情查看:8月更文挑战html
最近在学习微信小程序,以前也有学过一些,前面的忘的差很少了,写个文档复习一下这些基础知识json
小程序有两种配置文件,全局的app.json
和页面单独的page.json
小程序
注意:配置文件中不能出现注释微信小程序
官方文档数组
小程序的全局配置,包括全部页面路径、界面表现、网络超时时间、底部tab。微信
举个例子markdown
这是以前学的项目的配置文件的一部分网络
各字段的含义app
pages
字段 —— 用于描述当前小程序所用页面路径,这是为了让微信客户端知道当前你的小程序页面定义在哪一个目录window
字段 —— 定义小程序全部页面的顶部背景颜色,文字颜色定义,导航文字tabBar
字段 —— 定义小程序的底部导航栏样式tabBar
配置属性less
每个小程序页面也可使用 .json
文件来对本页面的窗口表现进行配置。
能够独立定义每一个页面的一些属性,如顶部颜色、下拉刷新等等
注意:若是有与app.json
文件相同的配置项,页面中的配置项将会覆盖app.json
中window
中的配置项
⼩程序根⽬录下的 sitemap.json
⽂件⽤于配置⼩程序及其⻚⾯是否容许被微信索引。
wxml
文件中的模板语法
在同页面下的js
中传入模板数据
模板语法
<view id="item-{{id}}"> </view>
复制代码
数据传递
Page({
data: {
id: 0
}
})
复制代码
不能直接写 checked = "false",该计算结果为字符串
<checkbox checked="{{false}}"> </checkbox>
复制代码
采用wx:if
来判断是否须要渲染该代码块:
<view wx:if="{{length > 5}}"> </view>
复制代码
也能够采用wx:elif
和wx:else
来添加一个else
块
<view wx:if="{{length > 5}}"> 1 </view>
<view wx:elif="{{length > 2}}"> 2 </view>
<view wx:else> 3 </view>
复制代码
注意:若是须要控制多个组件标签,可使用block
标签将多个组件包装起来,给block
加上控制属性
注意:
<block/>
并非一个组件,它仅仅是一个包装元素,不会在页面中作任何渲染,只接受控制属性
<view>{{"hello" + name}}</view>
复制代码
//page中的js文件
Page({
data:{
name: 'MINA'
}
})
复制代码
注意:花括号和引号之间若是有空格,将最终被解析成为字符串
默认数组的当前项的下标变量名默认为 index
,数组当前项的变量名默认为 item
<view wx:for="{{array}}">
{{index}}: {{item.message}}
</view>
复制代码
array: [{
message: 'foo',
}, {
message: 'bar'
}]
复制代码
因为未设置wx:key
属性所以会有警告,提示采用wx:key
来提升性能
wx:key
绑定的值有几种选择
string
类型,表示循环项中的惟一属性*this
,表示item
自己,表明惟一的字符串和数组<view hidden="{{condition}}"> True </view>
复制代码
相似wx:if
,频繁切换用hidden
,不常使用wx:if
经过bind关键字来实现。如 bindtap
、bindinput
、bindchange
等
给input
绑定输入事件
<input type="text" bindinput="handleInput"/>
复制代码
事件处理函数,将这个数据映射到 data 数据中
handleInput(e) {
this.setData({
num: e.detail.value
})
}
复制代码
<input bindinput="handleInput(100)" />
复制代码
value
<input bindinput="handleInput" data-item="100" />
复制代码
handleInput: function(e) {
// {item:100}
console.log(e.currentTarget.dataset)
// 输入框的值
console.log(e.detail.value);
}
复制代码
wxss 扩展特性
rpx
rpx
: 能够根据屏幕宽度进⾏⾃适应
使⽤步骤:
肯定设计稿宽度 pageWidth
计算⽐例 750rpx = pageWidth px
,所以 1px=750rpx/pageWidth
在 less ⽂件中,只要把设计稿中的 px => 750/pageWidth rpx
便可。
使⽤ @import
语句能够导⼊外联样式表,只⽀持相对路径。
@import "common.wxss";
.middle-p {
padding:15px;
}
复制代码
不支持通配符选择器*
仅支持如下选择器
好忙,好忙,好忙~