1、小程序自定义组件

小程序内自定义组件的思想来源于js的函数复用的思想。js只能实现js代码的复用,但是对于小程序是带有外观的和骨架的复用、定义、引用与使用组件,组件自定义:
注意此处路径要用绝对路径

绝对路径
页面使用组件

小程序尺寸单位与设计原则
小程序设计稿依据:
以iphone6为基准
宽度为750个物理像素,对应逻辑分辨率为375pt
高度为667 * 2 个物理像素,即1334个物理像素 对应逻辑分辨率为667pt
备注:物理像素的尺寸并不是真实物理尺寸,没有长度概念,指代的是像素点的个数(点是没有尺寸概念的)
px不会自适应,在所有屏幕上大小不变
rpx会根据屏幕自适应
以iphone6为基准的前提下(屏幕显示宽度为375pt)
在css中写px,和iphone6的pt 是1:1的关系,如375px对应了375pt
写rpx,则是2:1的关系,如750rpx对应了375pt

如果一张图的宽度为750个像素(不能在脑海中将看到的尺寸750简单理解为750px),想要完整显示,图片宽度的调整要么写375px, 要么写750rpx
flex rpx 解决了小程序布局和响应的痛点
pc端 生产力工具 涉及大量的交互 输入 响应式

移动端主要涉及浏览 显示数据

小程序支持的css选择器远比文档中要多,简单骨架结构优先考虑使用子元素写css,缺点是复用性差
苹方字体设置:安卓:思源字体

由于小程序自动把每个页面添加Page全局容器,所以 page样式的巧妙应用:

组件只能继承极少数全局样式component 组件 可以继承的css 样式只有 font 和 color 属性,
page 可以继承其他属性的样式,
组件只能继承极少数全局样式
可以继承的有font、color
组件具有封闭的特性,尽量不要被全局影响才是最佳
page页面可以继承全局的样式
组件最好不要留有空白间距,文字默认带上下间距,消除文字上下间距的方法是,将font-size和line-height设置成一样。本节中,老师之所以要这样做,是因为不希望组件留下多余的空白,
文字是带有上下边距的,在设置组件的时候,最好不要留无意义的空白,这会把整个组件撑大,对主页引用组件时的布局有影响。消除文字上下边距方法:font-size和line-height设置成一样大小。
增大bottom可以实现往上偏移,组件的消除间距也可以实现最优化偏移

固定宽度还是自适应?:
对于inline-flex的理解。inline-flex可以阻止flex的container变成block,导致在小程序中向右充满整个屏幕。使用inline-flex后,container的长度,由内部组件决定,也就是自适应。当然自适应的缺点是当内部组件大小变化时,有个跳动效果(没见过...),据说不好看。

组件的封闭性、开放性及粒度

组件封装性 开放性
封装在内部 ,开放出来的
粒度
非常简单的功能 非常复杂的功能

组件的properties属性详解

从组件的外部可以去设置,就是开放的数据、称作是属性。组件中开放的数据要以对象的形式写在properties里,由type(必写,该数据的类型),values(选填,数据的默认值)和observer(选填,是函数)
properties可以被外部访问,data不行

let、var与组件事件应用:
es5里面没有块级作用域的概念,是es6新增的。只要是用{}包括起来的都是块级作用域

看待组件的两种观点:

不建议将代码全都敲在一个主页上,不利于代码的维护和可读,可将其拆分成一个个组件,每一组件实现一个或者两个简单的功能,优先考虑拆分,再考虑复用,复用并不一定要求一行代码都不改,可以适当的修改。

开发者可以将页面内的功能模块抽象成自定义组件,以便在不同的页面中重复使用;
也可以将复杂的页面拆分成多个低耦合的模块,有助于代码维护。

组件作用:

  1. 复用,并适当的修改;
  2. 代码拆分


    官方建议

数据来源:
wxml
js -> wxml
服务器 -> js -> wxml (主要)

如何从服务器加载数据:

  1. 区分http动词:
    GET:查询数据;
    POST:提交数据;
    PUT:更新数据
  2. json数据返回

生命周期函数:
 onload() => 页面加载时触发。一个页面只会调用一次,可以在onLoad的参数中获取打开当前页面路径中的参数
 onShow() => 页面显示/切入前台时触发
 onReady() => 页面初次渲染完成时触发。一个页面只会调用一次,代表页面已经准备妥当,可以和视图层进行交互
 onHide() => 页面隐藏/切入后台时触发
 onUnload() => 页面卸载时触发

wx.request()发送http请求:
url
data
header
method

success
fail

小程序中2xx,4xx都会走success,
当网络中断的情况下会走fail

同步、异步与回调函数,异步的性能比较高,

关于回调函数:
最基础的方式

ES6箭头函数与this指代

回调函数里面因为当前函数作用域的改变,this指代会不明确,不是所写代码的界面的this。
在回调函数中'this'没有指向,为'null'
在回调函数中,使用箭头函数,来保证'this'的指向


常规的用that转换一下

改写箭头函数:保持函数的定义体也就是花括号内不变,然后把函数定义function去掉,在()后面加上箭头即可。
直接使用this

正确理解Promise

promise主要解决异步嵌套的问题,实现类似同步return的效果

ES6 const常量

ES6 Module export与import

关于路径的引用:

在import中引用路径必须是相对路径,组件里面是可以使用绝对路径的。
常见的报错:


这里说明是第三方错误,即开发者错误,code.startsWith is not a function,提示比较模糊,可能是code不是字符串,所以没有相关属性方法,也可能小程序不支持这个方法

使用toString转换成字符串

http 中封装的方法中 success回调函数中执行params.success(res),可以将请求到的数据返回给page页面打印出来



【获取异步数据】
1, 用回调函数当做参数传进去
2, promise 写法 = 一个变量
不能直接用回调函数的写法那样 = 赋值给一个变量
那是同步方法的获取方式
这么说来promise是同步方法,里面才是异步的

关于CSS的常规和难点使用:

例如把此处的小图标靠左浮动:



首先由偏移:相对定位,指的是相对于对当前位置有偏移,注意偏移量是相反的方向。
成功偏移到了左上方
在flex布局中,如果文字长短不一,又希望能够与其他组件居中显示(注意不是文字通过text-align:center自己居中),可以设定max-width,其意义是,文字较短的时候长短自适应,文字较长(如大于550rpx)则换行。

组件的粒度:不同页面的业务逻辑应该写到page里面,而不是组件
like组件的数据在初始化过程,由page里向api请求到了数据,传到了like组件
同样,在提交数据的时候,逻辑代码也应该写在页面
组件只负责比较通用的简单的业务逻辑
特定的业务逻辑写在组件的使用方,比如调用api请求不要写在组件里,而是应该写在对应的页面

自定义事件的激活与监听:

组件中激活自定义事件
页面使用

初始化时,组件的data与properties的处理不同
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,542评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,596评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,021评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,682评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,792评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,985评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,107评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,845评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,299评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,612评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,747评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,441评论 4 333
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,072评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,828评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,069评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,545评论 2 362
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,658评论 2 350

推荐阅读更多精彩内容