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

news2024/11/18 3:28:04

小程序的启动过程

  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回调函数接收数据

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/160170.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

网站建设的具体流程

有网站制作需求的朋友想了解一下网站建设的具体流程&#xff0c;防止不良的网站制作公司的业务人员用虚假的工作量欺骗自己报出高价&#xff0c;米贸搜详细给你整理一下一个网站的建设有哪些流程:1.在线或当面沟通网站制作需求&#xff0c;详细沟通网站的功能需求、设计风格以及…

功率放大模块的作用是什么(功率放大器模块的应用范围)

功率放大模块是一种能够把开关电源、数字功放集成到一起的放大模块。很多人对于功率放大模块的作用是什么以及功率放大模的应用范围都不清楚&#xff0c;下面就来详细的为大家介绍下什么是功率放大模块以及功率放大模块的基础知识。 一、什么是功率放大模块 功率放大模块是一种…

谷歌AR应用挑战赛上那些富有创意的AR项目集锦

前不久&#xff0c;谷歌面向全球100多个国家和地区的开发者们推出ARCore Geospatial API挑战赛&#xff0c;获奖的AR应用可得到1000美元到1.2万美元的奖金&#xff0c;支持多种不同的内容类别&#xff0c;比如AR导航、AR游戏、AR娱乐等等。据悉&#xff0c;Geospatial API是谷歌…

贵阳某小区一次HC小区管理系统自研道闸故障解决记录

一次HC小区管理系统自研道闸故障解决记录&#xff0c;方便其他小伙伴出现问题的时候提供解决思路 早上九点钟 客户说道闸用不了&#xff0c;这个客户不是物业&#xff0c;而是科技公司&#xff0c;他们给物业安装的道闸。 问题描述是&#xff0c;mqtt 也重启了&#xff0c;物…

Allegro如何打开锁定走线线宽的功能操作指导

Allegro如何打开锁定走线线宽的功能操作指导 在做PCB设计的时候,有时需要用到锁定线宽的功能,让走线一直保持固定的线宽不变化,例如下图 任何网络的走线在任何地方都是固定20mil的线宽 具体操作如下 选择菜单的Setup选择User Preferences

解决IE页面打不开及白屏问题

IE浏览器控制台报错如下&#xff1a; 解决办法&#xff1a; ① public文件下新建TextEncoder.js /* eslint-disable */ ; var textEncoder (function(window) {if (undefined ! window.TextEncoder) { return }function _TextEncoder() {// --DO NOTHING}_TextEncoder.prot…

steam搬砖项目详细介绍

一、项目介绍 其实&#xff0c;Steam就是一个全球的游戏平台&#xff0c;搬砖主要是搬的一款火遍全球的游戏CSGO的装备和饰品。CS听说过吧&#xff0c;这款游戏就是CS的一个系列。&#xff08;通俗易懂的理解就是&#xff0c;从国外steam游戏平台购买装备&#xff0c;再挂到国内…

分销商城小程序开发

武汉微驱动科技有限公司 目前电商行业正在蓬勃发展&#xff0c;越来越多的商家想要利用各种社交关系&#xff0c;用社交软件扩大经营规模&#xff0c;小程序分销是最近很火爆的流行趋势&#xff0c;不过有不少商家还不清楚“什么是小程序分销模式&#xff1f;小程序分销商城是什…

gerapy部署项目报错:ModuleNotFoundError: No module named ...

使用gerapy部署我的项目&#xff0c;rebuild的时候是成功的&#xff0c;但是deploy的时候失败了&#xff0c;报错&#xff1a; Client 1 Failed to Deploy 没有显示具体的错误&#xff0c;只能到gerapy的部署目录找日志。 根据 ll 命令&#xff0c;找到了最新的日志文件&…

AutoSAR Crypto_UtilizationOfCryptoServices-AUTOSAR加密服务使用

1 Stack Architecture The Crypto Service Manager (CSM) CSM控制一个或者多个Client对一个或者多个同步或异步加密服务。它提供了优先级队列来管理专用CRYPTO不能直接处理的作业 CSM的功能如下&#xff1a; ● HASH计算&#xff1b; ● 消息认证码的生成和校验&#xff1b; ●…

