微信常用知识


小程序开发文档

阿里图标iconfont

一、微信小程序的优势:
     1、微信有海量用户,且粘性很高,在微信里开发产品更容易触达用户;
     2、推广app或公众号的成本太高;
     3、开发适配成本低;
     4、容易小规模试错,然后快速迭代;
     5、跨平台
 
事实上,应用号并非微信首创,之前百度推出过应用号,搜狐退出过快站,但是腾讯将这件事情做成功的概率确是最大的


二、微信小程序对于创业者的优势:
     1、APP流量成本的急剧攀升;
     2、移动互联网格局基本已定,用户需求场景已被巨头把持;
     3、面向所有产品对用户时间的竞争;
 
三、开发环境准备
     1、注册账号:官网注册
     2、获取APPID,由于调用微信小程序的接口等功能,需要索取开发者的小程序中的APPID,所以注册成功后,可登录,然后获取APPID。登录,在设置页面将APPID保存>下来,方便后期使用
     3、开发工具
      vs  cod下载地址:官网下载
          微信小程序开发工具(微信官方工具,用于查看小程序UI)  下载地址>:官网>下载
 
四、其他小程序(和微信小程序开发很相似)
     1、支付宝小程序
     2、百度小程序
     3、QQ小程序
     4、今日头条 + 抖音小程序
 
五、大项目–黑马优购电商项目(十二大模块)
      1、商>品首页
     2、商品列表
     3、购物车
     4、授权页面
     5、商品搜索
     6、商品收藏
     7、商品分类
     8、商品详情
     9、结算页面
     10、订单列表
     11、个人中心
     12>、意见反馈
 
六、官方开发文档:API文档
 
PS:写全局配置文件用微信开发者工具比较快捷,其他用vscode
 
七、小程序>结构目录
     小程序框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生app体验的服务
 
     小程序内部原生框架名称:MINA
 
     标签:wxml
     样式:wxss
     逻辑:JS
     配置:JSON
 
     sitemap配置:小程序根目录下的sitemap.json文件用来配置小程序及其页面是否允许被微信索引
 
>八、全局配置app.json
 
    app.json是当前小程序的全局配置,包括了小程序的所有页面路径、界面表现、网络超时时间>、底部tab等
        
        1、pages字段:API
 
PS:在vscode中通过字段新建页面,在微信小程序开发者工具中,必须产生保存行为,才能成功新建页面
 
2、window字段:API
 
导航栏属性:
navigationBarTextStyle 字段需为 black,white
enablePullDownRefresh:下拉刷新,默认为false
backgroundTextStyle:下拉刷新显示三个点,字段需为light, dark
backgroundColor:下拉刷新背景色
 
    3、tabbar字段:API
   pagePath:页面跳转
     text:页面标题
     iconPath:未被选中图标
     selectedIconPath:当前选中图标
 
PS:该字段下的部分color属性仅支持十六进制
 
完整的配置信息请参考app.json
 
九、页面配置page.json
 
page.json用来表示页面目录下的page.json这类和小程序页面相关的配置。开发者可以独立定义每个页面的一些属性,如:颜色、是否允许下拉刷新等。
PS:页面配置只能设置app.json中部分window配置项内容,页面中配置项会覆盖app.json的window中相同的配置项
 

navigationBarBackgroundColor HexColor #000000 导航栏背景颜色,如 #000000
navigationBarTextStyle string white 导航栏标题颜色,仅支持 black / white
navigationBarTitleText string 导航栏标题文字内容
backgroundColor HexColor #ffffff 窗口的背景色
backgroundTextStyle string dark 下拉 loading 的样式,仅支持 dark / light
enablePullDownRefresh boolean false 设置为 true 则页面整体不能上下滚动。只在页面配置中有效,无法在 app.json 中设置

 
十、sitemap配置—了解即可 API
该配置文件用于配置小程序及其页面是否允许被微信索引
 
十一、模板语法
     
WXML(weixin Markup language)是框架设计的一套标签语言,结合基础组件、事件系统,可以构建出>页面的结构。
1、数据绑定
渲染object类型,需要单独属性渲染,否则只会出现object
 
text 相当于以前web中的 span标签 行内元素 不会换行
 
view 相当于以前web中的 div标签 块级元素 会换行
 
cheekbox 以前的复选框标签
 
字符串和花括号之间一定不要存在空格 否则会导致识别失败
以下写法就是错误的示范
  
十二、运算 => 表达式API
   
1.可以在花括号中 加入 表达式 – “语句”
2.表达式
  指的是一些简单运算 数字运算 字符串拼接 逻辑运算…
  ·数字的加减乘除
  ·字符串拼接
  ·三元表达>式
