基于有Vue基础的微信小程序开发学习笔记

微信小程序开发

一、微信小程序介绍

官方开发文档

在这里插入图片描述

在这里插入图片描述

二、小程序结构目录

  • 小程序框架

    小程序框架提供了自己的视图描述语言 WXMLWXSS ,以及 JavaScript ,并在视图层与逻辑层间提供了数据传输和事件系统,让开发者能够专注于数据与逻辑

1.小程序的文件结构

结构传统web微信小程序
结构HTMLWXML
样式CSSWXSS
逻辑JavascriptJavascript
配置JSON

2.基本项目目录

在这里插入图片描述

三、配置文件详解

官方文档

1.全局配置文件

  • pages配置项

    • 作用:配置页面信息
    • 小技巧:在官方开发者工具中修改pages配置项,新增一个页面,开发者工具会自动为你创建页面所需的四个文件
    "pages":[
        "pages/index/index",  //这里不需要后缀名,该数组第一个即为应用默认显示页面
        "pages/logs/logs"
    ],
    
  • window配置项

    • 作用:设置小程序的状态栏、导航条、标题、窗口背景色。
    "window":{
        "backgroundTextStyle":"light",  //下拉 loading 的样式,仅支持 dark / light
        "navigationBarBackgroundColor": "#fff",  //导航栏背景颜色
        "navigationBarTitleText": "Weixin",  //导航栏标题文字内容
        "navigationBarTextStyle":"black",  //导航栏标题颜色,仅支持 black / white	
        "enablePullDownRefresh":true,  //是否开启全局的下拉刷新 默认false
        "backgroundColor":"#ffffff"  //窗口的背景色
    },
    
  • tabBar配置项

    • 作用:如果小程序是一个多 tab 应用(客户端窗口的底部或顶部有 tab 栏可以切换页面),可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面
    "tabBar": {   //小程序下方导航配置
        "list": [   //tab 的列表,最少 2 个、最多 5 个 tab	
          {
            "pagePath": "pages/index/index",  //导航跳转到页面路径
            "text": "首页",  //导航标题
            "iconPath": "icon/_home.png",  //导航图标(未被选中)
            "selectedIconPath": "icon/home.png"  //被选中的图标
          },
          {
            "pagePath": "pages/search/search",
            "text": "搜索",
            "iconPath": "icon/_search.png",
            "selectedIconPath": "icon/search.png"
          }
        ],
        "color":"#bfa",  //tab 上的文字默认颜色,仅支持十六进制颜色
        "selectedColor":"#fff", //tab 上的文字选中时的颜色,仅支持十六进制颜色
        "backgroundColor":"#fff"  //tab 的背景色,仅支持十六进制颜色
      },
    

在这里插入图片描述

2.页面配置文件

在每个页面中分别配置其独特的样式属性等,具体方法参考上述全局配置及官方文档(xxx/xxx.json)

3.sitemap配置

四、WXML

1、数据绑定

1.1.列表循环(类似于v-for指令)
<view wx:for="{{list}}" vx:for-item="item" vx:for-index="index" vx:key="item.id">{{index}}---{{item.name}}</view>
<!-- 
	如果不指定vx:for-item="item" vx:for-index="index",则默认为item和index
	vx:key="*this" 
-->
1.2block标签

相当于<template></template>

1.3条件渲染

wx:if wx:elif wx:else 相当于v-if/v-else-if/v-else

hidden 相当于 v-show

2.事件绑定

2.1输入框值改变事件
<input type="text" bindinput="test" />
data:{
  num:0  
},
test(e){
    //与data平级
    //e.detail.value  获取输入框中的值
    //为data中的数据赋值
    this.setData({
        num:e.detail.value
    })
}
2.2点击事件
<button bindtap="add" data-addnum="{{3}}">+</button>
<!-- 注意:无法像Vue一样传参,需要使用自定义属性data-xxx -->
add(e){
    //获取自定义属性 e.currentTarget.dataset.addnum
    num:this.data.num+e.currentTarget.dataset.addnum
}

五、WXSS

1.尺寸单位

  • rpx (responsive pixel) :可以根据屏幕宽度进行自适应。规定屏幕宽度为750rpx。

  • 如在iPhone上,屏幕宽度为375px,共有750个物理像素,则750rpx=375px=750物理像素,1rpx=0.5px=1物理像素

  • 1px=750/pageWidth rpx

2.样式导入
  • WXSS支持样式导入

  • 可以与less中的导入混用

  • 使用@import语句可以导入外联样式表,只支持相对路径

/*在.wxss文件中*/
@import "相对路径";
3.选择器
  • 不支持 *
4.WXSS使用less
  • 使用VScode插件 easy less

  • 配置

    "less.compile":{
        "outExt":".wxss"
    }
    

六、常见组件

