【微信小程序的开发】初步认识
目录
app.json
实例
标签名称
属性结点
模块语法
rpx尺寸单位
css选择器
小程序宿主环境
通信主体
通信模型
运行机制
视图容器
表单组件
其他常用组件
API
项目结构 top
pages:放页面utils:放模块app.js:小程序入口文件app.json:小程序全局配置app.wxss:全局样式project.config.json:项目配置文件sitemap.json:配置小程序及其页面是否允许被微信索引
页面组成 top
.js:【页面脚本文件】 存放页面数据,事件处理函数.json:【当前页面配置文件】 配置窗口外观。表现.wxml:【页面模块结构文件】wxss:【当前页面的样式文件】
json 配置文件 top
app.json
全局配置 所有页面路径、窗口外观、界面表现、底部tap等
pages:记录所有小程序路径window:全局定义小程序所有页面背景色、文字颜色等style:全局定义小程序组件所使用的样式版本sitemaplocation:指明stiemap.json的位置
project.config.json
对开发者工具的个性化配置
setting:保存编译器相关配置projectname:保存项目名称appid:保存小程序的账号id
sitemap.json
小程序页面是否允许被微信搜索
每个页面的.json
此页面的配置文件,会覆盖全局配置文件
实例
优雅地新建页面
当前有两个页面:index和logs,接下来新建一个list页面

操作方法:在app.json的pages数组中添加list项,并保存

保存后,pages目录下会多一个list文件

一点说明:仔细观察你的 编译器调试窗口,你会发现list页面似乎被覆盖了,如果你和我一样,将list页面写在pages数组的第一行,那编译器目前显示的就是index页面。就是说,页面的显示顺序和路径在pages数组的位置有关。
wxml top
标签语言,构建小程序页面结构
标签名称
view:实现布局text:文本元素image:图像元素navigator:导航跳转
属性结点
<navigator url = "pages/home/home"></navigator>
模版语法
- 数据绑定
- 列表渲染
- 条件渲染
wxss top
样式语言
支持rpx尺寸单位
在不同大小的屏幕上自动单位换算
提供全局样式和局部样式
app.json是全局样式
页面的.json是局部样式
仅支持部分css选择器
.class和#idelement- 并集选择器、后代选择器
::after和::before等伪类选择器
js文件 top
app.js:小程序项目入口,通过调用App()方法启动整个小程序- 页面的js文件:页面的入口文件,通过调用
Page()方法创建并允许此页面 - 普通的js文件:功能模块文件,封装公共函数或属性
宿主环境 top
程序运行所必须依赖的环境

所以微信是小程序的宿主环境
小程序宿主环境
- 通信模型
- 运行机制
- 组件
- API
通信主体
通信的主体的渲染层和逻辑层

通信模型
1、逻辑层和渲染层
2、逻辑层和第三方渲染器

均由微信客户端进行转发
运行机制
启动过程
- 把小程序的代码包下载到本地
- 解析
app.json全局配置文件 - 执行
app.js小程序入口文件,调用APP()创建小程序实例 - 渲染小程序首页
- 小程序启动完成
页面渲染过程
- 加载解析页面的
.json配置文件 - 加载页面的
wxml模版和wxss样式 - 执行页面的
.js文件,调用Page()创建页面实例 - 页面渲染完成
组件 top
由宿主环境提供
常用组件
- 视图容器
- 基础内容
- 表单组件
- 导航组件
常见视图容器
view:普通视图容器,块级元素,实现布局效果scroll-view:实现滚动的列表视图swiper和swiper-item:轮播图容器组件和轮播图项目组件
实例1
实现如下效果

