微信小程序学习笔记一

1. 什么是小程序?

  1. 2017年度百度百科十大热词之一
  2. 微信小程序, 简称小程序, 英文名 Mini Program, 是一种不需要下载安装即可使用的应用
    ( 张小龙对其的定义是无需安装, 用完即走, 实际上是需要安装的, 只不过小程序的体积特别小, 下载速度很快, 用户感觉不到下载的过程)
  3. 小程序刚发布的时候要求压缩包的体积不能大于1M, 否则无法通过, 在2017年4月做了改进, 由原来的1M提升到2M
  4. 2017年 1月9日0点, 万众瞩目的微信第一批小程序正式低调上线

2. 小程序可以干什么?

  1. 同App进行互补, 提供同app类型的功能, 比app使用方便简介
  2. 通过扫一扫活着微信搜索即可下载
  3. 用户使用频率不高, 但又不得不用的功能软件, 目前看来小程序是首选
  4. 连接线上线下
  5. 开发门槛低, 成本低

3. 开发小程序储备知识

3.1 Flex布局简介

3.1.1 什么是flex布局?

  • FlexFlexible Box的缩写, 意为"弹性布局", 用来为盒状模型提供最大的灵活性
  • 任何一个容器都可以指定Flex布局
  • display:'flex'

3.1.2 flex 属性

  • flex-direction: 属性决定主轴的方向(即项目的排列方向)
.box {flex-direction: row | row-reverse | column | column-reverse;
}
row(默认值): 主轴为水平方向, 起点在左端
row-reverse: 主轴为水平方向, 起点在右端
column: 主轴为垂直方向,  起点在上沿
colum-reverse: 主轴在垂直方向, 起点在下沿
  • flex-wrap:定义如果一条轴线排不下,如何换行。
.box{flex-wrap: nowrap | wrap | wrap-reverse;
}
nowrap(默认): 不换行
wrap: 换行, 第一行在上方
wrap-revers: 换行, 第一行在下方
  • flex-flow: flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap。
.box {flex-flow: <flex-direction> || <flex-wrap>;
}
  • justify-content: 定义了项目在主轴上的对齐方式。
.box {justify-content: flex-start | flex-end | center | space-between | space-around;
}
flex-start(默认值): 左对齐
flex-end: 右对齐
center: 居中
space-between: 两端对齐, 项目之间的间隔都相等
space-around: 每个项目两侧的间隔相等, 所以,项目之间的间隔比项目与边框的间隔大一倍。
  • align-items: 定义项目在交叉轴上如何对齐
.box {align-items: flex-start | flex-end | center | baseline | stretch;
}
flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
baseline: 项目的第一行文字的基线对齐。
stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。
  • align-content: 定义多根轴线的对齐方式。如果项目只有一根轴线,该属性不起作用。
.box {align-content: flex-start | flex-end | center | space-between | space-around | stretch;
}
flex-start:与交叉轴的起点对齐。
flex-end:与交叉轴的终点对齐。
center:与交叉轴的中点对齐。
space-between:与交叉轴两端对齐,轴线之间的间隔平均分布。
space-around:每根轴线两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。
stretch(默认值):轴线占满整个交叉轴。

3.2 移动端相关知识

3.2.1 物理像素

  1. 屏幕的分辨率
  2. 设备能控制显示的最小单位, 可以把物理像素看成是对应的像素点

3.2.2 设备独立像素 & css像素

设备独立像素(也叫密度无关像素), 可以认为是计算机坐标系统中的一个点, 这个点代表一个可以由程序使用并控制的虚拟像素(比如: css像素, 知识android机中css 像素就不叫 "css像素"了, 而是叫 “设备独立像素”), 然后由相关系统转换为物理像素

3.2.3 dpr比 & DPI & PPI

  1. dpr: 设备像素比, 物理像素/设备独立像素 = dpr, 一般以iphone6 的dpr 为准 dpr = 2
  2. PPI: 一英寸显示屏上的像素点个数
  3. DPI: 最早指的是打印机在单位面积上打印的墨点数, 墨点越多越清晰



3.3 移动端适配方案

3.3.1 viewport 适配

  1. 为什么做 viewport适配?
    手机厂商在生产手机的时候大部分手机默认页面宽度为980px
    手机实际视口宽度都要小于980px , 如: iphone6 为 375px
    开发需求: 需要将 980px 的页面完全显示在手机屏幕上且没有滚动条
  2. 实现:
<meta name="viewport" content="width=device-width,initial-scale=1.0">

3.3.2 rem 适配

  1. 为什么做 rem适配?
    机型太多, 不同的机型屏幕大小不一样
    需求: 一套设计稿的内容在不同的机型上呈现的效果一致, 根据屏幕大小不同的变化, 页面中的内容也相映变化

  2. 实现:

function remRefresh() {let clientWidth = document.documentElement.clientWidth; // 将屏幕等分 10 份let rem = clientWidth / 10;document.documentElement.style.fontSize = rem + 'px';document.body.style.fontSize = '12px';}window.addEventListener('pageshow', () => {remRefresh()})// 函数防抖let timeoutId;window.addEventListener('resize', () => {timeoutId && clearTimeout(timeoutId);timeoutId = setTimeout(() =>{remRefresh()}, 300)
})
  1. 第三方库实现:
    lib-flexible + px2rem-loader