3.语句
  ·复杂的代码段
      ☆ if else
      ☆switch
      ☆do while…
      ☆for…
 
PS:”===” 表示全等,即类型和值都相等
 
十三、列表渲染API
   
1、wx:for=”“  wx:for-item=”循环项的名称”    wx:for-index=”循环项的索引”
2、wx:key=”唯一的值” 用来提高列表渲染的性能
   ·wx:key 绑定一个普通的字符串的时候 那么这个字符串名称 肯定是循环数组 中的 对象的 唯一属性
   ·wx:key=”*this” 就表示你的数组 是一个普通的数组 *this表示是 循环项
    [1, 2, 3, 44, 5]
    [“1”, “222”, “adfdf”]
3、当出现 数组的嵌套循环的时候 尤其要注意 一下绑定的名称 不要重名
        wx:for-item=”item”  wx:for-index=”index”
4、默认情况下 我们 不写wx:for-item=”item”  wx:for-index=”index”小程序也会把 循环项的名称 和 索引的名称 item 和 index
即 只有一层循环的话(wx:for-item=”item”  wx:for-index=”index”) 可以省略
5、对>象循环
   ·wx:for=”“  wx:for-item=”对象的值”  wx:for-index=”对象的属性”
   ·循环对象的时候 最好把 item 和 index 的名称修改一下
     wx:for-item=”value”  wx:for-index=”key”
注:block
   ·占位符的标签
   ·写代码的时候 可以看到这标签的存在
   ·页面渲染 小程序会把它移除掉
 
十四、条件渲染 API
 
1、wx:if
  在框架中,使用 wx:if=”” 来判断是否需要渲染该代码块   condition:true/false
  wx:if
  wx:elif
  wx:else
 
2、hidden
  类似 wx:if
  频繁切换 用 hidden
      通过添加样式的方式来切换
PS:hidden 属性 不要和 样式 display 一起使用
hidden=”false“显示标签
  
>不常使用 用wx:if
直接把标签从 页面结构给移除掉
 
十五、事件绑定
 
小程序中的事件绑定,通过bind>关键字来实现。如bindtap、bindinput、bindchange等  不同的组件支持不同的事件,具体看组件的说明即可
 
1 需要给 input 标签绑定 input 事件
  绑定关键字 bindinput
 
2 如何获取 输入框的值
  通过事件源对象来获取
   e.detail.value
 
3 把输入框的值 赋值到 data 当中
     不能直接
       · this.data.num = e.detail.value
       · thie.num = e.detail.value
      正确写法
        this.setData({
           num:e.detail.value
        })
需要加入一个点击事件
        1 bindtap
        2 无法在小程序当中的 事>件中 直接传参
        3 通过自定义属性的方式来传递参数
        4 事件源中获取自定义属性
 
4、特别注>意
   ·绑定事件时不能带参数 不能带括号
   ·事件传值 通过标签自定义属性的方式和value
 
十六、样式wxss API
wxss是一套样式语言,用于描述wxml的组件样式
与CSS相比  WXSS扩展的特性有:
    ·响应式长度单位rpx
·样式导入
   
1、尺寸单位
  rpx(responsive pixel):可以根据屏幕宽度进行自适应,规定屏幕宽度为750rpx
建议:开发微信小程序是, 用iPhone6作为视觉稿的标准
使用步骤:
    ·确定设计稿宽度pageWidth
    ·计算比>列 750rpx = pageWidth px,  因此 1px = 750rpx / pageWidth
    ·在less文件中,只要把设计稿中的 px => 750 / pageWidth rpx即可
      利用 一个属性 calc属性 css 和 wxss 都支持 一个属性
        · 750 和 rpx 中间不要留空格
           · 运算符的两边也不要留空格
 
2、样式导入
  wxss中直接支持 样式导入功>能
  也可以和 less中的导入混用
  使用 @import语句可以导入外联样式表,只支持相对路径
 
3、选择器
  特别需要注意的是 小程序 不支持通配符 *
 
目前支持的选择器有:

选择器 样例 样例描述
.class .intro 选择所有拥有 class=”intro” 的组件
#id #firstname 选择拥有 id=”firstname” 的组件
element view 选择所有 view 组件
element, element view, checkbox 选择所有文档的 view 组件和所有的 checkbox 组件
::after view::after 在 view 组件后边插入内容
::before view::before 在 view 组件前边插入内容

 
4、小程序中使用less
  原生小程序不支持less  其他基于小程序的框架大体都支持, 如:wepy、mpvue、taro等 但是仅仅因为一个less功能,而去引入一个框架,肯定是不可取的 因此可用以下方式来实现
  ·在vscode中安装插件 easy less
  ·在vscode的设置中加入如下,配置
     “less.compile”: {
        “outExt”:     “.wxss”
    }
