一,认识小程序
微信⼩程序,简称⼩程序,英⽂名 Mini Program Mini Program ,是⼀种不需要下载安装即可使⽤的应⽤,它实现 了应⽤“触⼿可及”的梦想,⽤⼾扫⼀扫或搜⼀下即可打开应⽤
1-1、微信小程序的优势:
1.微信有广大的受众群体,用微信开发产品更容易触达;
2.推广app或公众号的成本太高。
3.开发适配成本低。
4.容易规模试错,然后快速迭代。
5.跨平台。
可以看出小程序和app使用相比:免安装、免注册、免卸载,方便且实用
为什么要学习小程序
我们上面了解完小程序的优势和历史以后,就知道我们为什么要学习小程序了:
- 依赖微信生态
- 就业面广
- 上手快
学习完微信小程序以后,再去学习百度小程序,抖音小程序,支付宝小程序就很方便了。因为这些小程序api都很相似。
相对于Java,php,python而言,小程序更适合作为编程的入门语言
相对于传统前端开发,我们在学习小程序的同时就可以学习CSS,JavaScript的知识
微信小程序对创业者的优势
- App开发的推广成本过高
- 移动互联网格局已定,用户需求被各路巨头把持,我们要想在移动互联网有一番作为,微信是不可避免的靠山
- 小程序能以最小的成本,最快的速度验证你的商业模式。
微信小程序开发者工具
工欲善其事必先利其器,所以我们在开发小程序之前必须准备好一款适合自己的开发者工具,这里我给大家推荐官方开发者工具。原因有以下几点:
- 官方的所有更新,都会第一时间在官方开发者工具同步
- 有任何问题,可以直接反馈给官方
- 官方开发者工具更新迭代最及时
下面就来教大家如何下载官方开发工具:
官方开发者工具下载地址
https://developers.weixin.qq.com/miniprogram/dev/devtools/stable.HTML
个人建议win7系统安装1.05版本更适合
win10系统安装1.06更适合
微信小程序官网开发指南:https://developers.weixin.qq.com/miniprogram/dev/framework/
下载安装好以后,使用微信扫码登录。首先,进行简单的设置如箭头所指后确认退出。
新建一个小程序,熟悉一下操作界面和基本流程。
如图appID哪里选择自己的ID账号,选择不适用云服务,选择java script确认。
小程序项目的基本组成结构:红色文字代表常用项
pages | 用来存放所有小程序的页面 |
utils | 用来存放工具性质的模块《例如:格式化时间的自定义模块》 |
app.js | 小程序项目的入口文件 |
app.json | 小程序项目的全局配置文件 |
app.wxss | 小程序项目的全局样式文件 |
project.config.json | 项目的配置文件 |
sitemap.json | 用来配置小程序及其页面是否允许被微信索引 |
小程序官方建议把所有小程序的页面,都放在pages目录中,以单独的文件夹存在。
小程序文件和传统web对比:
其中,每个页面由4个基本文件组成,它们分别是:
.js文件 | 页面的脚本文件,存放页面的数据、事件处理函数等 |
.json文件 | 当前页面的配置文件,配置窗口的外观、表现等 |
.wxml文件 | 页面的模板结构文件 |
.wxss文件 | 当前页面的样式表文件 |
以上4个文件夹单独存在,以组合作为一个微信小程序页面。
.json是一种数据格式,在实际开发中,json总是以配置文件的形式出现,小程序项目中也不例外,通过不同的.json配置文件,可以对小程序项目进行不同级别的配置。
小程序项目中有4种.json配置文件,分别是:
- 项目根目录中的 app.json 配置文件
- 项目根目录中的 project.config.json 配置文件
- 项目根目录中的 sitemap.json 配置文件
- 每个页面文件夹中的.json 配置文件
app.json文件
app.json是当前小程序的全局配置,包括了小程序的所有页面路径、窗口外观、界面表现、底部 tab 等。其中,Demo项目里面的app.json配置内容如下:
配置项的作用:
- pages : 用来记录当前小程序所有页面的路径
- window : 全局定义小程序所有页面的背景色、文字颜色等
- style : 全局定义小程序组件所使用的样式版本
- sitemaplocation : 用来指明 sitemap.json的位置
project.config.json文件
project.config.json 是项目配置文件,用来记录我们对小程序开发工具所做的个性化配置,例如:
- setting 中保存了编译相关的配置
- projectname 中保存的是项目名称
- appid 中保存的是小程序的账号ID
sitemap.json 文件
微信现已开放小程序内搜索,效果类似于 PC 网页的 SEO ,sitemap.json文件用来配置小程序页面是否允许微信搜索。
当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引,当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。
重点:sitemap 索引提示是默认开启的,如需要关闭 sitemap 的索引提示,可在小程序项目配置文件 project.config.json 的 setting 中配置字段 checkSiteMap 为 false
页面的.json配置文件
小程序中的每一个页面,可以使用 .json 文件来对本页面的窗口外观进行配置,页面中的配置项会覆盖app.json 的 windows 中相同的配置项,
新建小程序页面
只需要在app.json~pages中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面文件,如图所示:
首先,选中 app.json 在“ pages ”目录下,输入 “ pages/list/list ”新建一个文件夹并“ Ctrl+S ” 键保存,即可在“ pages ”文件夹中就会多出一个" pages/list/list "的文件夹。
修改项目首页:
操作方法:选中app.json~pages 数组中页面路径的前后顺序即可实现修改项目的首页,小程序会把排在第一排的页面,当做项目首页进行渲染,如图:
VXML
wxml是小程序框架设计的一套标签语言,用来构建小程序页面的结构,作用在于类似网页中的HTML。
vxml与html的区别:
- 标签名称不同:
wxml:用(view、text、image、navigator)标签来表示
html:用(div、span、img、a)标签来表示
- 属性节点不同:
wxml:<navigator url="根目录文件 ">~</navigator>
html:<a herf="超链接 ">~</a>
- 提供类似Vue中的模板语法:
数据绑定;
列表渲染;
条件渲染;
wxss
wxss与css区别:
1、新增了rps尺寸单位
- CSS中需要手动进行像素单位换算,例如:rem
- wxss在底层支持新的尺寸单位
2、提供了全局的样式和局部样式
- 项目根目录中的app.wxss会作用于所有小程序页面
- 局部页面的.wxss样式仅对当前页面生效
全局样式.wxss
各个文件夹下的.wxss
3、wxss仅支持部分CSS选择器
- .class和#id
- element
- 并集选择器、后代选择器
- ::after和::before等伪类选择器
小程序中的.js文件
一个项目仅仅提供界面展示是不够的,在小程序中,通过.js文件来处理用户的操作。例如:响应用户的点击,获取用户的位置等。
小程序中.js文件的分类:
- app.js:是整个小程序项目的入口文件,通过使用App(函数)来启动整个小程序。
- 页面的.js文件:是页面的入口文件,通过调用Page(函数)来创建并运行页面
- 普通.js文件:是普通的功能模块文件,用来封装公共的函数或是属性供页面使用。
什么是宿主环境
宿主环境是指程序运行所必须的依赖环境。例如:
Andrioid系统 和 IOS系统他们就可以被称作是两个不同的宿主,搭建的平台不一样运行环境也不一样,彼此间不共通也不共融各自有自己的相应APP程序平台。
小程序宿主环境包括的内容:
- 通信模型
- 运行环境与机制
- 小程序中的组件
- API
- 通讯模型:小程序中通信的主体是渲染层和逻辑层,其中:
- wxml模型和wxss样式工作在渲染层;
- .js脚本工作在逻辑层;
- wxml模型和wxss样式工作在渲染层;由微信客户端进行转发;逻辑层和第三方服务器之间的通信是由微信客户端进行转发;
小程序启动运行机制:
1、启动运行机制:
- 把小程序的代码包下载到本地
- 解析app.json全局配置文件
- 执行app.js小程序入口文件,目的是调用APP(函数)创建小程序实例
- 渲染小程序首页
- 小程序启动完成
2、页面渲染的过程:
- 加载解析页面的.json配置文件
- 加载页面的.wxml 模板和wxss 样式
- 执行页面的.js文件,目的是调用Page(函数)创建页面实例
- 页面渲染完成
小程序中组件的分类
小程序中的组件也是由宿主环境来提供的,开发者可以基于组件快速搭建出漂亮的页面结构,官网把小程序组件分为9大类,分别是:
- 视图容器
- 基础内容
- 表单组件
- 媒体组件
- 导航组件
- map地图组件
- canvas画布组件
- 开放能力
- 无障碍访问
常用视图容器组件:
view
- 普通视图区域
- 类似于htlm中的div,是一个块元素
- 常用来实现页面的布局效果
scroll-view
- 小程序网页中不能全部显示网页内容时,通过滑动上下滚动栏来显示
- 常用来实现页面滚动列表的效果
swiper 和 swiper-item
- 轮播图容器组件和轮播图 item 组件
view组件的基本使用
实现fiex横向布局效果:
首先,在app.json文件夹下创建“ pages/fist/fist ”,就会在“ pages ”文件夹下生成“ pages/fist/fist ”根目录。
接着我们在pages/fist/fist 文件夹下的fist.wxml根目录中新建一个结构标签并ctrl+c保存
<!--pages/fist/fist.wxml-->
<view class="container1">
<view>A</view>
<view>B</view>
<view>C</view>
</view>
fist.wxss根目录样式中,创建
/* pages/fist/fist.wxss */
.container1 view {
width: 100;
height: 100;
text-align: center;
line-height: 100px;
}
然后我们给这组盒子赋予一组背景颜色作为区分。
.container1 view :nth-child(1) {
background-color: lightblue;
}
.container1 view :nth-child(2) {
background-color: lightblue;
}
.container1 view :nth-child(3) {
background-color: lightblue;
}
最后我们再赋予一个盒子横向排列,两边分开对齐
container1 {
display: flex;
justify-content: space-around;
}
scroll-view 组件的基本使用
实现纵向滚动的效果:
<fist .wxml>中
<!--pages/fist/fist.wxml-->
<scroll-view class="container1">
<view>A</view>
<view>B</view>
<view>C</view>
</scroll-view>
<fist.wxss>根目录中
container1 {
border: 1px solid red;
width: 100px;
height: 120px;
}