一、宿主环境简介

1. 什么是宿主环境
        宿主环境(host environment)指的是程序运行所必须的依赖环境。例如:
        Android 系统和 iOS 系统是两个不同的宿主环境。安卓版的微信 App 是不能在 iOS 环境下运行的,所以, Android 是安卓软件的宿主环境,脱离了宿主环境的软件是没有任何意义的!

 2. 小程序的宿主环境
        手机微信是小程序的宿主环境,如图所示:

小程序借助宿主环境提供的能力,可以完成许多普通网页无法完成的功能,例如: 微信扫码、微信支付、微信登录、地理定位、etc…

3. 小程序宿主环境包含的内容
        ① 通信模型
        ② 运行机制
        ③ 组件
        ④ API

通信模型

1. 通信的主体
        小程序中通信的主体是渲染层和逻辑层,其中:
                ① WXML 模板和 WXSS 样式工作在渲染层
                ② JS 脚本工作在逻辑层

2. 小程序的通信模型
小程序中的通信模型分为两部分:
① 渲染层和逻辑层之间的通信 
         由微信客户端进行转发
② 逻辑层和第三方服务器之间的通信 
         由微信客户端进行转发 

运行机制

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

6. 页面渲染的过程
        ① 加载解析页面的 .json 配置文件
        ② 加载页面的 .wxml 模板和 .wxss 样式
        ③ 执行页面的 .js 文件,调用 Page() 创建页面实例
        ④ 页面渲染完成

组件

1. 小程序中组件的分类
        小程序中的组件也是由宿主环境提供的,开发者可以基于组件快速搭建出漂亮的页面结构。官方把小程序的组 件分为了 9 大类,分别是:
        ① 视图容器
        ② 基础内容
        ③ 表单组件
        ④ 导航组件
        ⑤ 媒体组件
        ⑥ map 地图组件
        ⑦ canvas 画布组件
        ⑧ 开放能力
        ⑨ 无障碍访问

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

3. view 组件的基本使用
        实现如图的 flex 横向布局效果:

4. scroll-view 组件的基本使用
实现如图的纵向滚动效果:

5. swiper 和 swiper-item 组件的基本使用
        实现如图的轮播图效果:

6. swiper 组件的常用属性        

7. 常用的基础内容组件 
① text
        1. 文本组件 
        2. 类似于 HTML 中的 span 标签,是一个行内元素
        3. 支持长按选中复制操作,需要添加selectable属性<text selectable>13986358544</text>
② rich-text 
        1. 富文本组件 
        2. 支持把 HTML 字符串渲染为 WXML 结构
        3. 通过 rich-text 组件的 nodes 属性节点,把 HTML 字符串渲染为对应的 UI 结构:

8. 其它常用组件
① button 
        1. 按钮组件 
        2. 功能比 HTML 中的 button 按钮丰富 
        3. 通过 open-type 属性可以调用微信提供的各种功能(客服、转发、获取用户授权、获取用户信息等)

② image 
        1. 图片组件 
        2. image 组件默认宽度约 300px、高度约 240px


③ navigator(后面课程会专门讲解) 
        1. 页面导航组件 
        2. 类似于 HTML 中的 a 链接

API

1. 小程序 API 概述
        小程序中的 API 是由宿主环境提供的,通过这些丰富的小程序 API,开发者可以方便的调用微信提供的能力, 例如:获取用户信息、本地存储、支付功能等。

2. 小程序 API 的 3 大分类
小程序官方把 API 分为了如下 3 大类:
① 事件监听 API
        1. 特点:以 on 开头,用来监听某些事件的触发 
        2. 举例:wx.onWindowResize(function callback) 监听窗口尺寸变化的事件
② 同步 API 
        1. 特点1:以 Sync 结尾的 API 都是同步 API 
        2. 特点2:同步 API 的执行结果,可以通过函数返回值直接获取,如果执行出错会抛出异常         
        3.举例:wx.setStorageSync('key', 'value') 向本地存储中写入内容
③ 异步 API 
        1. 特点:类似于 jQuery 中的 $.ajax(options) 函数,需要通过 success、fail、complete 接收调用的结果 
        2. 举例:wx.request() 发起网络数据请求,通过 success 回调函数接收数据