1.view

  • 相当于<div></div>

  • 属性:

    • hover-class: 指定按下去的样式类。当 hover-class="none" 时,没有点击态效果
    • hover-stop-propagation: 指定是否阻止本节点的祖先节点出现点击态 (即事件冒泡)

2.text

  • 相当于<span></span>

  • 特别的:里面只能嵌套自身

  • 长按文字可以复制(只有这个标签有这个功能)

  • 可以对空格、回车进行编码

  • 属性:

    • user-select :文本是否可选,该属性会使文本节点显示为 inline-block
    • decode :是否解码

3.image

  • 图片标签,image组件默认宽度320px、高度240px

  • 支持懒加载

  • 属性:

    • src: 图片资源地址

    • mode: 图片裁剪、缩放的模式

    • 合法值说明
      scaleToFill缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满 image 元素
      aspectFit缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
      aspectFill缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。
      widthFix缩放模式,宽度不变,高度自动变化,保持原图宽高比不变
      heightFix缩放模式,高度不变,宽度自动变化,保持原图宽高比不变
      top类似于backgroud-position
    • webp : 默认不解析 webP 格式,只支持网络资源

    • lazy-load : 图片懒加载,在即将进入一定范围(上下三屏)时才开始加载

4.swiper,swiper-item

  • 轮播图组件
  • swiper,swiper-item类似于ul和li的关系
  • swiper无法实现被内容撑开,根据原图比例,手动为其加宽高属性
  • 属性:
    • autoplay : 是否自动切换
    • interval : 自动切换时间间隔
    • circular : 是否采用衔接滑动
    • indicator-dots : 是否显示面板指示点
    • indicator-color : 指示点颜色
    • indicator-active-color : 当前选中的指示点颜色

5.navigator

  • 导航组件,类似超链接标签
  • 块元素
  • 属性:
    • url : 当前小程序内的跳转链接
    • target :在哪个目标上发生跳转,默认当前小程序self/miniProgram
    • open-type:跳转方式

6.rich-text

  • 相当于v-html的功能
  • 属性:
    • nodes: 节点列表/HTML String

7.button

  • 属性:

    • size :按钮的大小default/mini

    • type:按钮的样式类型primary/default/warn

    • plain:按钮是否镂空,背景色透明

    • disabled:是否禁用

    • open-type:微信开放能力!!!!!!!!!!!!!

      合法值说明
      contact打开客服会话,如果用户在会话中点击消息卡片后返回小程序,可以从 bindcontact 回调中获得具体信息
      share触发用户转发
      getPhoneNumber获取用户手机号,可以从bindgetphonenumber回调中获取到用户信息
      getUserInfo获取用户信息,可以从bindgetuserinfo回调中获取到用户信息 (小程序插件中不能使用
      launchApp打开APP,可以通过app-parameter属性设定向APP传的参数
      openSetting打开授权设置页
      feedback打开“意见反馈”页面
      chooseAvatar获取用户头像,可以从bindchooseavatar回调中获取到头像信息

8.icon

  • 图标字体

  • 属性:

    • type:icon的类型,有效值:success, success_no_circle, info, warn, waiting, cancel, download, search, clear
    • size:icon的大小,单位默认为px,2.4.0起支持传入单位(rpx/px),2.21.3起支持传入其余单位(rem 等)。
    • color:icon的颜色,同css的color
  • 在这里插入图片描述

9.radio

  • 单选
  • 属性:
    • value:radio 标识。当该radio 选中时,radio-group 的 change 事件会携带radio的value
    • checked:当前是否选中
    • disabled:是否禁用
    • color:radio的颜色,同css的color

10.checkbox

同上

11.自定义组件

  • 创建

    • 在components/xxx下创wxml,wxss,js,json四个文件
    • 添加配置"component":true
  • 使用组件

    • 配置

      "usingComponents":{
          "Test":"../../components/Test/Test"  //到文件夹即可
          
      }
      
    • 使用

      <Test></Test>
      

七、小程序的生命周期

1.小程序生命周期

//应用第一次启动
onLaunch(){}
//应用被用户看到
onShow(){}
//应用被隐藏
onHide(){}
//应用发送错误时
//可以通过这个回调,在应用发送错误时,收集错误信息,通过异步请求,将错误发送到后台去,便于问题修复,版本更新
onError(err){}
//页面找不到,第一次启动时,找不到入口页面,才会触发
onPageNotFound(){}

2.页面生命周期

onLoad()  //监听页面加载
onShow()  //监听页面显示
onReady() //监听页面初次渲染完成
onHide()  //监听页面隐藏
onUnload  //监听页面卸载
onPullDownRefresh()  //监听用户下拉
onReachBottom()  //监听页面上拉触底
onShareAppMessage()  //监听用户点击转发
onPageScroll()  //监听页面滚动
onResize()  //监听页面尺寸改变,横屏竖屏切换
onTabItemTap()  //当前是tab页时,监听tab点击
  • 3
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YFFlame

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值