微信小程序开发基础笔记
一、注册等
首先需要注册一下平台(Appid开发者d 和上传管理等都需要)
微信公众平台 (qq.com)(找不到就点这个 小程序 (qq.com))
我的Appid:----------------------
二、 工具
1、下载微信官方小程序开发工具
https://developers.weixin.qq.com/miniprogram/dev/devtools/download.html)
三、文件结构
四、指南(其实是不知道该放在那一块的知识)
有啥不会的去官网看,官网地址在笔记开头
1、常用单位 ‘ rpx ’
2、推荐使用 flex布局方式
五、框架-组件-API
1、 标签 相当于 html 中的div
2、 标签 相当于 html 中的span
3、
用于展示微信开放的数据(获取用户头像昵称等信息)
现在已经调整了,在开发工具中可以获取到,但是真机上还是需要用 button 的 open-type属性
详情见:button | 微信开放文档 (qq.com)
4、绑定事件
// 绑定事件例子
<view bindtap="{{事件处理函数}}">点击事件处理</view>
/**
使用 bind 来绑定事件
tap事件 手指触摸后马上离开 (类似click点击事件)
*/
5、路由跳转
-
wx.redirectTo(Object object)
// 例子 // dom 创建点击事件 <button bindtap="tohome">跳转</button> tohome(){ // wx.navigateTo({})带返回按钮 wx.navigateTo({ // 注意:这里url 必须是根目录app.json下pages数组中存在的 url: '/pages/index/index', // 注意路径前加 “/” }) },
-
wx.navigateTo(Object object)
// 例子 // dom 创建点击事件 <button bindtap="tohome">跳转</button> tohome(){ // wx.redirectTo({}) 不带返回按钮 // 带一个返回首页(首页就是app.json中pages数组下第一个路径) wx.redirectTo({ // 注意:这里url 必须是根目录app.json下pages数组中存在的 url: '/pages/index/index', // 注意路径前加 “/” }) },
6、轮播图
7、小程序默认启动首页
指定小程序的默认启动路径(首页),常见情景是从微信聊天列表页下拉启动、小程序列表启动等。如果不填,将默认为 pages
列表的第一项。不支持带页面路径参数。
// app.json 文件中
{
"entryPagePath": "pages/index/index"
}
8、数据绑定
-
WXML 中的动态数据均来自对应 Page(js文件) 的 data
-
简单绑定
// 例子 // wxml <view> {{ message }} </view> // js Page({ data: { message: 'Hello MINA!' } })
更多见官网:数据绑定 | 微信开放文档 (qq.com)
9、列表渲染(wx:for)
在组件上使用 wx:for
控制属性绑定一个数组,即可使用数组中各项的数据重复渲染该组件。
默认数组的当前项的下标变量名默认为 index
,数组当前项的变量名默认为 item
// 例子
// wxml 与vue不同的是,不用写 item in 和 index
<view wx:for="{{array}}">
{{index}}: {{item.message}}
</view>
// js
Page({
data: {
array: [{
message: 'foo',
}, {
message: 'bar'
}]
}
})
使用 wx:for-item
可以指定数组当前元素的变量名,
使用 wx:for-index
可以指定数组当前下标的变量名:
<view wx:for="{{array}}" wx:for-index="idx" wx:for-item="itemName">
{{idx}}: {{itemName.message}}
</view>
更多见官网:列表渲染 | 微信开放文档 (qq.com)
10、条件渲染(wx:if)
在框架中,使用 wx:if=""
来判断是否需要渲染该代码块:
<view wx:if="{{condition}}"> True </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 wx:if
因为 wx:if
是一个控制属性,需要将它添加到一个标签上。如果要一次性判断多个组件标签,可以使用一个 <block/>
标签将多个组件包装起来,并在上边使用 wx:if
控制属性。
<block wx:if="{{true}}">
<view> view1 </view>
<view> view2 </view>
</block>
更多见官网:条件渲染 | 微信开放文档 (qq.com)
11、模板(template)
WXML提供模板(template),可以在模板中定义代码片段,然后在不同的地方调用
定义模板
使用 name 属性,作为模板的名字。然后在<template/>
内定义代码片段,如:
<!--
index: int
msg: string
time: string
-->
<template name="msgItem">
<view>
<text> {{index}}: {{msg}} </text>
<text> Time: {{time}} </text>
</view>
</template>
使用模板
使用 is 属性,声明需要的使用的模板,然后将模板所需要的 data 传入,如:
<template is="msgItem" data="{{...item}}"/>
Page({
data: {
item: {
index: 0,
msg: 'this is a template',
time: '2016-09-15'
}
}
})
is 属性可以使用 Mustache 语法,来动态决定具体需要渲染哪个模板:
<template name="odd">
<view> odd </view>
</template>
<template name="even">
<view> even </view>
</template>
<block wx:for="{{[1, 2, 3, 4, 5]}}">
<template is="{{item % 2 == 0 ? 'even' : 'odd'}}"/>
</block>
更多见官网:模板 | 微信开放文档 (qq.com)
12、引用、引入
WXML 提供两种文件引用方式import
和include
。
import
import
可以在该文件中使用目标文件定义的template
,如:
在 item.wxml 中定义了一个叫item
的template
:
<!-- item.wxml -->
<template name="item">
<text>{{text}}</text>
</template>
在 index.wxml 中引用了 item.wxml,就可以使用item
模板:
<import src="item.wxml"/>
<template is="item" data="{{text: 'forbar'}}"/>
include
include
可以将目标文件除了 <template/>
<wxs/>
外的整个代码引入,相当于是拷贝到 include
位置,如:
<!-- index.wxml -->
<include src="header.wxml"/>
<view> body </view>
<include src="footer.wxml"/>
<!-- header.wxml -->
<view> header </view>
<!-- footer.wxml -->
<view> footer </view>
更多见官网:引用 | 微信开放文档 (qq.com)