微信小程序——认识微信小程序

认识小程序

小程序与普通网页开发的区别

  1. 运行环境不同
    1. 网页运行在浏览器环境中,小程序运行在微信环境中
  2. API不同
    1. 由于运行环境不同,所以小程序中,无法调用DOM和BOM的API。
    2. 但是,小程序中可以调用微信环境提供的各种API,例如:地理定位,扫码,支付
  3. 开发模式不同
    1. 网页的开发模式:浏览器+代码编辑器
    2. 小程序有自己的一套标准开发模式:申请小程序开发账号,安装小程序开发者工具,创建和配置小程序项目

微信公众平台:

微信公众平台 (qq.com)

微信开发文档

微信官方文档 | 微信开放文档 (qq.com)

获取AppID

在注册微信公众平台之后,可以在个人中心查看自己的AppID,这个ID就是用在小程序的开发中。

小程序代码的构成——项目结构

了解项目的基本组成结构

  1. pages用来存放所有小程序的页面
    1. index是默认页面所在的文件夹
  2. .eslint.js Eslint 配置文件,在安装eslint之后可以使用这个文件配置eslint
  3. app.js小程序项目的入口文件
  4. app.json小程序项目的全局配置文件
  5. app.wxss小程序项目的全局样式文件
  6. project.config.json项目的配置文件
  7. sitemap.json用来配置小程序及其页面是否允许被微信索引

小程序页面的组成部分

小程序官方建议把所有小程序的页面,都存放在pages目录中,以单独的文件夹存在,也即是说微信希望我们把与这个页面有关的文件,包括页面本体文件,页面样式文件,页面js文件等与页面相关的所有文件都放在一个文件夹中,方便管理。

其中,每个页面由四个基本文件组成,他们分别是

  1. .js文件:页面的脚本文件,存放页面的数据,事件处理函数等等
  2. .json文件:当前页面的配置文件,配置窗口的外观,表现等
  3. .wxml文件:页面的模板结构文件,对标html文件
  4. .wxss文件:当前页面的样式表文件,对标css文件
1.JSON配置文件的作用

JSON是一种数据格式,在实际开发中,JSON总是以配置文件的形式出现。小程序项目中也不例外:通过不同的.json配置文件,可以对小程序项目进行不同级别的设置

小程序项目中有4中json配置文件,分别是:

  1. 项目根目录中的app,json配置文件
  2. 项目根目录中的project.config.json配置文件
  3. 项目根目录中的sitemap.json配置文件
  4. 每个页面文件夹中的.json配置文件
2.app.json文件

app.json是当前小程序的全局配置,包括了小程序的所有页面路径,窗口外观,界面表现,底部tab等。Demo项目里面的app.json配置内容如下:

  1. pages:用来记录当前小程序所有页面的路径
  2. windows:全局定义小程序所有页面的背景色,文字颜色等
  3. style:全局定义小程序组件所使用的样式版本,默认v2为新版样式,删除即可使用旧版样式
project.config.json文件

project.config.json是项目的配置文件,用来记录我们对小程序开发工具所做的个性化设置,例如:

  1. setting中保存了编译相关的配置
  2. projectname中保存的是项目名称
  3. appid中保存的是账号ID的相关信息

sitemap.json文件

 微信现已开放小程序内搜索,效果类似于PC网页的SEO。sitemap.json文件用来配置小程序页面是否允许微信索引。

当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将很可能展示在搜索结果中。

page属性的星号表示所有的页面都配置索引,action的allow属性表示配置索引,如果不想被索引则将action的值配置为disallow。

sitemap的索引提示是默认开启的,如需要关闭sitemap的索引提示,可在小程序项目配置文件poject.config.json的setting的字段checkSiteMap为false

这个好像在新版本中已经被删除了,没有这个属性,也没有这个提示。就算手动加上这个属性也不会有任何的效果。

页面的.json配置文件

小程序中的每一个页面,都可以使用.json文件来对本页面的窗口外观进行配置,页面中的配置项会覆盖掉全局配置文件中的相同配置项。

也就是说优先级是就近原则。

小程序的宿主环境——宿主环境简介

什么是宿主环境

宿主环境(host environment)指的是程序运行所必须的依赖环境。例如:

  1. Android系统和ios系统是两个不同的宿主环境。安卓版的微信App是不能在ios环境下运行的,所以,Android是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的。