·在要编写样式的地方,新建less文件,如index.less即可
 
十七、常见组件 API
    
1、view
      代替原>来的div标签  
 
2、text
  ·文本标签
  ·只能嵌套text
  ·长安文字可以复制(只有改标签有这个功能)
  ·可以对空格 回车 进行编码
 
 
 

属性 类型 默认值 必填 说明 最低版本
selectable boolean false 文本是否可选 1.1.0
decode boolean false 是否解码

   
3、image
      ·图片标签 image组件默认宽度320px 高度240px
      ·支持懒加载
     PS:lazy-load 会自己判断 当 图片 出现在 视口 上下三屏的高度之内的时候 自己开始加载图片
 

属性 类型 默认值 必填 说明 最低版本
src string 图片资源地址 1.0.0
mode string scaleToFill 图片裁剪、缩放的模式 1.0.0
lazy-load boolean false 图片懒加载 1.5.0

 
mode有效值:
mode有14种模式 其中5种是缩放模式,9种是裁剪模式
 

模式 说明
缩放 scaleToFill 不保持纵横比缩放图片,使图片的宽高完全拉伸至填image元素
缩放 aspectFit 保持纵横比缩放图片,使图片的长边能完全显示出来。
缩放 aspectFill 保持纵横比缩放图片,只保证图片的短边能完全显示出来。
缩放 widthFix 宽度不变,高度自动变化,保持原图宽高比不变
缩放 heightFix 高度不变,宽度自动变化,保持原图宽高比不变
裁剪 top 不缩放图片,只显示图片的顶部区域
裁剪 bottom 不缩放图片,只显示图片的底部区域
裁剪 center 不缩放图片,只显示图片的中间区域
裁剪 left 不缩放图片,只显示图片的左边区域
裁剪 right 不缩放图片,只显示图片的右边区域
裁剪 top left 不缩放图片,只显示图片的左上边区域
裁剪 top right 不缩放图片,只显示图片的右上边区域
裁剪 bottom left 不缩放图片,只显示图片的左下边区域
裁剪 bottom right 不缩放图片,只显示图片的右下边区域

 
4、swiper(轮播图组件)
  

属性 类型 默认值 必填 说明
indicator-dots boolean false 是否显示面板指示点
indicator-color color rgba(0, 0, 0, .3) 指示点颜色
indicator-active-color color #000000 当前选中的指示点颜色
autoplay boolean false 是否自动切换
interval number 5000 自动切换时间间隔
circular boolean false 是否循环轮播

 
5、navigator(导航组件)
  
类似超链接标签
  

属性 类型 默认值 必填 说明
target string self 在哪个目标上发生跳转,默认当前小程序,可选值self/miniProgram
url string 当前小程序内的跳转链接
open-type string navigate 跳转方式

 
open-type有效值

说明
navigate 保留当前页面,跳转到应用内某个页面,但是不能跳到tabBar页面
redirect 关闭当前页面,跳转到应用内某个页面,但是不允许跳到tabBar页面
switchTab 跳转到tabBar页面,并关闭其他所有非tabBar页面
reLaunch 关闭所有页面,打开应用内的某个页面
navigateBack 关闭当前页面,返回上一页面或多级页面。可通过getCurrentPages()获取当前的页面栈,决定需要返回几层
exit 退出小程序,target="miniProgram"时生效

   
6、rich-text(富文本标签)
 
可以将字符解析成 对应标签 类似vue 中 v-heml 功能
 
7、button
 

属性 类型 默认值 必填 说明
size string default 按钮的大小
type string default 按钮的样式类型
plain boolean false 按钮是否镂空,背景色透明
disabled boolean false 是否禁用
loading boolean false 名称前是否带 loading 图标
form-type string 用于 组件,点击分别会触发 组件submit/reset事件
open-type string 微信开放能力

 
size的合法值

说明
default 默认大小
mini 小尺寸

 
type的合法值

说明
primary 绿色
default 白色
warn 红色

 
form-type的合法值

说明
submit 提交表单
reset 重置表单

 
open-type的合法值
 

说明
contact 打开客服会话,如果用户在会话中点击消息卡片后返回小程序,可以从 bindcontact 回调中获得具体信息,具体说明
share 触发用户转发,使用前建议先阅读使用指引
getPhoneNumber 获取用户手机号,可以从bindgetphonenumber回调中获取到用户信息,具体说明
getUserInfo 获取用户信息,可以从bindgetuserinfo回调中获取到用户信息
launchApp 打开APP,可以通过app-parameter属性设定向APP传的参数具体说明
openSetting 打开授权设置页
feedback 打开“意见反馈”页面,用户可提交反馈内容并上传日志,开发者可以登录小程序管理后台后进入左侧菜单“客服反馈”页面获取到反馈内容

 
open-type 的 contact 的实现过程
² 将小程序的appid 由测试后改为自己的appid
² 登录微信小程序官网,添加 客服-微信
² 准备两个账号
                           i.           普通用户A
                         ii.           客服->微信B
   
