549 小程序阶段2 小程序架构和配置:全局配置,页面配置,的双线程模型,界面渲染过程,小程序的启动流程,注册小程序,获取用户信息,注册页面,Page实例生命周期

配置小程序

--

--

--

{
  "pages": [
    "pages/home/home",
    "pages/about/about",
    "pages/profile/profile",
    "pages/category/category"
  ],
  "window": {
    "navigationBarBackgroundColor": "#ff5777",
    "navigationBarTextStyle": "white",
    "navigationBarTitleText": "我的小程序",
    "backgroundColor": "orange",
    "backgroundTextStyle": "light",
    "enablePullDownRefresh": false
  },
  "tabBar": {
    "selectedColor": "#ff5777",
    "list": [
      {
        "pagePath": "pages/home/home",
        "text": "首页",
        "iconPath": "assets/tabbar/home.png",
        "selectedIconPath": "assets/tabbar/home_active.png"
      },
      {
        "pagePath": "pages/category/category",
        "text": "分类",
        "iconPath": "assets/tabbar/category.png",
        "selectedIconPath": "assets/tabbar/category_active.png"
      }
    ]
  },
  "sitemapLocation": "sitemap.json"
}

--

页面配置


category.json

{
  "usingComponents": {},
  "navigationBarTitleText": "商品分类",
  "navigationBarBackgroundColor": "#ff0000",
  "enablePullDownRefresh": true
}

--

--

--

--

--

--

--

--

--

--

--

--

--

--

app.js

// 注册一个小程序示例
App({
  // 小程序初始化完成时
  onLaunch: function (options) {
    // 获取用户信息
    console.log(options)
  },
  // 小程序显示出来时
  onShow: function (options) {
    // 1.判断小程序的进入场景
    console.log(options)
    switch(options.scene) {
      case 1001:
        break;
      case 1005:
        break;
    }

    // 2.获取用户的信息, 并且获取到用户信息之后, 将用户的信息传递给服务器
    wx.getUserInfo({
      success: function(res) {
        console.log(res)
      }
    })
  },
  // 小程序隐藏时
  onHide: function () {
    
  },
  // 小程序产生一些错误
  onError: function (msg) {
    
  },
  // 全局共享的(单例对象),所以我们可以将一些共享数据放在这里
  globalData: {
    name: '哈哈哈',
    age: 18
  }
})

--

home.wxml

<!--pages/home/home.wxml-->
<text class='title'>Hello World</text>
<button size='mini'>按钮</button>

<!-- 2.获取用户信息的方式 -->
<button size='mini' 
        open-type='getUserInfo'
        bindgetuserinfo='handleGetUserInfo'>
  获取授权
</button>

<!-- 3.展示用户信息的方法 -->
<open-data type="userNickName"></open-data>
<open-data type="userAvatarUrl"></open-data>

<view bindtap='handleViewClick'>{{message}}</view>

<view wx:for="{{list}}">{{item.title}}</view>

--

home.json

{
  "usingComponents": {},
  "enablePullDownRefresh": true
}

--

home.js

// pages/home/home.js
// getApp()获取App()产生的示例对象 【getApp是系统内置函数。】
// const app = getApp()

// const name = app.globalData.name;
// const age = app.globalData.age;

// 注册一个页面
// 页面也有自己的生命周期函数
Page({
  // ------------ 2.初始化数据 -------------------
  data: {
    message: '哈哈哈',
    list: []
  },

  // ------------ 1.监听页面的生命周期函数 -------------------
  // 页面被加载出来
  onLoad() {
    console.log('onLoad')
    const _this = this;
    wx.request({
      url: 'http://123.207.32.32:8000/recommend',
      // 箭头函数中的this一层层向上找
      success: function(res) {
        console.log(res)
        const data = res.data.data.list;
        _this.setData({
          list: data
        })
      }
    })
  },
  // 页面显示出来时
  onShow() {
    console.log('onShow')
  },
  // 页面初次渲染完成时
  onReady() {
    console.log('onReady')
  },
  // 当页面隐藏起来时
  onHide() {
    console.log('onHide')
  },
  onUnload() {
    console.log('onUnload')
  },

  // ------------ 3.监听wxml中相关的一些事件 -------------------

  // 获取用户信息
  handleGetUserInfo(event) {
    console.log(event)
    console.log(event.detail.rawData);
  },
  handleViewClick() {
    console.log('哈哈哈被点击了')
  },

  // ------------ 4.其他事件 -------------------

  // 监听页面的滚动
  onPageScroll(obj) {
    // console.log(obj)
  },
  // 监听页面滚动到底部
  onReachBottom() {
    console.log('页面滚动到底部')
  },
  onPullDownRefresh() {
    console.log('下拉刷新的事件')
  }
})

--

--

posted on 2020-09-24 10:26  冲啊!  阅读(134)  评论(0编辑  收藏  举报

导航