微信小程序

微信小程序

image.png

基础技术设备

image.png

开发者工具的使用

image.png

框架全局文件

  • App.js小程序逻辑
    App.js文件用来定义全局数据和 函数的使用,它可以指定微信小程序 的生命周期函数。生命周期函数可以 理解为微信小程序自己定义的函数, 如onLaunch(监听小程序初始化)、 onShow(监听小程序显示)、onHide(监听小程序隐藏)等,在不同阶段、 不同场景可以使用不同的生命周期函 数。此外,App.js中还可以定义一些全 局的函数和数据,其他页面引用App.js 文件后就可以直接使用全局函数和数 据,如图所示。

    image.png

  • App.json小程序公共设置

image.png
image.png

  • 工具类文件

    在微信小程序框架目录里有一个“utils”文件夹,它用来存放工具栏的js函数,如可以放置一些 日期格式化的函数、时间格式化的函数等一些常用的函数。定义完这些函数后, 要通过
    module.exports将定义的函数名称注册进来,在其他的页面才可以使用,如图所示为时间格式化工 具类文件。

    image.png

  • 框架页面文件结构

    一个小程序框架页面文件由4个文件组成,分别是js页面逻辑、wxml页面结构、wxss页面 样式表和json页面配置,如表所示。

  • image.png
  • 框架页面文件

微信小程序的框架页面文件都是放置在“pages”文 件夹下面的,如图所示。每个页面都有一个独立的文件夹,就像日志页面的“logs”文件夹, 它的下面放置4个文件:logs.js可进行 业务路径处理;logs.json是页面的配置,可以覆盖全局App.json配置;logs.wxml是页面结构,负责渲染页面;logs.wxss是针对logs.wxml页面的样式文件。

image.png


  • 微信小程序注册程序应用

App.js文件不仅可以定义全局函数和数据,还可以注册一个小程序。在App()函数里可以完 成小程序的注册以及指定其生命周期函数。如表所示为生命周期函数的定义。

  • image.png

    1. onLaunch生命周期函数。它用来监听小程序初始化,一旦初始化完成,就会触发该函数, 这个生命周期函数只会触发一次。

    2. onShow生命周期函数。它用来监听小程序显示。微信小程序有前后台定义。当用户单击左上角的“关闭”按钮或者按“Home”键关闭或者突然来电话时,微信小程序都没有销毁, 而是进入后台;当再次进入微信或者小程序的时候才会触发onShow生命周期函数。只要程序启动或者从后台进入到前台都会触发该函数。

    3. onHide生命周期函数。它用来监听小程序隐藏,一旦微信小程序从前台进入到后台,就会 触发该函数。

    4. onError生命周期函数。它用来监听小程序脚本或者API是否发生错误,发生错误时返回错 误信息。


  • 微信小程序页面的JS

    在每个页面文件夹里,都有 一个页面对应的js文件,在这个文件里的Page()函数用于注册一个页面。 接受一个object 参数,其指定页面的初始数据、生命周期函数、 事件处理函数等页面的所有业务逻辑处理都放在这个文件里。
    object参数说明如表所示。

    image.png

  • 生命周期函数

    1. onLoad页面加载。一个页面只会调用一次,接收页面参数可以获取 wx.navigateTo和wx.redirectTo及<navigator/>中的query。

    2. onShow页面显示。每次打开页面都会调用一次

    3. onReady页面初次渲染完成。一个页面只会调用一次,代表页面已经准备妥当,可以和视 图层进行交互,对界面的设置如wx.setNavigationBarTitle请在onReady之后设置。

    4. onHide页面隐藏。当navigateTo或底部Tab切换时调用。

    5. onUnload页面卸载。当redirectTo或navigateBack时调用。


  • 页面相关事件处理函数

    1. onPullDownRefresh下拉刷新。监听用户下拉刷新事件,需要在config的window选项中开 启enablePullDownRefresh。当处理完数据刷新后,wx.stopPullDownRefresh可以停止当 前页面的下拉刷新。

    2.onShareAppMessage用户分享。只有定义了此事件处理函数,右上角菜单才会显示“分 享”按钮,用户单击“分享”按钮的时候会调用,此事件需要 return 一个 Object,用于 自定义分享内容。分享参数说明如表所示。

image.png

  • 页面路由管理

    1. 微信小程序的页面路由都是有微信小程序框架来管理的,路由的触发方式及页面生命周期 函数如表所示。

image.png
  • 自定义函数

    1. 除了初始化数据和生命周期函 数,Page 中还可以定义一些特殊 的函数:事件处理函数。在渲染层 可以在组件中加入事件绑定,当达到触发事件时,就会执行 Page 中 定义的事件处理函数。

    //写在wxml
    <view bindtap=”clickMe”> click me </view>
    
    //写在wxjs
      Page({
          clickMe: function() {  console.log(‘view tap’) }
      })
    

  • 微信小程序页面绑定数据

    1. WXML页面里的动态数据都是来自js 文件Page的data,数据绑定就是通过双大 括号({{}})将变量包起来,在WXML页面 里将数据值显示出来。

     //在 index.wxml写
      <view> {{ message }} </view>
    
     //在 index.js 写
    Page({
       data: {
            message: ‘Hello MINA!’
       } 
    })
    

  • 组件属性绑定

    1.组件属性绑定是将data里的数据绑定 到微信小程序的组件上。

    //在 index.wxml写
    <view id="item-{{id}}"> </view>
    
     //在 index.js 写
    Page({
      data: { 
         id: 0
      }
    })
    

  • 控制属性绑定

    1. 控制属性绑定用来进行if语句条件判断,如果满足条件,则执行,否则 不执行,示例代码如下。

    //在 index.wxml写
    <view wx:if="{{condition}}"> </view>
    
     //在 index.js 写
    Page({
      data: {  
          condition: true
      }
    })
    

  • wx:for 列表渲染组件

    1. 在组件上使用wx:for控制属性绑 定一个数组,即可使用数组中的各项 数据重复渲染该组件。默认数组当前 项的下标变量名默认为index,数组当 前项的变量名默认为item,示例代码 如下。

    //在 index.wxml写
    <view wx:for="{{array}}">
       {{index}}: {{item.message}}
    </view>
    
     //在 index.js 写
    Page({
      data: {  
          array: [
              {
              message: ‘foo’,
              } ,
              {
                message: ‘bar’
              }
          ]
      }
    })
    

  • 定义模板

    1. 在<template/>内定义代码片段, 使用name属性作为模板的名字,示 例代码如下。

    //在 index.wxml写
     <template name=”msgItem”>
         <view>
             <text> {{index}}: {{msg}} </text>
             <text> Time: {{time}} </text>
         </view>
     </template>
    

  • 使用模板

    1.在WXML文件里,使用is属性, 声明需要使用的模板,然后将模板 所需要的data传入,示例代码如下。

    //在 index.wxml写
    <import src=”item.wxml”/>
    <template is=”msgItem” data=”{{item}}”/> 
    
     //在 index.js 写
    Page({
      data: {
        item: {  
            index: 0,
            msg: ’this is a template’,  time: '2016-09-15'
        }
      }
    })
    

  • include引用

    1.include可以将目标文件除了<template/>之外的整个代码引入,相当于是复制到include位置, 示例代码如下。

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