² 就是干
8、icon
 

属性 类型 默认值 必填 说明
type string icon的类型,有效值:success, success_no_circle, info, warn, waiting, cancel, download, search, clear
size number/string 23 icon的大小
color string icon的颜色,同css的color

   
9、radio(单选框)
 
可以通过color属性来修改颜色
需要搭配radio-group 一起使用
 
10、checkbox(复选框)
 
可以通过color属性来修改颜色
需要搭配checkout-group 一起使用
 
十八、自定义组>件
类似于vue或者react中的自定义组件
小程序允许我们使用自定义组件的方式来构建页面
 
1、创建自定义组件
类似于页面,一个自定义组件由json wxml wxss js 4个文件组成
 
可以在微信开发者工具中快速创建组件的文件结构
在文件夹内 components/myHeader  创建组件 名为 myHeader
² 声明组件
首先要在组件的json文件中进行>自定义组件声明
² 编辑组件
同时 还要在组件的wxml文件中编写组件模板 在wxss文件中加入组件样式
slot 表示插槽  类似vue中的slot
² 注册组件
PS: 1 页面.js  文件中 存放事件回调函数的时候 存放在data同层级下!!!
 2 组>件.js  文件中 存放事件回调函数的时候 必须要存放在methods中!!!
 
1 绑定点击事件 需要在methods中绑定
2 >获取被点击的索引
3 获取原数组
解构 对 复杂类型进行解构的时候 复制了一份 变量的引用而已
    最严谨的做法  重新拷贝一份 数组,  再对这个数组的备份进行处理
     let tabs = JSON.parse(JSON.stringify(this.data.tabs));
     不要直接修改 this.data.数据
 
 4 对数组循环
    1 给每一个循环项 选中属性 改为false
    2 给 当前的索引的 项 添加激活选中效果就可以了 
[ ].forEach 遍历数组的时候 修改了 v  也会导致原数组被修改
5 点击事>件触发的时候
        触发父组件中的自定义事件  同时传递数据给 父组件
        this.triggerEvent(“父组件自定义事件的名称”, 要传递的参数)
 
Component 构造器
可用于定义组件,调用 Component 构造器时可以指定组件的属性>、数据、方法等。
 

定义段 类型 是否必填 描述
properties Object Map 组件的对外属性,是属性名到属性设置的映射表
data Object 组件的内部数据,和 properties 一同用于组件的模板渲染
observers Object 组件数据字段监听器,用于监听 properties 和 data 的变化,参见 数据监听器
methods Object 组件的方法,包括事件响应函数和任意的自定义方法,关于事件响应函数的使用,参见 组件间通信与事件
created Function 组件生命周期函数-在组件实例刚刚被创建时执行,注意此时不能调用 setData )
attached Function 组件生命周期函数-在组件实例进入页面节点树时执行)
ready Function 组件生命周期函数-在组件布局完成后执行)
moved Function 组件生命周期函数-在组件实例被移动到节点树另一个位置时执行)
detached Function 组件生命周期函数-在组件实例被从页面节点树移除时执行)

 
 
十九、小程序生命周期
   
分为应用生命周期和页面生命周期
 
1.    应用生命周期
 

属性 类型 必填 说明
onLaunch function 监听小程序初始化。
onShow function 监听小程序启动或切前台。
onHide function 监听小程序切后台。
onError function 错误监听函数。
onPageNotFound function 页面不存在监听函数。

 
2. 页面生命周期
 

属性 类型 说明
data Object 页面的初始数据
onLoad function 生命周期回调—监听页面加载
onShow function 生命周期回调—监听页面显示
onReady function 生命周期回调—监听页面初次渲染完成
onHide function 生命周期回调—监听页面隐藏
onUnload function 生命周期回调—监听页面卸载
onPullDownRefresh function 监听用户下拉动作
onReachBottom function 页面上拉触底事件的处理函数
onShareAppMessage function 用户点击右上角转发
onAddToFavorites function 用户点击右上角收藏
onPageScroll function 页面滚动触发事件的处理函数
onResize function 页面尺寸改变时触发,详见 响应显示区域变化
onTabItemTap function 当前是 tab 页时,点击 tab 时触发

页面生命周期图解


文章作者: pzxnys
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 pzxnys !
  目录