微信小程序学习笔记一 + 小程序介绍 前置知识相关推荐

  1. 微信小程序学习笔记( 小程序框架 )

    必看 这个只是我的学习过程算是日记形式吧,过程是按微信的官方文档的循序来,从 指南中的小程序框架 开始,指南中这一节之前还有页面配置,目录结构,还有很多介绍,没有写但是是非常重要的,一定要看,像指南后 ...

  2. 微信小程序学习笔记(1)

    微信小程序学习笔记 1.小程序代码结构 2.逻辑层和视图层 3. 小程序的宿主环境(通信模型.运行机制.组件.API) 4. 数据绑定和事件绑定 1.小程序代码结构 当开发者新建一个工程时,项目文件包 ...

  3. 小程序 pagescrollto_微信小程序学习笔记(三)-- 首页及详情页开发

    一.常用组件 在上一个章节中讲解了封装请求数据的模块,在此处请求轮播图的数据 1.首页轮播图数据的请求以及渲染 1.1 轮播图数据的请求 pages/home/home.js import 2 使用组 ...

  4. 自己的微信小程序学习笔记【3】——第三方UI库Lin-Ui的加载及使用

    其他微信小程序的学习笔记 自己的微信小程序学习笔记[1]--小程序开发工具的使用及项目文件说明 自己的微信小程序学习笔记[2]--从零开始新建项目 文章目录 其他微信小程序的学习笔记 前言 一.Lin ...

  5. 微信小程序学习笔记(七)----简单文章推荐列表和分类图标的实现

    想要实现一个顶部是几篇纯文字的推荐文章,推荐文章下面是四个分类图标,具体实现出来是这个样子的,比较简单: 首先先来找一下素材,这几个图标是我在阿里巴巴图标库下载的,这里是下载地址: http://ww ...

  6. 小程序学习笔记(1)

    小程序学习笔记(1) 以下是学习期间记录的笔记: 10-18号晚上学习笔记: 小程序实际上是需要下载安装的,只是很小,用户基本上觉察不到 组件是具有一定的功能的代码的集合 移动端适配: 物理像素:是图 ...

  7. 微信小程序学习5:小程序语法-事件绑定之给事件传递参数

    微信小程序学习5:小程序语法-事件绑定之给事件传递参数 前面一讲是关于事件绑定的,下面对事件绑定进行补充. 在用户触发事件,比如点击按钮时,我们往往要传递一下参数用来识别是那个按钮,因为一个界面往往不 ...

  8. 微信小程序学习4:小程序语法 - 事件绑定

    微信小程序学习4:小程序语法 - 事件绑定 事件绑定最简单的例子是,你设置一个按钮为可触发的,触发条件可以是点击,按压,长按等等.当然,如果你仅仅是设置了触发事件,而没有创建回调函数,是不会产生什么效 ...

  9. 微信小程序学习3:小程序语法-数据绑定

    微信小程序学习3:小程序语法-数据绑定 文章目录 微信小程序学习3:小程序语法-数据绑定 例子 可以认为是声明变量,只不过小程序的变量要在规定位置声明. 官方文档https://developers. ...

最新文章

  1. xbmc-12.0稳定版代码初探 (2) —— XBMC_HOME
  2. 检索COM 类工厂中CLSID 为{00024500-0000-0000-C000-000000000046}组件时失败
  3. sqlu8多阶级层次bom_男性比女性多3164万:性别比例失衡,为何还有那么多剩女?...
  4. VTK:vtkBorderWidget用法实战
  5. SAP CRM的Genil层和Hybris的jalo模型
  6. 1.6 万亿参数你怕了吗?谷歌大脑语言模型速度是 T5 速度的 7 倍
  7. MD1——2 Corner
  8. Go基础:不同数据类型作为函数参数传递值传递/地址(引用)传递判断
  9. java程序用户权限管理,java用户管理权限
  10. 使用谷歌浏览器下载的图片webp怎么转成jpg格式图片
  11. 阿里Sophix热修复接入指南
  12. 获取驱动失败Java连接数据库,好哀伤,java连接sql数据库加载驱动就是失败了
  13. 统计分析用户信息量的工具Flurry的使用
  14. javaScript 琐碎
  15. IdentityServer4 (IDS4) 快速入门
  16. aa44444444444
  17. 绝地求生 Win10 崩溃解决办法 (提示cmd.exe应用程序错误0xc000124)
  18. JAVA的远程控制系统(远程监控)实现
  19. word中出现“由于文件许可权错误,word无法完成保存操作”的解决办法
  20. 技术资料收藏--有待整理

热门文章

  1. 高数:微分中值定理介值定理证明题浅析
  2. 闭区间上连续函数的性质
  3. vue项目利用Hbuilder打包成APP流程,以及遇到的坑
  4. quick-cocos2dx中 B.super.ctor(self) 和 B.super:ctor()的区别
  5. 3.1 YOLO系列理论(YOLOV1、YOLOV2、YOLOV3)
  6. java画图Graphics绘图(GUI)图形用户界面绘画卡通人物
  7. 魔力拍证件照制作小程序
  8. 数据科学入门三个月的一些随想
  9. SPAN交换端口分析器
  10. MyBatis----回顾mybatis自定义和环境搭建+完善自定义Mybatis的注解开发