首先要将list设置为首页,方法之前提过
修改list.wxml
<!--pages/list/list.wxml-->
<!--view 默认占满一行-->
<view class = "container1">
<view>A</view>
<view>B</view>
<view>C</view>
</view>
修改list.wxss文件
/* 设置container的格式*/
.container1 view{
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
/* 设置子container1的颜色*/
.container1 view:nth-child(1){
background-color: lightblue;
}
.container1 view:nth-child(2){
background-color: lightgreen;
}
.container1 view:nth-child(3){
background-color: lightyellow;
}
.container1 {
/* 横向放置*/
display: flex;
/* 分散对齐*/
justify-content: space-around
}
实例2
实现如下滚动效果:

修改list.wxml
<!--轮播图区域-->
<!--indicator-dots 属性:显示面板指示点-->
<!--使用纵向滚动时,必须给scroll-view一个固定高度-->
<swiper class = "swiper-container" indicator-dots>
<!--第一项-->
<swiper-item>
<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>
修改list.wxss文件
/* 设置container的格式*/
.swiper-container{
height: 150px; /* 设置轮播图容器高度*/
}
/* 设置item样式*/
.item {
height: 100%;
line-height: 150px;
text-align: center;
}
/* item添加背景色*/
/* nth-child(1) .item 中间有一个空格,表示逗号*/
swiper-item:nth-child(1) .item{
background-color: lightblue;
}
swiper-item:nth-child(2) .item{
background-color: lightyellow;
}
swiper-item:nth-child(3) .item{
background-color: lightgreen;
}
注意看和实例1的不同之处
实例3
实现轮播图效果:
修改list.wxml
<!--scroll-x属性:允许横向滚动-->
<!--scroll-y属性:允许纵向滚动-->
<!--使用纵向滚动时,必须给scroll-view一个固定高度-->
<scroll-view class = "container1" scroll-y>
<view>A</view>
<view>B</view>
<view>C</view>
</scroll-view>
修改list.wxss文件
/* 设置container的格式*/
.container1 view{
width: 100px;
height: 100px;
text-align: center;
line-height: 100px;
}
/* 设置子container1的颜色*/
.container1 view:nth-child(1){
background-color: lightblue;
}
.container1 view:nth-child(2){
background-color: lightgreen;
}
.container1 view:nth-child(3){
background-color: lightyellow;
}
.container1 {
border: 1px solid red;
/* 给scroll-view固定高度*/
height: 120px;
width: 100px;
}
swiper组件的常用属性

表单组件
text文本组件,行内元素rich-text富文本组件把html字符串渲染为wxml结构
实例
实现如下效果:

修改list.wxml
<!-- text 和 rich-text 的用法-->
<view>
手机支持长按选中的效果
<text user-select>985211</text>
</view>
<rich-text nodes="<h1 style = 'color: red;'>标题</h1>"></rich-text>
使用rich-text的场景:当得到html文件时,需要渲染为wxml文件
注:手机的长按选中效果要在真机上测试
点预览:

其他常用组件
button:按钮组件image:图片组件,默认宽300px,高240pxnavigator:页面导航组件
button实例
效果如下:

修改list.json:
<view> ~~~~~~~~~通过type指定类型~~~~~~~ </view>
<button>默认按钮</button>
<button type="primary">原始按钮</button>
<button type="warn">警告按键</button>
<view> ~~~~~~~~~~size = "mini"~~~~~~~~~~ </view>
<button size="mini">小按钮</button>
<button type="warn" size="mini">小warn</button>
<view> ~~~~~~~~~~plain镂空效果~~~~~~~~~~ </view>
<button plain>镂空</button>
image组件
先来个实例:

修改list.wxml:
<!--渲染空图片-->
<image></image>
<!--使用src指定图片位置-->
<image src="/pages/images/a.jpg" mode="widthFix"></image>
修改list.wxss:
image {
border: lightblue 1px solid;
}
mode属性
scaleToFill:默认值,使图片拉伸填充至整个image元素(不按比例缩放aspectFit:完整显示长边aspectFill:完整显示短边widthFix:宽度同image元素,高度自动变化heightFix:高度同image元素,宽度自动变化
我的思考:除非image元素和图片的比例一样,不然都是要缩放的图片的长宽、image元素的长宽及image元素的比例共五个标准,对应上面五个属性。
API
官方分为三大类
- 事件监听API:以
on开头,监听某些事件的触发 - 同步API:以
Sync结尾,结果是函数返回值或异常 - 异步API:需要通过
success,fail,complete接收结果
【微信小程序的开发】初步认识的更多相关文章
- 《微信小程序商城开发实战》笔者的新书,欢迎各位粉丝上京东购买
作者图书京东链接,请点击------>>> **微信小程序商城开发实战** 附京东真实评价截图: 编辑推荐 在当今移动互联网大潮中,微信应用凭借其庞大的用户基数和极强的用户黏性 ...
- 微信小程序如何开发制作
微信小程序如何开发制作 微容SMO是一款微信小程序的免费在线制作工具,用户在微容平台上无需编辑代码,可通过拖拽式操作即可完成小程序的制作,真正意义上实现了小程序零代码免费制作! 消除技术门槛:无需代码 ...
- 【推荐】开源项目minapp-重新定义微信小程序的开发
minapp 重新定义微信小程序的开发 官网:https://qiu8310.github.io/minapp/ 作者:Mora minapp 重新定义微信小程序的开发 使用 用 npm 安装命令行工 ...
- 微信小程序快速开发上手
微信小程序快速开发上手 介绍: 从实战开发角度,完整系统地介绍了小程序的开发环境.小程序的结构.小程序的组件与小程序的API,并提供了多个开发实例帮助读者快速掌握小程序的开发技能,并能自己动手开发出小 ...
- 微信小程序wepy开发循环wx:for需要注意
微信小程序wepy开发循环wx:for需要注意 item index值必须在wx:for之后使用 <view wx:for="{{tablist}}" class=" ...
- Mac上微信小程序官方开发工具卡死的问题
Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...
- 技本功丨收藏!斜杠青年与你共探微信小程序云开发(下篇)
2019年2月26日,人们为了一个杯子疯了一天. 星巴克猫爪杯,一场已经与猫无关了的“圣杯战争“.网上的倒卖价格,已炒至近千元! 求而不得,舍而不能,得而不惜.这是人最大的悲哀... 所以,请珍惜以下 ...
- 微信小程序-云开发(手记)
微信小程序-云开发(手记) 1.创建data.json文件 注意以下几点要求: 入门示例: init方法的env:默认环境配置,传入字符串形式的环境 ID(理解为数据库)可以指定所有服务的默认环境(意 ...
- 微信小程序快速开发
微信小程序快速开发 一.注册小程序账号,下载IDE 1.官网注册https://mp.weixin.qq.com/,并下载IDE. 2.官方文档一向都是最好的学习资料. 注意:1)注册账号之后会有一个 ...
- 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作
爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...
随机推荐
- [OpenCV-Python] 23 图像变换
文章目录 OpenCV-Python:IV OpenCV中的图像处理 23 图像变换 23.1 傅里叶变换 23.1.1 Numpy 中的傅里叶变换 23.1.2 OpenCV 中的傅里叶变换 23. ...
- python列表函数的基本使用
一.列表简介 序列是Python最常见的操作,是最经常使用的一种数据操作.列表是当前序列中使用最多的. 序列中的每一个值对应的位置,称之为索引.通常情景下,第一个索引是位置为0,第二个索引位置为1.. ...
- iview中时间选择器组件改变日期格式
//改变视图的显示格式,但不会改变value的值的格式 format="yyyy-MM-dd" //改变value值的格式 @on-change="anZhuangDat ...
- 2022-11-24:小团在地图上放了3个定位装置,想依赖他们进行定位! 地图是一个n*n的棋盘, 有3个定位装置(x1,y1),(x2,y2),(x3,y3),每个值均在[1,n]内。 小团在(a,
2022-11-24:小团在地图上放了3个定位装置,想依赖他们进行定位! 地图是一个n*n的棋盘, 有3个定位装置(x1,y1),(x2,y2),(x3,y3),每个值均在[1,n]内. 小团在(a, ...
- 2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析?
2022-04-06:go中proto文件能跨平台,那是因为能生成不同语言的代码,做框架开发用protoc+插件生成代码是不合适的,需要解析,请问如何解析? 答案2022-04-06: go get ...
- 安装vue cli3以及配置环境 镜像下载
安装vue cli3以及配置环境 镜像下载 1.下载安装Node.js 安装vue cli3之前需要先安装Node.js,方便对vue进行下载 node.js的下载与安装方法在隔壁哟 地址:https ...
- 2014年蓝桥杯C/C++大学B组省赛真题(蚂蚁感冒)
题目描述: 长100厘米的细长直杆子上有n只蚂蚁.它们的头有的朝左,有的朝右. 每只蚂蚁都只能沿着杆子向前爬,速度是1厘米/秒.当两只蚂蚁碰面时,它们会同时掉头往相反的方向爬行.这些蚂蚁中,有1只蚂蚁 ...
- Linux,会这些就够了
在测试当中,其实对Linux的要求不高,我们在工作中需要记住常用的一些命令,不常用的实际用到的时候再查在记即可,最重要我们要使用命令可以查看日志,定位bug 目录篇: 可用 pwd 命令查看用 ...
- ODOO13之十四 :Odoo 13开发之部署和维护生产实例
本文中将学习将 Odoo 服务器作为生产环境的基本准备.安装和维护服务器是一个复杂的话题,应该由专业人员完成.本文中所学习的不足以保证普通用户创建应对包含敏感数据和服务的健壮.安全环境. 本文旨在介绍 ...
- day09-SpringCloud Sleuth+Zipkin-链路追踪
SpringCloud Sleuth+Zipkin-链路追踪 官网:spring-cloud/spring-cloud-sleuth: Distributed tracing for spring c ...