初识小程序

一、前言

  • 小程序目前已经遍布我们的生活
  • 我们每天几乎都或多或少的会用到小程序,最常见的便是乘车二维码了
  • 因此学习下小程序

二、准备工作

三、创建项目

  • 点开微信开发者工具,选择小程序点击加号


    新建项目
  • 填写一些项目名称位置信息


    创建项目

    画圈的需要注意,大多数是默认的,路径需要先创一个空文件夹然后再选择

  • 下面来介绍一下页面的组成以及小技巧


    编辑界面

四、界面介绍

1.那么下面简单介绍一下编辑界面的组成部分
模拟器--可以直接看到我们编码的效果
编译器--编码的地方
调试器--对应浏览器的控制台
云开发--代码存在云空间(网上)
小程序模式--一般默认选择小程序模式(还有插件模式在使用插件的时候选择)
普通编辑--这里是默认显示路由,当我们在对单个页面编辑的时候可以添加一个编译模式,对应页面路径,这样编辑后显示的就是当前我们编译的页面
编译--当我们编码一部分后想看效果点击编译就可以了
左下角小圈圈里,是当前浏览页面的对应路径,点击就可以直接打开这个文件,我们浏览时发现有需要更改的页面时点击就可以直接打开不需要去找了

2.接下来介绍一下文件组成

我们新建项目会默认生成几个文件

- pages--视图文件,我们所有的页面文件都放里面,小程序的页面是以文件夹来分的
pages层次

这里面每个文件夹对应着一个页面:index对应的就是首页
每个文件里的组成是


组件文件内部层次

视图组件内是四个文件,js--就是之前的js、json--组件配置文件格式是json的、wxml--对应是html、wxss--对应是css

这里重点介绍一下js内部:(wxml和wxss只有少部分变化)
// pages/zanshi/zanshi.js
Page({

  /**
   * 页面的初始数据
   */
  data: {
      // 放数据的地方
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
      // 当页面创建第一个执行的,一开始就得执行的放这里
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})

这里唯一有点麻烦的便是,方法函数都是和这些初始化方法函数一样写,会比较不好找(小程序里这些组件里的文件之间是已经有连接关系的所以不需要和原生那样)

utils文件夹

这个里面是用来放我们封装的方法的


utils

app.js、app.json、app.wxss、package-lock.json简单介绍

app.js 全局js文件
//app.js
App({
  onLaunch: function () {
    // 展示本地存储能力
    var logs = 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
  }
})

子组件访问需要 const app = getApp(); 然后就可以直接使用全局函数或获取全局数据

app.json 全局的配置文件,路由声明,导航栏声明等都在这里设置
{  
  "pages": [
    "pages/index/index",
    "pages/test/test",
    "pages/cart/cart",
    "pages/my/my",
    "pages/yong/yong",
    "pages/youzan/youzan",
    "pages/map/map",
    "pages/canvas/canvas",
    "pages/get/get",
    "pages/zanshi/zanshi"
  ],
  "window": {
    "backgroundTextStyle": "light",
    "navigationBarBackgroundColor": "#fff",
    "navigationBarTitleText": "我的小程序",
    "navigationBarTextStyle": "black"
  },
  "tabBar":{
    "borderStyle":"black",      
    "selectedColor":"#r9r9r9",  
    "list":[
      {
        "pagePath":"pages/index/index",   
        "text":"首页",                     
        "iconPath":"./img/home.png",      
        "selectedIconPath":"./img/homing.png"   
      },
      {
        "pagePath": "pages/test/test",
        "text": "测试",
        "iconPath": "./img/home.png",
        "selectedIconPath": "./img/homing.png"
      },
      {
        "pagePath": "pages/cart/cart",
        "text": "购物车",
        "iconPath": "./img/cart.png",
        "selectedIconPath": "./img/carting.png"
      },
      {
        "pagePath": "pages/my/my",
        "text": "我的",
        "iconPath": "./img/me.png",
        "selectedIconPath": "./img/meing.png"
      }
    ]
  },
  "usingComponents": {
    "van-button": "dist/button/index",
    "van-row": "dist/row/index",
    "van-col": "dist/col/index",
    "van-popup": "dist/popup/index",
    "footer":"components/footer/Footer"
  },
  "sitemapLocation": "sitemap.json"
}

pages里的文件都需要在这里添加路径才能显示
tabBar底部导航栏,list为里面的每一项,对应都需提供组件路径
usingComponents使用组件
sitemapLocation对应的绑定微信生成的那个sitemap.json
小技巧:我们需要新增视图组件可以直接在pages后创建一条路径更改名字,编译后会自动生成对应的组件

app.wxss 全局样式 公共样式放这里
package-lock.json 我们下载组件记录存放在本文件
更多详细的介绍可以查看文档

https://developers.weixin.qq.com/miniprogram/dev/reference/

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,402评论 6 499
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,377评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,483评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,165评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,176评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,146评论 1 297
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,032评论 3 417
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,896评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,311评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,536评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,696评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,413评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,008评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,659评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,815评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,698评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,592评论 2 353

推荐阅读更多精彩内容