目录
环境准备
注册账号
获取APPID
开发工具
小程序结构目录
小程序文件结构和传统web对比
基本的项目目录
小程序配置文件
. 全局配置app.json
1. pages
2. window
3.tabbar
页面配置page.json
模板语法
数据绑定
普通写法
组件属性
bool类型
运算
列表渲染
条件渲染
wx:if
小程序事件的绑定
样式 WXSS
尺寸单位
样式导入
选择器
小程序中使用less
常用组件
text
. image
swiper
. rich-text
. icon
radio . checkbox
自定义组件
. 其他属性
组件-自定义组件传参
小程序生命周期
建议使用全新的邮箱,没有注册过其他小程序或者公众号的 访问注册⻚⾯,耐⼼完成注册即可
下载地址
通过以上对⽐得出,传统web 是三层结构。⽽微信⼩程序 是四层结构,多了⼀层 配置.json
text==span
view==div
checkbox==复选框
{{ message }}
Page({
data: {
id: 0
}
})
不要直接写 checked=false,其计算结果是是个字符串,字符串和花括号之间不要存在空格
三元运算
Hidden
算数运算
{{a + b}} + {{c}} + d
逻辑判断
字符串运算
view>{{"hello" + name}}
Page({
data:{
name: 'MINA'
a: 1,
b: 2,
c: 3
}
})
wx:for
list:[{id:0,name:"炒饭"},{id:1,name:"炒面"}]
wx:key="id"
list:[1,2,3,4,5]
wx:key="*this"
{{index}}: {{item.message}}
Page({
data: {
array: [{
id:0,
message: 'foo',
}, {
id:1,
message: 'bar'
}]
}
})
wx:if 移除标签
1
2
3
True
Page({
// 绑定的事件
handleInput: function(e) {
console.log(e);
console.log("值被改变了");
this.setData({
num:e.detail.value
})
}
})
. 事件触发时获取数据
handleInput: function(e) {
// {item:100}
console.log(e.currentTarget.dataset)
// 输入框的值
console.log(e.detail.value);
}
建议: 开发微信⼩程序时设计师可以⽤ iPhone6 作为视觉稿的标准。
使用步骤:
"less.compile": {
"outExt": ".wxss"
}
view 代替 原来的 div 标签
微信内置轮播图组件 swiper-item 滑块 默认宽度和⾼度都是100%
导航组件 类似超链接标签
富文本标签
// 1 index.wxml 加载 节点数组
// 2 加载 字符串
// index.js
Page({
data: {
nodes: [{
name: 'div',
attrs: {
class: 'div_class',
style: 'line-height: 60px; color: red;'
},
children: [{
type: 'text',
text: 'Hello World!'
}]
}]
},
tap() {
console.log('tap')
}
})
Page({
data: {
iconSize: [20, 30, 40, 50, 60, 70],
iconType: [
'success', 'success_no_circle', 'info', 'warn', 'waiting', 'cancel',
'download', 'search', 'clear'
],
iconColor: [
'red', 'orange', 'yellow', 'green', 'rgb(0,255,255)', 'blue', 'purple'
],
}
})
小程序允许我们使自定义组件的方式来构建页面
创建自定义组件
声明组件 首先需要在组件的 json 组件中进行自定义组件声明 myHeader.json "component": true }
编辑组件 同时,还要在组件的 wxml 组件中编写组件模板,在 wxss 组件中加组组件样式 slot 表示插槽,类似vue中的slot
{{innerText}}
Component({
properties: {
// 这里定义了innerText属性,属性值可以在组件使用时指定
innerText: {
// 期望要的数据是 string类型
type: String,
value: 'default value',
}
},
data: {
// 这里是一些组件内部数据
someData: {}
},
methods: {
// 这里是一个自定义方法
customMethod: function(){}
}
})
{
// 引用声明
"usingComponents": {
// 要使用的组件的名称 // 组件的路径
"my-header":"/components/myHeader/myHeader"
}
}
用来替代slot的
定义段与⽰例⽅法