小程序初接触

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/

 

以上是关于小程序初接触的主要内容,如果未能解决你的问题,请参考以下文章

uni-app:跨平台油腻APP初接触

微信小程序开发初体验

微信小程序:云开发初体验

微信小程序:云开发初体验

微信小程序代码片段

微信小程序代码片段分享