微信小程序的启动和渲染过程(加组件分类和组件的基本使用以及API分类)

导航路线

关于微信小程序知识点一共做了六个博客,涵盖大部分内容,有想学习的可以按照以下顺序查看
1.微信小程序的启动和渲染过程(加组件分类和组件的基本使用以及API分类)
2.微信小程序wxml的数据和事件的绑定,以及条件和列表的渲染
3.微信小程序wxss相关介绍、全局配置和tabbar知识以及发送网络数据请求(post,get)
4.微信小程序页面导航、编程式导航、页面事件、生命周期和WXS脚本
5.微信小程序自定义组件、组件的生命周期和组件通信(插槽)
6.微信小程序使用npm包、全局数据共享和分包

小程序的启动过程

  1. 把小程序的代码包下载到本地
  2. 解析app.json全局配置文件
  3. 执行app.js小程序入口文件,调用App()创建小程序实例
  4. 渲染小程序首页
  5. 小程序启动完成

小程序页面渲染的过程

  1. 加载解析页面的.json配置文件
  2. 加载页面的.wxml模板和.wxss样式
  3. 执行页面的.js文件,调用page(创建页面实例
  4. 页面渲染完成

小程序中组件的分类有九大类

  • 视图容器
  • 基础内容
  • 表单组件
  • 导航组件
  • 媒体组件
  • map地图组件
  • canvas画布组件
  • 开放能力
  • 无障碍访问
    上面加粗的为常用的

常用的视图容器类组件

  1. view
    • 普通视图区域
    • 类似于html中的div,是一个块级元素
    • 常用来实现页面的布局效果
  2. scroll-view
    • 可滚动的视图区域
    • 常用来实现滚动列表效果

下列分别为wxml和wxss的代码,可用于查看效果

<scroll-view class="container1" scroll-y>
  <view>a</view>
  <view>b</view>
  <view>c</view>
</scroll-view>
.container1 view{
  width: 100px;
  height: 100px;
  text-align: center;
  line-height: 100px;
  background-color: pink;
}
.container1 view:nth-child(1){
  background-color:green;
}
.container1 view:nth-child(2){
  background-color: lightskyblue;
}
.container1 view:nth-child(3){
  background-color: lightpink;
}
.container1{
  border: 1px solid red;
  width: 100px;
  height: 120px;
}
  1. swiper和swiper-item
    • 轮播图容器组件和轮播图item组件

下列分别为wxml和wxss的代码,可用于查看效果

<swiper>
  <swiper-item class="swiper-container">  
    <view class="item">A</view>
  </swiper-item>
  <swiper-item>
    <view class="item">B</view>
  </swiper-item>
  <swiper-item>
    <view class="item">C</view>
  </swiper-item>
</swiper>
.swiper-container{
  height: 150px;
}
.item{
  height: 100%;
  line-height: 150px;
  text-align: center;
}
swiper-item:nth-child(1) .item{
  background-color: pink;
}
swiper-item:nth-child(2) .item{
  background-color: green;
}
swiper-item:nth-child(3) .item{
  background-color: orange;
}

swiper组件常用属性

属性类型默认值说明
indicator-dotsbooleanfalse是否显示面板指示点
indicator-colorcolorrgba(0,0,0,.3)指示点颜色
indicator-active-colorcolor#000000当前选中的指示点颜色
autoplaybooleanfalse是否自动切换
intervalnumber5000自动切换时间间隔
indicator-dotsbooleanfalse是否采用衔接滑动

使用如下,这里就演示了两个属性,各位没事干的可以挨个测试一下,wxss代码和上面一样

<swiper indicator-dots indicator-color="white">
  <swiper-item class="swiper-container">  
    <view class="item">A</view>
  </swiper-item>
  <swiper-item>
    <view class="item">B</view>
  </swiper-item>
  <swiper-item>
    <view class="item">C</view>
  </swiper-item>
</swiper>
  1. text
    • 文本组件
    • 类似于HTML中的span标签
      text组件可以通过selectable属性,实现长按选中文本内容的效果
<view>
	手机号支持长按选中效果
	<text selectable>13800005056</text>
</view>

效果图:(这个效果在开发者工具模拟器实现不了,可以通过手机真机实现)
在这里插入图片描述

  1. rich-text
    • 富文本组件
    • 支持把HTML字符串渲染为WXML结构
      通过rich-text组件的nodes属性节点,把HTML字符串渲染为对应的UI结构:

应用场景:商品详情页的结构渲染

<rich-text nodes="<h2 style='color:red;'>这是标题</h2>"/>

在这里插入图片描述

  1. button
    • 按钮组件
    • 功能比HTML中的button按钮丰富
    • 通过open-type属性可以调用微信提供的各种功能(客服,转发,获取用户授权,获取用户信息等)
      以下是小程序按钮的种类
<button>普通按钮</button>
<!-- 通过type属性指定按钮的颜色和类型 -->
<button type="primary">主色调按钮</button>
<button type="warn">警告按钮</button>
<!-- size="mini" 小尺寸按钮-->
<button size="mini">普通小尺寸按钮</button>
<button type="primary" size="mini">主色调小尺寸按钮</button>
<button type="warn" size="mini">警告小尺寸按钮</button>
<!-- plain 镂空按钮 -->
<button size="mini" plain>普通小尺寸镂空按钮</button>
<button type="primary" size="mini" plain>主色调小尺寸镂空按钮</button>
<button type="warn" size="mini" plain>警告小尺寸镂空按钮</button>

效果图:
在这里插入图片描述

  1. image
    • 图片组件
    • image组件默认宽度约300px,高度约为240px(给了标签不引入图片也会占位)
<image src="" mode=""/>
<image src="/img/1.jpg" mode=""/>

效果图:
在这里插入图片描述
image组件的mode属性用来指定图片的裁剪和缩放模式,常用的mode属性如下

mode值说明
scaleToFill(默认值)缩放模式,不保持纵横比缩放图片,使图片的宽高完全拉伸至填满image元素
aspectFit缩放模式,保持纵横比缩放图片,使图片的长边能完全显示出来。也就是说,可以完整地将图片显示出来。
aspectFill缩放模式,保持纵横比缩放图片,只保证图片的短边能完全显示出来。也就是说,图片通常只在水平或垂直方向是完整的,另一个方向将会发生截取。(简单来说就是图片填充满整个image为止)
widthFix缩放模式,宽度不变,高度自动变化,保持原图宽高比不变
heightFix缩放模式,高度不变,宽度自动变化,保持原图宽高比不变
  1. navigator
    • 页面导航组件
    • 类似于HTML中的a链接

小程序宿主环境-API

小程序官方把API分为了如下三大类

  1. 事件监听API
    • 特点: 以on开头,用来监听某些事件的触发
    • 举例: wx.onWindowResize(function callback) 监听窗口尺寸变化的事件
  2. 同步API
    • 特点一: 以Sync结尾的API都是同步API
    • 特点二: 同步API的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常
    • 举例: wx.setStorageSync(‘key’,‘value’) 向本地存储中写入内容
  3. 异步API
    • 特点: 类似于jQuery中的$.ajax(options)函数,需要通过success、fail、complete接收调用的结果
    • 举例: wx.request() 发起网络请求,通过success回调函数接收数据
  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
好的,以下是微信小程序三十个常用API组件的名称、使用案例代码和使用解释: 1. wx.request:发起 HTTPS 网络请求使用案例代码: ```js wx.request({ url: 'https://example.com/api/data', success(res) { console.log(res.data) } }) ``` 使用解释:该 API 可以用于向服务器发送网络请求,并获取服务器返回的数据。在上面的代码中,我们向服务器发送一个 GET 请求,获取数据,并在成功回调函数中打印出响应结果。 2. wx.navigateTo:保留当页面,跳转到应用内的某个页面。 使用案例代码: ```js wx.navigateTo({ url: '/pages/detail/detail?id=123' }) ``` 使用解释:该 API 可以实现页面之间的跳转,类似于浏览器的进和后退功能。在上面的代码中,我们跳转到应用内的详情页,并传递了一个参数 id。 3. wx.showToast:显示消息提示框。 使用案例代码: ```js wx.showToast({ title: '提交成功', icon: 'success', duration: 2000 }) ``` 使用解释:该 API 可以在页面上显示一个消息提示框,用于提示用户一些重要的信息。在上面的代码中,我们显示一个提交成功的提示框,设置了图标为成功的图标,显示时间为2秒。 4. wx.login:调用登录接口,获取登录凭证(code)。 使用案例代码: ```js wx.login({ success(res) { console.log(res.code) } }) ``` 使用解释:该 API 可以获取用户的登录凭证,该凭证可以用于后续的接口调用,如获取用户信息、支付等操作。在上面的代码中,我们在成功回调函数中打印出了登录凭证。 5. wx.getUserInfo:获取用户信息。 使用案例代码: ```js wx.getUserInfo({ success(res) { console.log(res.userInfo) } }) ``` 使用解释:该 API 可以获取用户的昵称、头像等信息,需要用户授权后才能调用。在上面的代码中,我们在成功回调函数中打印出了用户信息。 6. wx.showLoading:显示载提示框。 使用案例代码: ```js wx.showLoading({ title: '正在载...', }) ``` 使用解释:该 API 可以在页面上显示一个载提示框,用于提示用户正在载数据。在上面的代码中,我们显示一个正在载的提示框。 7. wx.getStorage:从本地缓存中异步获取指定 key 对应的内容。 使用案例代码: ```js let history = wx.getStorageSync('history') ``` 使用解释:该 API 可以从本地缓存中获取指定 key 对应的内容,可以用于保存用户的一些信息,如浏览记录等。在上面的代码中,我们获取了名为 history 的本地缓存。 8. wx.createCanvasContext:创建 canvas 绘图上下文。 使用案例代码: ```js const ctx = wx.createCanvasContext('myCanvas') ctx.rect(0, 0, 100, 100) ctx.setFillStyle('red') ctx.fill() ctx.draw() ``` 使用解释:该 API 可以创建一个 canvas 绘图上下文,可以用于在 canvas 上绘制图形、文字等。在上面的代码中,我们创建了一个绘图上下文并绘制了一个红色的正方形。 9. wx.getSystemInfoSync:获取系统信息。 使用案例代码: ```js let systemInfo = wx.getSystemInfoSync() console.log(systemInfo.windowWidth) ``` 使用解释:该 API 可以获取设备的一些信息,如屏幕宽度、高度、像素比等。在上面的代码中,我们获取了设备的屏幕宽度并打印出来。 10. <swiper> 组件:轮播图组件使用案例代码: ```html <swiper autoplay="true"> <block wx:for="{{images}}" wx:key="url"> <swiper-item> <image src="{{item.url}}" mode="aspectFill"></image> </swiper-item> </block> </swiper> ``` 使用解释:该组件可以实现轮播图效果,可以设置轮播间隔、指示器样式等参数。在上面的代码中,我们使用了一个 images 数组来渲染轮播图,并设置了自动播放。 11. wx.showModal:显示模态对话框。 使用案例代码: ```js wx.showModal({ title: '提示', content: '确认删除吗?', success(res) { if (res.confirm) { console.log('用户点击确定') } else if (res.cancel) { console.log('用户点击取消') } } }) ``` 使用解释:该 API 可以显示一个模态对话框,用于询问用户是否进行某个操作。在上面的代码中,我们显示一个确认删除的模态对话框,根据用户的点击结果进行相应的操作。 12. wx.createInnerAudioContext:创建音频上下文。 使用案例代码: ```js const audioCtx = wx.createInnerAudioContext() audioCtx.src = 'audio.mp3' audioCtx.play() ``` 使用解释:该 API 可以创建一个音频上下文,可以用于播放音频文件。在上面的代码中,我们创建了一个音频上下文并播放了一个名为 audio.mp3 的音频文件。 13. wx.chooseImage:从相册或拍照中选择图片。 使用案例代码: ```js wx.chooseImage({ count: 1, sizeType: ['original', 'compressed'], sourceType: ['album', 'camera'], success(res) { const tempFilePaths = res.tempFilePaths console.log(tempFilePaths) } }) ``` 使用解释:该 API 可以从相册或拍照中选择图片,并返回选择的图片临时文件路径。在上面的代码中,我们选择了一张图片,并在成功回调函数中打印出了图片的临时文件路径。 14. wx.createAnimation:创建动画实例。 使用案例代码: ```js const animation = wx.createAnimation({ duration: 1000, timingFunction: 'linear', }) animation.translateX(100).step() this.setData({ animationData: animation.export() }) ``` 使用解释:该 API 可以创建一个动画实例,可以用于制作动态效果。在上面的代码中,我们创建了一个平移动画,并将动画数据绑定到页面数据中,用于在页面上展示动画效果。 15. wx.showActionSheet:显示操作菜单。 使用案例代码: ```js wx.showActionSheet({ itemList: ['拍照', '从手机相册选择'], success(res) { if (res.tapIndex === 0) { console.log('用户点击了拍照') } else if (res.tapIndex === 1) { console.log('用户点击了从相册选择') } } }) ``` 使用解释:该 API 可以显示一个操作菜单,用于提供多个操作选项。在上面的代码中,我们显示了一个包含两个选项的操作菜单,并根据用户的选择进行相应的操作。 16. wx.openLocation:使用地图查看位置。 使用案例代码: ```js wx.openLocation({ latitude: 39.90403, longitude: 116.407526, scale: 18, name: '北京市' }) ``` 使用解释:该 API 可以使用地图查看指定的位置。在上面的代码中,我们打开了一个地图,显示了北京市的位置,并设置了缩放比例为18。 17. wx.getNetworkType:获取网络类型。 使用案例代码: ```js wx.getNetworkType({ success(res) { const networkType = res.networkType console.log(networkType) } }) ``` 使用解释:该 API 可以获取当设备的网络类型,如 WiFi、4G、3G 等。在上面的代码中,我们获取了当
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

萧寂173

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

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

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

打赏作者

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

抵扣说明:

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

余额充值