Centos6源码安装Haproxy进行四层代理

一.背景 公司使用专线与第三方公司进行系统交互&#xff0c;给定了我们业务IP的使用范围&#xff0c;防火墙策略只开放业务IP范围之内的IP地址才能访问&#xff0c;如果源IP不在业务IP范围之内&#xff0c;那么通过互联IP过去是访问不了的。我们的做法是为了不影响现有业务&…

完整复现YOLOv8:包括训练、测试、评估、预测阶段【本文源码已开源,地址在文章末尾】

训练过程展示: 目录 1、复现过程1.1、配置开发环境1.2、demo预测实现过程2 、项目实现方法与代码(包括训练、测试、评估、预测阶段)2.1、训练、测试、评估、预测代码适配2.2、同时开始训练、测试、评估、预测2.3、训练完之后进行预测2.4、训练、评估、混淆矩阵、召回曲线等…

Linux 基础常用命令 整理

Shell Shell 这个单词的原意是“外壳”&#xff0c;跟 kernel&#xff08;内核&#xff09;相对应&#xff0c;比喻内核外面的一层&#xff0c;即用户跟内核交互的对话界面。 Shell 是一个程序&#xff0c;提供一个与用户对话的环境。这个环境只有一个命令提示符&#xff0c;让…

解读小红书:零食行业用户洞察报告

随着消费持续升级、零食正作为休闲生活的一部分开始走近更多用户。以日趋多元化的消费需求为导向&#xff0c;零食行业用户又透露出哪些消费特征呢&#xff1f; 本期为大家解读小红书官方发布的《「灵感补给站」小红书2023年零食行业用户洞察报告》&#xff0c;基于上千名用户定…

从状态机的角度async和await的实现原理

一. 深度剖析准备&#xff1a;先给VS安装一个插件ILSpy,这样更容易反编译代码进行查看,另外要注意反编译async和await的时候,要把C#代码版本改为4.0哦。1.什么是状态机(1).含义&#xff1a;通常我们所说的状态机(State Machine)指的是有限状态自动机的简称&#xff0c;是现实事…

6.5、文件传送协议FTP

将某台计算机中的文件通过网络传送到可能相距很远的另一台计算机中&#xff0c;是一项基本的网络应用&#xff0c;即文件传送。 文件传送协议FTP\color{red}文件传送协议\texttt{FTP}文件传送协议FTP (File Transfer Protocol)是因特网上使用得最广泛的文件传送协议。 FTP 提供…

记录--Vue开发历程---音乐播放器

这里给大家分享我在网上总结出来的一些知识&#xff0c;希望对大家有所帮助 一、audio标签的使用 1、Audio 对象属性 2、对象方法 二、效果 效果如下&#xff1a; 三、代码 代码如下&#xff1a; MusicPlayer.vue <template><div class"music"><!-- 占…

【QFD】质量保证需求

QFD体系把前端商业策略成果和产品有效开发紧密连接起来工具。QFD是强调需求与功能的对应&#xff0c;验证确定的市场需求与产品功能设计的关联性&#xff0c;与功能之间&#xff0c;与需求之间的矛盾性&#xff0c;也叫质量屋。 1.什么是QFD 什么是QFD质量功能展开&#xff0…

代码随想录第59天|503.下一个更大元素II ● 42. 接雨水

503.下一个更大元素2 和下一个更大元素基本相同&#xff0c;就多了一个循环数组的问题 处理方法&#xff1a; 循环的次数*2 利用i%nums.size()得到处理的下标&#xff0c;这样当遍历到nums的最后一个元素的时候&#xff0c;向单调栈中插入其下标nums.size()-1,之后将其与下标n…

C语言进阶(7)——联合体和枚举

文章目录1 枚举1.1 含义1.2 定义1.3 枚举的优点1.4 枚举的使用2 联合体&#xff08;共用体&#xff09;2.1 联合类型的定义2.2 联合体的特点2.3联合体大小的计算1 枚举 1.1 含义 枚举就是一一列举。 1.2 定义 枚举是定义常量&#xff0c;默认值 0&#xff0c;然后数自增。 …