微信小程序概述
2024-05-16 13:59:00 0 举报
AI智能生成
微信小程序
作者其他创作
大纲/内容
页面布局
盒子模型
概念:微信小程序的视图层由WXML 和WXSS组成。 其中, WXSS (WeiXINStyleSheets) 是基于CSS 拓展的样式语言, 用于描述WXML 的组成样式, 决定WXML的组件如何显示。WXSS 具有CSS的大部分特性, 因此, 本章将重点讲解CSS 中的布局相关内容。
块元素与行内元素
块级元素
概念:块级元素默认占一行高度, 一行内通常只有一个块级元素(浮动后除外), 添加新的块级元素时, 会自动换行, 块级元素一般作为盒子出现。
(1) 一个块级元素占一行。
(2) 块级元素的默认高度由内容决定, 除非自定义高度。
(3) 块级元素的默认宽度是父级元素的内容区宽度, 除非自定义宽度。
(4) 块级元素的宽度、高度、外边距及内边距都可以自定义设置。
(5) 块级元素可以容纳块级元素和行内元素。
(2) 块级元素的默认高度由内容决定, 除非自定义高度。
(3) 块级元素的默认宽度是父级元素的内容区宽度, 除非自定义宽度。
(4) 块级元素的宽度、高度、外边距及内边距都可以自定义设置。
(5) 块级元素可以容纳块级元素和行内元素。
行内元素
概念:行内元素, 不必从新一行开始, 通常会与前后的其他行内元素显示在同一行中, 它们不占有独立的区域, 仅靠自身内容支撑结构, 一般不可以设置大小, 常用于控制页面中文本的样式。 将一个元素的display 属性设置为inline 后, 该元素即被设置为行内元素。
行内元素的特点
(1) 行内元素不能被设置高度和宽度, 其高度和宽度由内容决定。
(2) 行内元素内不能放置块级元素, 只级容纳文本或其他行内元素。
(3) 同一块内, 行内元素和其他行内元素显示在同一行。
(1) 行内元素不能被设置高度和宽度, 其高度和宽度由内容决定。
(2) 行内元素内不能放置块级元素, 只级容纳文本或其他行内元素。
(3) 同一块内, 行内元素和其他行内元素显示在同一行。
行内块元素
概念:当元素的display 属性被设置为inline-block时, 元素被设置为行内块元素。 行内块元素可以被设置高度、宽度、内边距和外边距。
浮动与定位
元素浮动与清除
概念:元素浮动就是指设置了浮动属性的元素会脱离标准文档流的控制, 移到其父元素中指定位置的过程。 在CSS中, 通过float 属性来定义浮动
元素定位
默认值 (static)
相对定位 (relative)
绝对定位 (absolute)
固定定位 (fixed)
flex布局
概念:flex 布局是万维网联盟(WoeldWideWebConsortium,W3C) 在2009 年提出的一种新布局方案, 该布局可以简单快速地完成各种可以伸缩的设计, 以便很好地支持响应式布局。flex 是flexiblebox 的缩写, 意为弹性盒子模型, 可以简便、完整、响应式地实现各种页面布局。
布局
flex 布局主要由容器和项目组成, 采用flex 布局的元素称为flex容器(flexcontainer),flex 布局的所有直接子元素自动成为容器的成员, 称为flex项目(flexitem)。
容器默认存在两根轴: 水平的主轴和垂直的交叉轴。 主轴的开始位置(与边框的交叉点) 叫做mainstart, 结束位置叫做mained; 交叉轴的开始位置叫做crosstart, 结束位置叫做crossend。 项目默认沿主轴排列。 单个项目占据的主轴空间叫做mainsize, 占据的交叉轴空间叫做crossize。 flex 布局模型如图所示。
设置display 属性可以将一个元素指定为flex布局, 设置flex-direction属性可以指定主轴方向。 主轴既可以是水平方向, 也可以是垂直方向。
设置display 属性可以将一个元素指定为flex布局, 设置flex-direction属性可以指定主轴方向。 主轴既可以是水平方向, 也可以是垂直方向。
容器属性
flex容器支持的属性又七种,如图所示:
页面组件
组件的定义及属性
概念:组件是页面视图层(WXML)的基本组成单元,组件组合可以构建功能强大的页面结构。小程序框架为开发者提供了容器视图、基础内容、表单、导航、多媒体、地图、画布、开放能力等8类(30多个)基础组件。
组件通过属性来进一步细化。不同的组件可以有不同的属性,但它们也有一些共用属性,如id、class、style、hidden、data-∗、bind∗/catch∗等。
■ id组件的唯一表示,保持整个页面唯一,不常用。
■ class组件的样式类,对应WXSS中定义的样式。
■ style组件的内联样式,可以动态设置内联样式。
■ hidden组件是否显示,所有组件默认显示。
■ data-∗ 自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可以通过传入参数对象的currentTarget. dataset方式来获取自定义属性的值。
■ bind∗/catch∗ 组件的事件,绑定逻辑层相关事件处理函数。
■ id组件的唯一表示,保持整个页面唯一,不常用。
■ class组件的样式类,对应WXSS中定义的样式。
■ style组件的内联样式,可以动态设置内联样式。
■ hidden组件是否显示,所有组件默认显示。
■ data-∗ 自定义属性,组件触发事件时,会发送给事件处理函数。事件处理函数可以通过传入参数对象的currentTarget. dataset方式来获取自定义属性的值。
■ bind∗/catch∗ 组件的事件,绑定逻辑层相关事件处理函数。
容器视图组件
概念:容器视图组件是能容纳其他组件的组件,是构建小程序页面布局的基础组件,主要包括view、scroll-view和swiper组件。
view
概念:view组件是块级组件,没有特殊功能,主要用于布局展示,相当于HTML中的div,是布局中最基本的用户界面(User Interface, UI)组件,通过设置view的CSS属性可以实现各种复杂的布局。
view组件的特有属性
scroll-view
scroll-view组件的相关属性
swiper
概念:swiper组件可以实现轮播图、图片预览、滑动页面等效果。一个完整的swiper组件由<swiper/ >和<swiper-item/ >两个标签组成,它们不能单独使用。<swiper/ >中只能放置一个或多个<swiper-item/ >,若放置其他组件则会被删除;<swiper-item/ >内部可以放置任何组件,默认宽高自动设置为100%。
基础内容组件
概念:基础内容组件包括icon、text和progress,主要用于在视图页面中展示图标、文本和进度条等信息。
icon
概念:icon组件即图标组件,通常用于表示一种状态,如success、info、warn、waiting、cancel等。
icon组件属性
text
概念:text组件用于展示内容,类似HTML中的<span >, text组件中的内容支持长按选中,支持转义字符“\”,属于行内元素。
progress
概念:progress组件用于显示进度状态,如资源加载、用户资料完成度、媒体资源播放进度等。
表单组件
概念:表单组件的主要功能是收集用户信息,并将这些信息传递给后台服务器,实现小程序与用户之间的沟通。表单组件不仅可以放置在<form/ >标签中使用,还可以作为单独组件和其他组件混合使用。
button
概念:button组件用来实现用户和应用之间的交互,同时按钮的颜色起引导作用。一般来说,在一个程序中一个按钮至少有3种状态:默认点击(default)、建议点击(primary)、谨慎点击(warn)。在构建项目时,应在合适的场景使用合适的按钮,当<button>被<form/ >包裹时,可以通过设置form-type属性来触发表单对应的事件。
radio
概念:单选框用来从一组选项中选取一个选项。在小程序中,单选框由<radio-group/ >(单项选择器)和<radio/ >(单选项目)两个组件组合而成,一个包含多个 <radio/ >的<radio-group/ >表示一组单选项,在同一组单选项中<radio/ >是互斥的,当一个按钮被选中后,之前选中的按钮就变为非选。
checkbox
概念:复选框用于从一组选项中选取多个选项,小程序中复选框由 <checkbox -group/ >(多项选择器)和<checkbox/ >(多选项目)两个组件组合而成。一个<checkbox-group/ >表示一组选项,可以在一组选项中选中多个选项。
switch
switch组件的作用类似开关选择器,其属性如表
slider
概念:slider组件为滑动选择器,可以通过滑动来设置相应的值
picker
概念:picker组件为滚动选择器,当用户点击picker组件时,系统从底部弹出选择器供用户选择。picker组件目前支持5种选择器,分别是:selector(普通选择器)、multiSelector(多列选择器)、time(时间选择器)、date(日期选择器)、region(省市选择器)。
picker-view
概念:picker-view组件为嵌入页面的滚动选择器。相对于picker组件,picker-view组件的列的个数和列的内容由用户通过<picker-view-column/ >自定义设置。
input
nput组件为输入框,用户可以输入相应的信息,其属性如表
textarea
textarea组件为多行输入框组件,可以实现多行内容的输入。
laber
概念:label组件为标签组件,用于提升表单组件的可用性。label组件支持使用for属性找到对应的id,或者将控件放在该标签下,当点击label组件时,就会触发对应的控件。for属性的优先级高于内部控件,内部有多个控件的时候默认触发第一个控件。
form
概念:form组件为表单组件,用来实现将组件内的用户输入信息进行提交。当<form/ >表单中formType为submit的<button/ >组件时,会将表单组件中的value值进行提交。
多媒体组件
image
image组件为图像组件,与HTML中的 <img/ >类似
audio
audio组件用来实现音乐播放、暂停等
video
video组件用来实现视频的播放、暂停等。
camera
camera组件为系统相机组件,可以实现拍照或录像功能。在一个页面中,只能有一个camera组件。在开发工具中运行时,使用电脑摄像头实现拍照或录像;在手机中运行时,使用手机前后摄像头实现拍照或录像。
其他组件
map
概念:map组件用于在页面中显示地图或路径,常用于LBS(基于位置服务)或路径指引,功能相对百度地图、高德地图较简单,目前具备绘制图标、路线、半径等能力,不能在croll-view、swiper、picker-view、movable-view组件中使用。
canvas
canvas组件用来绘制图形,相当于一块无色透明的普通图布。canvas组件本身并没有绘图能力,仅仅是图形容器,通过绘图API实现绘图功能。
微信小程序概述
认识小程序
小程序简介
微信(WeChat)小程序是腾讯公司于2011年1月21日退出的一款智能终端提供即时通信(Instant Messaging,IM)服务的应用程序,小程序是一种不需要下载安装级可使用的应用。
小程序的特征
无需安装、触手可及、用完即走、无需卸载
小程序应用场景的特点
简单的业务逻辑
低频度的使用场景
微信小程序开发流程
注册小程序账号
开发环境准备
微信开发工具的下载及安装
创建第一个小程序项目
运行及发布小程序
微信开发者功能介绍
工具栏
实现多种功能,例如账号切换,小程序编译、清理存缓、预览等
模拟区
在模拟区中选择手机类型、显示比例、网络类型,模拟器会显示运行效果
目录文件区
用来显示当前的目录结构
编辑区
用来实现对代码的编辑操作,编辑区中支持对.wxml、.wxss、.js及.json文件的操作
调试区
调试区的功能是帮助开发者进行代码调试及排查有问题的区域,小程序系统为开发者提供了9个调试功能模块,分别是Console、Sources、Nekwork、Security、Storage、AppData、Wxml、Sensor和Trace。最右边的扩展菜单项:是控制开发工具按钮。
微信小程序开发基础
小程序的基本目录结构
主页文件
微信小程序的主体部分由3 个文件组成, 这3 个文件必须放在项目的主目录中, 负责小程序的整体配置, 它们的名称是固定的。
app.js:小程序逻辑页面,主要用来注册小程序全局实例。
app.json:小程序公共配置文件,配置小程序全局设置。
app.wxss:小程序主样式表文件,类似的HTML的.CSS文件。
页面文件
小程序通常是由多个页面组成的, 每个页面包含4 个文件, 同一页面的这4 个文件必须具有相同的路径与文件名。 当小程序被启动或小程序内的页面进行跳转时, 小程序会根据app.json设置的路径找到相对应的资源进行数据绑定。
.js文件:页面逻辑文件,在该文件中编写JavaScript代码控制页面的逻辑。
.wxml:页面结构文件,用于设计页面的布局、数据绑定等。
.wxss:页面样式表文件,用于定义本页面中用到的各类样式表。
.json:页面配置文件,该文件在页面中不可缺少。
小程序开发框架
视图层
MINA框架的视图层由WXML与WXSS 编写,由组件来进行展示,.wxml文件用于描述页面的结构; .wxss文件用于描述页面的样式。
逻辑层
逻辑层用于处理事务逻辑。
微信小程序开发框架的逻辑层是采用javaScrict编写的。 在javaScrict的基础上, 微信团队做了适当修改, 以便提高开发小程序的效率。 主要修改包括:
增加app()和Page()方法, 进行程序和页面的注册。
提供丰富的API, 如扫一扫、支付等微信特有的能力。
每个页面有独立的作用域, 并提供模块化能力。
数据层
数据层在逻辑上包括页面临时数据或缓存文件存储(本地存储)和网络存储与调用。
(1)页面临时数据或缓存
(2)文件存储(本地存储)
wx.getStorage:获取本地数据缓存
wx.setStorage:设置本地数据缓存
wx.clearStorage:清理本地数据缓存
(3)网络存储与调用
wx.request: 发起网络请求
wx.uploadFile: 上传文件
wx.downloadFile: 下载文件
调用URL的API接口,如下:
wx.navigateTo :新窗口打开页面
wx.redirectTo: 原窗口打开页面
(2)文件存储(本地存储)
wx.getStorage:获取本地数据缓存
wx.setStorage:设置本地数据缓存
wx.clearStorage:清理本地数据缓存
(3)网络存储与调用
wx.request: 发起网络请求
wx.uploadFile: 上传文件
wx.downloadFile: 下载文件
调用URL的API接口,如下:
wx.navigateTo :新窗口打开页面
wx.redirectTo: 原窗口打开页面
配置文件
全局配置文件
小程序的全局配置保存在全局配置文件(app.json) 中, 使用全局配置文件来配置页面文件(pages) 的路径、设置窗口(window) 表现、设定网络请求API 的超时时间值(netwoekTimeout) 以及配置多个切换页(tabBar) 等。
Pages配置项
设置Pages配置时要注意以下三点:
(1)数组的第一项用于设定小程序的初始页面
(2)在小程序新准则或减少页面时,都需要对数组进行修改
(3)文件名不需要写文件扩展名
(1)数组的第一项用于设定小程序的初始页面
(2)在小程序新准则或减少页面时,都需要对数组进行修改
(3)文件名不需要写文件扩展名
widow配置项
widow配置项负责设置小程序状态栏、导航栏、窗口背景等系统样式
taBar配置项
当需要在程序顶部或底部设置菜单栏时,可以通过taBar配置项来实现
networkTimeout配置项
小程序中各种网络请求API的超时时间值只能通过networkTimeout配置项统一设置,不能单独在API中设置,显示颜色就近原则。
debug配置项
用于开发者工具的调试模式,默认为false.
页面配置文件
页面配置文件(*.json) 只能设置本页面的窗口表现, 而且只能设置window配置项的内容。 在配置页面配置文件后, 页面中的window配置值将覆盖全局配置文件(app.json) 中的配置值。
逻辑文件
项目逻辑文件
项目逻辑文件app.js中可以通过App()函数注册小程序生命周期函数、全局属性和全局方法, 已注册的小程序实例可以在其他页面逻辑文件中通过getApp()获取。
页面逻辑文件
页面逻辑文件的主要功能有: 设置初始数据; 定义当前页面的生命周期函数; 定义事件处理函数等。 每个页面文件都有一个相应的逻辑文件, 逻辑文件是运行在纯javaScrict引擎中。 因此, 在逻辑文件中不能使用浏览器提供的特有对象(document、window) 及通过操作DOM改变页面, 只能采用数据绑定和事件响应来实现。
页面文件
页面结构文件(WXML) 是框架设计的一套类似HTML的标签语言, 结合基础组件、事件系统, 可以构建出页面的结构, 即.wxml 文件。 在小程序中, 类似HTML的标签被称为组件, 是页面结构文件的基本组成单元。
数据绑定
简单绑定
简单绑定是指使用双大括号({{}})将变量包起来, 在页面中直接作为字符串输出使用。简单绑定可以作用于内容、组件属性、控制属性等的输出。
运算
在{{}} 内可以做一些简单的运算(主要有算术运算、逻辑运算、三元运算、字符串运算等), 这些运算均应符合JavaScript 运算规则。
条件数据绑定
1.wx:if条件数据绑定wx:if条件数据绑定是指使用wx:if 这个属性来判断是否数据绑定当前组件。 当需要添加多个分支块时, 可以使用wx:elif、wx:else属性。 当控制表达式为true 时,数据绑定一个分支; 当控制表达式为false 时, 数据绑定另一个分支。
2.block:wx:if 条件数据绑定
2.block:wx:if 条件数据绑定
列表数据绑定
概念:列表数据绑定用于将列表中的各项数据进行重复数据绑定。
模板
概念:在小程序中, 如果要经常使用几个组件的组合(如“登录” 选项), 通常把这几个组件结合定义为一个模板, 以后在需要的文件中直接使用这个模板。
引用页面文件
在WXML文件中, 不仅可以引用模板文件, 还可以引用普通的页面文件。 WXML 提供了两种方式来引用其他页面文件。
1.import方式
2.Include方式
1.import方式
2.Include方式
页面事件
页面事件
简单来说, 小程序中的事件是用户的一种行为或通信方式。 在页面文件中, 通过定义事件来完成页面与用户之间的交互, 同时通过事件来实现视图层与逻辑层的通信。 我们可以将事件绑定到组件上, 当达到触发条件时, 事件就会执行逻辑层中对应的事件处理函数。
定义事件函数
概念:在.js文件中定义事件函数来实现相关功能, 当事件响应后就会执行事件处理代码。
概念:在.js文件中定义事件函数来实现相关功能, 当事件响应后就会执行事件处理代码。
调用事件
概念:调用事件也称为注册事件。
概念:调用事件也称为注册事件。
冒泡事件
概念:冒泡事件是指某个组件上的事件被触发后, 事件会向父级元素传递, 父级元素再向其父级元素传递, 一直到页面的顶级元素。
概念:冒泡事件是指某个组件上的事件被触发后, 事件会向父级元素传递, 父级元素再向其父级元素传递, 一直到页面的顶级元素。
非冒泡事件
概念: 非冒泡事件是指某个组件上的事件被触发后, 该事件不会向父节点传递。
概念: 非冒泡事件是指某个组件上的事件被触发后, 该事件不会向父节点传递。
页面样式文件
尺寸单位
由于CSS原有的尺寸单位在不同尺寸的屏幕中得不到很好的呈现,WXSS在此基础上增加了尺寸单位rps (respnesivepixel)。 WXSS规定屏幕宽度为750rps, 在系统数据绑定过程中rpx会按比例转化为px。
样式导入
为了便于管理WXSS文件, 我们可以将样式存放于不同的文件中。 如果需要在某个文件中引用另一个样式文件, 使用@import语句导入即可。
选择器
目前,WXSS 仅支持CSS中常用的选择器, 如.class、#id、element、beforee、aftert等。
WXSS常用属性
WXSS常用属性表
0 条评论
下一页