小程序的宿主环境

手机微信是小程序的宿主环境。

小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如:

微信扫码,微信支付,微信登陆,地理定位,ETC……

小程序宿主环境包含的内容

  1. 通信模型
  2. 运行机制
  3. 组件
  4. API

1.通信模型——通信的主体

小程序中通信的主体是渲染层和逻辑层,其中:

  1. WXML模板和WXSS样式工作在渲染层
  2. JS脚本工作在逻辑层

小程序的通信模型

  1. 渲染层和逻辑层的通信
    1. 由微信客户端进行转发
  2. 逻辑层和第三方服务器之间的通信
    1. 由微信客户端进行转发

2.运行机制

小程序启动的过程

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

页面渲染的过程

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

3.组件

小程序中组件的分类

小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。官方把小程序的组件分成了9大类,分别是:

  1. 视图容器
  2. 基础内容
  3. 表单组件
  4. 导航组件
  5. 媒体组件
  6. map地图组件
  7. canvas画布组件
  8. 开放能力
  9. 无障碍访问

其中前四个是比较重要的组件,是重点关注的对象

常用的视图容器类组件

  1. view
    1. 普通的视图区域
    2. 类似于HTML中的div,是一个块级元素
    3. 常用来实现页面的布局区域
  2. scroll-view
    1. 可滚动的试图区域
    2. 常用来实现滚动列表效果
  3. swiper和swiper-item
    1. 轮播图容器组件和轮播图item项组件

view组件的基本使用

实现flex横向布局效果:

结构代码如下:

<view class="container">

  <view>A</view>

  <view>B</view>

  <view>C</view>

</view>

样式代码如下:

.container view{

  text-align: center;

  line-height: 100px;

  width: 100px;

  height: 100px;

}

.container{

  justify-content: space-around; /* 均匀排列每个元素每个元素周围分配相同的空间 分散对齐*/

  display: flex; /* 弹性布局块内元素 横向布局*/

}

.container view:nth-child(1){

  background-color: red;

}

.container view:nth-child(2){

  background-color: blue;

}

.container view:nth-child(3){

  background-color: yellow;

}

scroll-view组件的基本使用

实现如图所示的纵向滚动效果:

结构代码如下:

<scroll-view class="scroll" scroll-y>

  <view>A</view>

  <view>B</view>

  <view>C</view>

</scroll-view>

样式代码如下:

.scroll{

  margin-top: 10px;

  height: 120px;

  text-align: center;

  line-height: 100px;

  margin-left: 15px;

  width: 100px;

  border: 1px solid red;

}

.scroll view:nth-child(1){

  background-color: lightblue;

}

.scroll view:nth-child(2){

  background-color: lightpink;

}

.scroll view:nth-child(3){

  background-color: lightgreen;

}

实现滚动效果有两个属性是必须的,一个是在scroll-view的标签上添加scroll-y的属性,表示纵向滚动;如果是scroll-x表示横向滚动。并且需要在scroll-view的样式上添加一个固定的高度,这两个条件都达成才能实现组件的滚动效果。

swiper和swiper-item组件的基本使用

实现如图如图的轮播图效果:

结构代码如下:

<swiper class="swiper">

  <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>

样式代码如下:

.swiper{

  margin-top: 10px;

  margin-left: 15px;

  margin-right: 15px;

  height: 150px;

}

.swiper view{

  height: 100%;

  line-height: 150px;

  text-align: center;

}

swiper-item:nth-child(1) .item{

  background-color: lightpink;

}

swiper-item:nth-child(2) .item{

  background-color: lightgreen;

}

swiper-item:nth-child(3) .item{

  background-color: lightskyblue;

}

swiper的常用组件以及属性
  1. indicator-dots:显示当前轮播图顺序的指示点

属性

类型

默认值

说明

indicator-dots

boolean

false

是否显示面板指示点

indicator-color

color

rgba(0,0,0,3)

指示点颜色

indicator-active-color

color

#000000

当前选中的指示点颜色

autoplay

boolean

false

是否自动切换

interval

number

5000

自动切换时间间隔

circular

boolean

false

是否采用衔接滑动

<swiper class="swiper" indicator-dots autoplay circular interval="3000">

比如上面的结构代码中就是添加了衔接滚动和自动切换,并且自动切换时间设置为3秒的属性。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值