小程序开发 架构学习总结

app文件:

1、app.js文件:在这个文件中监听并处理小程序的生命周期函数、声明全局变量。

2、app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成(第一个页面就是默认要加载的页面),配置小程序的窗口�背景色,配置导航条样式,配置默认标题、配置tabBar等。注意该文件不可添加任何注释。

3、app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。

//app.js

App({

onLaunch:function() {

// 展示本地存储能力

varlogs = wx.getStorageSync('logs') || []

logs.unshift(Date.now())

wx.setStorageSync('logs', logs)

// 登录

wx.login({

success: res => {

// 发送 res.code 到后台换取 openId, sessionKey, unionId

}

})

// 获取用户信息

wx.getSetting({

success: res => {

if(res.authSetting['scope.userInfo']) {

// 已经授权,可以直接调用 getUserInfo 获取头像昵称,不会弹框

wx.getUserInfo({

success: res => {

// 可以将 res 发送给后台解码出 unionId

this.globalData.userInfo = res.userInfo

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回

// 所以此处加入 callback 以防止这种情况

if(this.userInfoReadyCallback) {

this.userInfoReadyCallback(res)

}

}

})

}

}

})

},

globalData: {

userInfo:null

}

})

页面文件:

1、index.wxml 是页面的结构文件。

2、index.js 是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。

3、index.wxss 是页面的样式表。页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。

4、index.json是对当前页面的配置文件,可以配置页面的标题等。页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。

//index.js

//获取应用实例

constapp = getApp()

Page({

data: {

motto:'Hello World',

userInfo: {},

hasUserInfo:false,

canIUse: wx.canIUse('button.open-type.getUserInfo')

},

//事件处理函数

bindViewTap:function() {

wx.navigateTo({

url:'../logs/logs'

})

},

onLoad:function() {

if(app.globalData.userInfo) {

this.setData({

userInfo: app.globalData.userInfo,

hasUserInfo:true

})

}elseif(this.data.canIUse){

// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回

// 所以此处加入 callback 以防止这种情况

app.userInfoReadyCallback = res => {

this.setData({

userInfo: res.userInfo,

hasUserInfo:true

})

}

}else{

// 在没有 open-type=getUserInfo 版本的兼容处理

wx.getUserInfo({

success: res => {

app.globalData.userInfo = res.userInfo

this.setData({

userInfo: res.userInfo,

hasUserInfo:true

})

}

})

}

},

getUserInfo:function(e) {

console.log(e)

app.globalData.userInfo = e.detail.userInfo

this.setData({

userInfo: e.detail.userInfo,

hasUserInfo:true

})

}

})


小程序引入weui-wxss样式:

下载地址:weui.wxss

注意:样式文件可直接引用dist/style/weui.wxss,或者单独引用dist/style/widget下的组件的wxss。

2.将style文件夹拷贝到小程序根目录中,如下图。

style目录结构

3.weui.wxss的引入。

方式一:在app.wxss内或者需要的页面引入style/weui.wxss。

/**app.wxss**/@import'style.weui.wxss';

方式二:在app.wxss内或者需要的页面引入style/widget下的组件的wxss。

/**app.wxss---->引入button的wxss**/@import'style.widget.weui-button.weui-button.wxss';

WeUI的使用

WeUI使用的例子在目录dist/example(与dist/style同一级目录),这里贴出dist/example/index.wxml代码

WeUIWeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信内网页和微信小程序量身设计,令用户的使用感知更加统一。{{item.name}}{{page}}

分析以上代码可以发现:

根组件使用class="page"

页头和主体使用class="page__xx"(注意是两个下划线)

其他组件采用weui-xx,例如class = "weui-flex"。

{{item.name}}

组件的子组件样式,例如weui-flex还有weui-flex__item信息。

注意:子组件样式后面使用的两个下划线,"__"。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容