小程序初接触
Posted 执候
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了小程序初接触相关的知识,希望对你有一定的参考价值。
1.获取微信小程序的AppID
登录 https://mp.weixin.qq.com ,可以在网站的 “设置”-“开发者设置”中,查看微信小程序的AppID了,注意不可直接使用服务号或者订阅号的AppID
2.创建项目
我们需要通过开发者工具,来完成小程序的创建和代码编辑
开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的 AppID ,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。
为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个 quick start 项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的 demo。
项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。(项目里面。预览就可以在手机上查看了)
3.编写代码
创建小程序实例
点击开发者工具左侧导航栏的“编辑”,我们可以看到项目包含的文件。app.js,app.json,app.wxss是必不可少的。其中.js后缀是脚本文件,.json后缀文件是配置文件,.wxss后缀是样式表文件,微信小程序会读取这些文件生成小程序实列
app.js是小程序的脚本代码,我们可以在这个文件中监听并处理小程序的生命周期、生命全局变量。调用框架丰富的API,如本例的同步存储同步读取本地数据。更多可参考 API 文档
//app.js
App({
onLaunch(){
//展示本地存储的能力
const logs = wx.getStorageSync(\'logs\') || []
log.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
}
})
}
}
})
},
globalData:{
userInfo:null
}
})
app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。更多可配置项可参考配置详解
{
"pages":[
"pages/index/index",
"pages/logs/logs"
],
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle":"black"
}
}
app.wxss是整个小程序的公共样式表。我们可以在页面组件的class属性上直接使用app.wxss中声明的样式规则。
/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}
创建页面
默认生成的有两个页面,index页面和logs页面,即欢迎页和小程序启动日志的展示页,他们在pages中,
且pages中的第一个页面是小程序的首页。
每个小程序页面有路径下4个不同的后缀文件组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。
index.wxml是页面的结构文件
<!--index.wxml-->
<view class="container">
<view class="userinfo">
<block wx:if="{{hasUserInfo}}">
<image bindtap="bindViewTap" class="userinfo-avatar" src="{{userInfo.avatarUrl}}"
background-size="cover"></image>
<text class="userinfo-nickname">{{userInfo.nickName}}</text>
</block>
<button wx:else open-type="getUserInfo" bindgetuserinfo="getUserInfo">获取头像昵称</button>
</view>
<view class="usermotto">
<text class="user-motto">{{motto}}</text>
</view>
</view>
本例中使用了<view/> <image/> <text/>来搭建页面结构,绑定数据和交互处理函数。
index.js是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序的实例,生命处理数据响应页面交互事件等。
//index.js
//获取应用实例
const app = getApp()
Page({
data: {
motto: \'Hello World\',
userInfo: {},
hasUserInfo: false
},
//事件处理函数
bindViewTap: function() {
wx.navigateTo({
url: \'../logs/logs\'
})
},
onLoad: function () {
if (app.globalData.userInfo) {
this.setData({
userInfo: app.globalData.userInfo,
hasUserInfo: true
})
} else {
// 由于 getUserInfo 是网络请求,可能会在 Page.onLoad 之后才返回
// 所以此处加入 callback 以防止这种情况
app.userInfoReadyCallback = res => {
this.setData({
userInfo: res.userInfo,
hasUserInfo: true
})
}
}
},
getUserInfo: function(e) {
this.setData({
userInfo: e.detail.userInfo,
hasUserInfo: true
})
}
})
index.wxss页面的样式表
/**index.wxss**/
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
}
.usermotto {
margin-top: 200px;
}
index.json 是页面的配置文件:
页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。
如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。
参考地址:https://mp.weixin.qq.com/debug/wxadoc/dev/
以上是关于小程序初接触的主要内容,如果未能解决你的问题,请参考以下文章