小程序---宿主环境(常用组件、api)---02相关推荐

  1. 微信小程序(一)初步,包括(初步了解微信小程序,小程序项目结构,小程序宿主环境,发布与上线等)

    文章目录 前言 一 微信小程序 1. 小程序与普通网页开发的区别 2. 注册小程序开发帐号 3. 安装开发者工具 4. 创建小程序项目 5. 查看项目效果 6. 主界面的 5 个组成部分 二 项目结构 ...

  2. 微信小程序开发自学笔记 —— 三、理解小程序宿主环境

    理解小程序宿主环境 小程序可以调用宿主环境提供的微信客户端的能力. 渲染层和逻辑层 小程序的运行环境分成渲染层和逻辑层,WXML模板和WXSS样式工作在渲染层,JS 脚本工作在逻辑层. 小程序如何把脚 ...

  3. 微信小程序入门之常用组件(04)

    常见组件 重点讲解微信小程序中常见的布局组件 view,text,rich-text,button,image,navigator,icon,swiper, radio,checkbox 等 一.vi ...

  4. 微信小程序1,常用组件 view、swiper、swiper-item、 scroll-view、 icon、progress、text、rich-text、button、input、image

    常用组件 view 类似于html中的div,是块级元素. 属性 说明 hover-class 为string类型,默认为none,指定按下去的样式类.当 hover-class="none ...

  5. 微信小程序の再体验 - - 常用组件

    常用组件 1.1.view 1.2.scroll-view 1.3.swiper 和 swiper-item 1.4.text和rich-text 1.5.button 1.6.image 组件 解释 ...

  6. 《十四》微信小程序中的常用 API之登录、获取用户信息、支付、提现、跳转小程序、网络请求、弹框、导航、数据缓存、图片、查看文档、音频、拨打电话、剪贴板、滚动、WXML

    微信小程序提供了 wx 这个全局变量,通过这个全局变量可以调用微信小程序的 API. 登录: wx.login():获取登录凭证 code.通过登录凭证 code 进而换取用户登录态信息,包括用户在当 ...

  7. 微信小程序开发之webview组件内网页实现微信原生支付

    前言.背景 本人目前的工作岗位是安卓工程师,在这之前对于前端和后台的知识基本是白纸,只是在日常的工作项目中有需要和小伙伴进行对接的时候接触了那么一丢丢,对于前端和后台的一些专业描述和理解有不当之处还请 ...

  8. 微信小程序仿微信SlideView组件slide-view

    微信小程序仿微信SlideView组件. 使用 1.安装 slide-view 从小程序基础库版本 2.2.1 或以上.及开发者工具 1.02.1808300 或以上开始,小程序支持使用 npm 安装 ...

  9. 钱币掉落动画android,mpvue实现小程序签到金币掉落动画(api实现)

    这里使用小程序自带的api来实现,用小程序来写动画的恶心点在于,没有帧,只能用setimeout 来作为帧来使用, 下面是实现代码, 下面是简单用div代替了图片,需要什么图片,可以自行替换相应的di ...

  10. 阿里云服务搭建微信小程序开发环境

    最近微信小程序异常火爆,很多人在学习,下面带着大家搭建下微信小程序的调试环境(client+server),并调试一套demo源码(JavaScript和node.js基础即可,微信推荐使用的语言,无 ...

最新文章

  1. 不使用递归求全排列和组合数
  2. vue-router学习笔记(一)
  3. Android系统Surface机制的SurfaceFlinger服务对帧缓冲区(Frame Buffer)的管理分析
  4. 总结了 90 条写 Python 程序的建议
  5. 学习C#从哪些方面去学习,才能全面掌握基础知识
  6. Re: 社团改革还让不让人活了?
  7. 编码程序教程_如何从编码教程到构建自己的项目
  8. 由于供不应求 部分新款Apple Watch机型推迟至11月交付
  9. java的io中replace咋么使用_Java.io.ObjectOutputStream.replaceObject()方法实例
  10. 华为p40pro如何升级鸿蒙,可以升级到鸿蒙OS的四款华为手机,相信都没有后悔入手!...
  11. css里面设置body背景图片满屏
  12. red5 + java+flex free download_Flex 4 +Red5 流媒体使用研究2——Flex4的VideoPlayer控件应用...
  13. mfc 请求java_MFC使用WinHttp实现Http访问
  14. ACM题库,分类整理
  15. php 更换外网ip,WordPress站点更换公网IP后不能正常访问的解决过程
  16. nacos connect timed out executing XXX
  17. Linux内核kernel panic机制浅析
  18. SpringCloud-创建服务消费者-Feign方式(附代码下载)
  19. 为何能力越强越不被重用?不懂这3点,你到哪里都混不好,不服不行
  20. Latex中IEEEtran中参考文献中斜体问题

热门文章

  1. 程序架构之redis扩容 (增加端口)
  2. BJTU1935 铁憨憨骑士团的购买装备
  3. windows下使用endless报错:undefined: syscall.SIGUSR1
  4. Python网页截图/屏幕截图/截长图如何实现?
  5. html table最小宽度,table宽度比tbody多1
  6. html页面清空标签里的内容
  7. 发那科syst178_发那科系统报警大全
  8. laravel数据填充seeder
  9. TCP/IP协议族的数据链路层基础(1)——MTU
  10. leetcode1114. 按序打印 靡不有初,鲜克有终,小白加油加油加油