小程序入门


小程序开发 未完成

文档

基本结构

全局: app.json app.wxss app.js page
page: wxml wxss js json

移动设备的分辨率和 rpx

常见的设计图都是 750px;而不是 375(ip6)呢

pt(逻辑分辨率,简单理解就是屏幕物理尺寸)
px(物理分辨率,像素,同样尺寸像素点越多就越细腻)
reader:@2x 和@3x 实际你看到的效果是差不多的
PPI:勾股定理,根据对角线计算

rpx 的作用

在不同分辨率的设备上进行自适应,小程序提供了新的单位 rpx
在 iPhone6 下视觉稿为 750x1334,
1px = 1rpx = 0.5pt,在其他设备上可能就用其他的单位换算的对应关系

文字有些时候就不适合使用 rpx,可能会出现文字太小看不清

生命周期

page 的生命周期函数和 component 的是不一样的
page 重点关注这几个
onLoad -> onShow -> onReady

组件

小程序已经支持组件和 components 了

//绑定
<component-tag-name bind:myevent="onMyEvent" />;
//触发
this.triggerEvent("myevent", { data }, {});
//调用
 onMyEvent(e) {
    e.detail.data // 自定义组件触发事件时提供的detail对象
  }

父组件还可以通过 this.selectComponent 方法获取子组件实例对象,

组件的生命周期

重点
created attached detached

properties

dataName:{
    type: Number,
    //感觉有点像watch,又有点像计算属性。当数据变化的时候调用
    observer(newVal,oldVal,changedPath){}
}

behavior(组件的共用行为,多继承的思想,类似 mixins)

Behavior({
    properties: {},
    data: {},
    methods: {}
    ...
});

wxs

模块
wxs 是什么

显示用户信息

新版的授权

<button open-type="getPhoneNumber" bindgetphonenumber="getPhoneNumber"></button>
  getPhoneNumber(e) {
    console.log(e.detail.errMsg)
    console.log(e.detail.iv)
    console.log(e.detail.encryptedData)
  }
})

当用户通过 button 授权之后,下一次调用

wx.getUserInfo(
    success(data){
    console.log(data)
}
)

就能够获得用户信息,也就是说不一定能够获得用户信息
那么当用户再一次进入小程序,如何判断是否授权呢?
分俩种情况:未授权和已授权
已经授权 data.authSetting[scope.userInfo] 就是 true

wx.getSetting({
    success(data) {
        if (data.authSetting[scope.userInfo]) {
            wx.getUserInfo({
                success(data) {
                    console.log(data);
                }
            });
        }
    }
});

流程搞清楚了,那么弹窗授权只能通过 button,就很难受,如何用一个图片来代替这个 button 呢

<button
    bind:getuserinfo="onGetUserInfo"
    open-type="{{openType}}"
    plain="{{true}}"
    class="container"
>
    <slot name="img"></slot>
</button>
onGetUserInfo(e){
    this.triggerEvent('getUserInfo',e.detail,{})
}

登录

获取用户授权之后如何登录呢

其他

微信开发工具越来越智能了,新建 page,就会自动的在 app.json 中添加路径,疯狂打 call

水平方向的 margin 用 rpx 比较好
垂直方向 margin 用 px 比较好

//页面之间父子关系,有返回按钮
//对应 onHide
wx.navigateTo({
    url: "../posts/posts"
});
// 页面之间是平等的,没有返回按钮
// 对应 onUnload
wx.redirectTo({
    url: "../posts/posts"
});

onUnLoad 和 onHide

data 数据的绑定在 onLoad 之后
异步的话必须用 setData()

template 模板

event.currentTarget.dataset.xxx

缓存
wx.setStorageSync(‘key’,’value’)

数据绑定 有利于单元测试

快捷键

command + p 搜索打开文件
command + e 最近打开


文章作者: 沐雪
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 沐雪 !
评论
 上一篇
vue基础知识总结(附实例) vue基础知识总结(附实例)
vue 基础知识部分构造器 实例化 vue 时,需传入一个选项对象,它可以包括 数据、模板、挂载元素、方法和生命周期钩子 属性与方法 每个 vue 实例都会代理其 data 对象里所有的属性 vue 实例暴露了一些有用的实例属性与方法,这
2018-09-21
下一篇 
代码优化 代码优化
代码优化的基本原则 易读性优先如果不是性能瓶颈,就不要为了性能而改写代码复杂性守恒原则 命名程序员三大难题变量命名 缓存失效 循环边界 原则: 注意词性 普通变量(名词)bool 变量(形容词,be 动词,情态动词,has)普通函数(
2018-08-24
  目录