# 笔记
# 微信小程序知识
# callback
由于微信小程序的 wx.request 为异步请求,且使用的是回调函数来获取返回值(回调地狱),使用不同函数来调用时为了不产生回调地狱,则必须使用 callback 来处理返回值,封装多少层就会有多个 callback,很是难受。
所以可以封装 Promise。
# Promise
# async await
ES7 语法,需要在小程序勾选增强编译
# 简易数据单向绑定
Vue 是双向数据绑定,可以绑定复杂的数据
# 样式
写样式时(特别是组件开发),width 指定 750rpx 则可以用 100% 替代,因为父容器的宽度不确定性
# ES6 模版字符串
# 普通函数 VS 箭头函数的 this 指向问题
# 前端 View 层的 JS 是否应该写业务逻辑
一般 View 层应该仅做数据绑定
# NPM semver
版本号规则
~0.6.2:只会安装0.6.x中第三位 latest 版本
^0.6.2:会安装0.x.x中第二、三位 latest 版本
# 小程序使用 NPM 包
npn init 后安装。之后可以在 node_modules 该 npm 包的 package.json 中 version查看真实安装的版本,_id不知是不是
还需要安装后点击「工具」—「构建 npm」,构建完毕会自动创建 miniprogram_npm 目录,这个才是最终要引用的组件目录。此时 node_modules 就没有用了,除非再次构建
# 组件设计通用原则 🔥
# 组件目的
对骨架、样式、业务逻辑(行为)的封装
业务逻辑这里可以使用计数器组件来说明。有时需要根据货物数量来限制增减等
# 灵活性和易用性取舍
易用性:可封装原有组件,来限制以获取易用性(提高稳定)
灵活性(可提供如下方式实现):
Slot 插槽
外部样式类
业务逻辑(其实没有灵活的,目前只能做到提供多种业务逻辑,通过对属性传参来决定。否则就是另一个组件了)
可以提供 Behavior 行为来让使用者自定义
可提供**默认值(样式、插槽)**来中和
# 样式宽高的固定
- 固定高宽,你必须要有理由,比如为了点击事件的区域更大。
- 固定高宽,弊端就是版本更迭很繁琐。修改和维护不方便。
- 固定高宽,数值难以确定。