为什么要持续学习呢?
大学之道,在明明德,在亲民,在止于至善。知止而后有定,定而后能静,静而后能安,安而后能虑,虑而后能得。物有本末,事有终始,知所先后,则近道矣。
男人的极大幸运在于,他,不论在成年还是在小时候,必须踏上一条极为艰苦的道路,不过这是一条最可靠的道路;女人的不幸则在于被几乎不可抗拒的诱惑包围着;她不被要求奋发向上,只被鼓励滑下去到达极乐。当她发觉自己被海市蜃楼愚弄时,已经为时太晚,她的力量在失败的冒险中已被耗尽。
关于小程序配置
app.json 文件用来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab [底部或顶部菜单]等。
app.json中不能添加任何注释,key和value必须用双引号引起来,否则会报错。
pages
接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【**路径+目录名+文件名(不包含后缀名)】**信息,数组的第一项代表小程序的初始页面(首页)。小程序中新增/减少页面,都需要对 pages 数组进行修改。
注:数组的第一项为小程序初始页面
概述
从事过网页编程的人知道,网页编程采用的是 HTML + CSS + JS 这样的组合,其中 HTML 是用来描述当前这个页面的结构,CSS 用来描述页面的样子,JS 通常是用来处理这个页面和用户的交互。
同样道理,在小程序中也有同样的角色,其中 WXML 充当的就是类似 HTML 的角色。
WXML和HTML不同点:
标签名字有点不一样
多了一些 wx:if 这样的属性以及 {{ }}这样的表达式
小程序提倡把渲染和逻辑分离,简单来说就是不要再让 JS 直接操控 DOM,JS只需要负责数据的处理,然后再通过一种模板语法来进行界面结构展示。
将js文件中的数据传递到视图层中方法 (异步改变数据)
this.setData({ msg: “Hello World” })
列表渲染 for
语法:wx:for
wx:for-index可以指定数组当前下标的变量名 默认名为 index
wx:for-item 可以指定数组当前元素的变量名 默认名为 item
wx:key 可以定义也可以不定义 唯一的标识符
什么是WXSS?
WXSS 用来决定 WXML 的组件应该怎么显示。说白了就是样式
为了适应广大的前端开发者,WXSS 具有 CSS 大部分特性。同时为了更适合开发微信小程序,WXSS 对 CSS 进行了扩充以及修改。
Ø 新增了尺寸单位WXSS 在底层支持新的尺寸单位 rpx ,开发者可以免去换算的烦恼,只要交给小程序底层来换算即可,由于换算采用的浮点数运算,所以运算结果会和预期结果有一点点偏差。
Ø 提供了全局的样式和局部样式
你可以写一个 app.wxss 作为全局样式,会作用于当前小程序的所有页面,局部页面样式 page.wxss 仅对当前页面生效。
Ø 此外 WXSS 仅支持部分 CSS 选择器
尺寸单位
rpx(responsive pixel): 可以根据屏幕宽度进行自适应。规定屏幕宽为750rpx。
建议: 开发微信小程序时设计师可以用 iPhone6 作为视觉稿的标准。
在日后的小程序开发中,我们的统一的单位是 rpx 不要使用 px作为单位
全局样式与局部样式
定义在 app.wxss 中的样式为全局样式,作用于每一个页面。
在 pages 的 wxss 文件中定义的样式为局部样式,只作用在对应的页面,并会覆盖 app.wxss 中相同的选择器。
样式优先级 行内样式 > page.wxss > app.wxss
样式导入
使用 @import 语句可以导入外联样式表,@import 后跟需要导入的外联样式表的相对路径,用 ; 表示语句结束。
flex是什么
2009年,w3c提出一种新的方案,flex布局,可以简便,完整,响应式地实现各种页面的布局。
Flex是Flexible Box的缩写,意为”弹性布局”,用来为盒状模型提供最大的灵活性。
任何一个容器都可以指定为Flex布局,依赖样式属性 display。
.box{
display: flex;
}
拥有此class盒子就有了flex布局功能
注:设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。
基本概念:
采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。
容器的属性
1、flex-direction属性
flex-direction属性决定主轴的方向(即项目的排列方向)。
.box {
flex-direction: row | row-reverse | column | column-reverse;
}
row(默认值):主轴为水平方向,起点在左端。(上)
row-reverse:主轴为水平方向,起点在右端。(下)
column:主轴为垂直方向,起点在上沿。(右)
column-reverse:主轴为垂直方向,起点在下沿。(左)
2、flex-wrap属性
flex-wrap属性定义,如果一条轴线排不下,如何换行。
.box{
flex-wrap: nowrap | wrap | wrap-reverse;
}
3、justify-content属性
justify-content属性定义了项目在主轴上的对齐方式。
.box {
justify-content: flex-start | flex-end | center | space-between | space-around;
}
flex-start(默认值):左对齐 顶部
flex-end:右对齐 底部
center: 居中
space-between:两端对齐,项目之间的间隔都相等。
space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。
4、align-items属性
align-items属性定义项目在交叉轴上如何对齐。
.box {
align-items: flex-start | flex-end | center;
}
flex-start:交叉轴的起点对齐。
flex-end:交叉轴的终点对齐。
center:交叉轴的中点对齐。
关于事件简介
1,事件分为冒泡事件和非冒泡事件:
冒泡事件【bind】:当一个组件上的事件被触发后,该事件会向父节点传递。
非冒泡事件【catch】:当一个组件上的事件被触发后,该事件不会向父节点传递。
WXML的冒泡事件列表:公共事件
2,事件绑定
事件绑定的写法同组件的属性,以 key、value 的形式。
key 以bind或catch开头,然后跟上事件的类型,如bindtap、catchtouchstart。自基础库版本 1.5.0 起,在非原生组件中,bind和catch后可以紧跟一个冒号,其含义不变,如bind:tap、catch:touchstart。
原生组件不用冒号,非原生组件可以用也可以不用,建议用
value 是一个字符串,需要在对应的 Page 中定义同名的函数。不然当触发事件的时候会报警告。
什么是组件:
框架为开发者提供了一系列基础组件,开发者可以通过组合这些基础组件进行快速开发。
Ø 组件是视图层的基本组成单元。
Ø 组件自带一些功能与微信风格的样式。
Ø 一个组件通常包括开始标签和结束标签,属性用来修饰这个组件,内容在两个标签之内。
注意:所有组件与属性都是小写,以连字符中横线【-】连接
逻辑层:
处理业务js
视图层:
渲染页面wxml,wxss
微信小程序框架:
逻辑+视图+接送
框架全局:
1,app.js:生命周期,全局数据,函数。
onshow:监听显示,进入后台,并未销毁
onlaunch: 初始化
onhide 隐藏
onerror 错误提示,脚本,API错误。
onpagenoffound:当页面不存在调用
5种基本功能:
路径:“pages”
配置窗口:“windows”
标签导航:“tarbar”
“网络超时”:“networktimeout”
“配置debug”:“debug”
2,app.json,进行相关配置
3,app.wxss:
全局样式文件
CSS进行扩展
4,project.config.json:
个性化配置
换个机器重新安装,需要从新配置。
框架页面文件:(放在pages目录下)
必填(js,wxml);
wxs 脚本 json配置 wxss样式
注意:
APP必须在app.js注册,不能注册多个。
this可以获得app
视图组件
:
1,view 容器(类似div)
属性:
hover 单击态
hover-class按下去样式类
hover-start-time 按住后持续多少时间
hover-stay-time 松开后保留多长时间
2,scroll-view 可滚动(横向,纵向滚动条)
movable-view 可移动的
scroll-x 横向
scroll-y 纵向
upper-threshold ,
距离顶部/左边,触发事件
lower-threshold
距离底部/右多远
bindscroll:滚动时触发事件
bindscroll-toupper,滚动到顶部,左部触发
bindscroll-tolower ,滚动底部,右部
3,swiper滑块,页面切换。
movable-view提供两个特殊事件:
htouchmove:初次触摸横向移动
vtouchmove:初次触摸纵向移动
cover-view,
cover-image,
覆盖原生组件
icon:图标
text:文本
progress:进度条
rich-text:富文本
4,precent
show-info 进度条显示百分比
stroke-width 精度条宽度
color:进度条颜色
active:进度条从左到右动画
5,silder:滑动选择器
常用于控制声音大小,屏幕亮度等场景
6,switch:开关选择器
微信新消息提醒:
是否接收信息
是否有声音
是否震动
7,form:表单
input:单行输入框
常用事件:
输入时:bindinput
聚焦时:bindfocus
离开时:bindblur
picker:滚动选择器
支持五种选择器:
普通:mode=selector
多列:mode=multiSelect
时间:mode=time
日期:mode=date
省市:mode=region
导航组件:
navigate:页面链接组件
页面相关代码:
onPullDownRefresh:
下拉刷新
onShareAppMessage:
用户分享
框架以栈的形式维护所有界面:
栈:
1,一种数据结构
2,只能一端插入删除操作
3,“后进先出”存储原则
小程序交互也是有栈来完成
入栈:
初始化,
新页面,
出栈:
重定向
tab切换
重新加载
页面返回
来源:CSDN
作者:hello.sunshine
链接:https://blog.csdn.net/hello250sunshine/article/details/104515256