微信小程序之注册配置

微信小程序之注册配置

小程序页面结构

pages
pages/app.js(小程序注册入口)
pages/app.json(小程序路由配置以及app窗口设置)
pages/app.wxss(小程序公共样式)
pages/moduleName/moduleName.js(小程序模块应用逻辑,MVC中的Model和Control)
pages/moduleName/moduleName.json(小程序应用模块的窗口配置,会覆盖app.json的窗口配置)
pages/moduleName/moduleName.wxml(小程序应用模块页面)
pages/moduleName/moduleName.wxss(小程序应用模块样式)

小程序框架与MVC简述
  • 小程序框架

    小程序划分为视图层(View)和逻辑层(AppService)的两层框架,并在视图层和逻辑层之间提供
    数据传输和事件系统。严格意义上,按照MVC的框架模式而言,小程序的逻辑层包含MVC中的Model以及Controller.

  • MVC简述

    • View有两层作用,其一是负责从Model层接收、渲染和显示数据;其二是负责接受和传递数据到Controller层;
    • Controller也有两层作用,其一是接收View层抑或是请求URL传递的表单数据,并对表单数据进行控制校验,其二是处理用户交互体验效果,比如在View进行动画效果设置、滚动加载体验等;
    • Model层,负责接受Controller传输的数据并对数据进行逻辑处理后返回给View层。
  • MVC优点

    其一,分层的设计有助于管理复杂的应用程序,将数据逻辑与界面显示分离,有助于后期针对相应的层级维护和管理;
    其二,简化分组开发,能够独让负责不同业务模块的开发者进行模块化功能开发,并行推进项目进度

小程序入口文件app.js、app.json以及app.wxss
  • app.js,小程序入口配置

    App({
      onLaunch: function() { 
        //小程序生命周期初始化,全局加载(调用)一次,一般是用于程序启动时加载应用共享资源,
      },
      onShow: function() {
        //当小程序启动,或从`后台进入前台显示`,会触发 onShow,监听小程序显示,会被调用多次
      },
      onHide: function() {
         //当小程序从前台进入后台时,会触发onHide事件,会被调用多次
         
      },
      globalData: 'I am global data'
    })  
    
    • 前台:指重新打开小程序显示,即从退出当前应用,用户又打开该应用
    • 后台:是指退出小程序应用(并非完全退出或关闭),相当于按手机返回键退出当前应用,但是小程序还在所谓的【后台】运行
    • App() 必须在 app.js 中注册,且不能注册多个
    • 不要在定义于 App() 内的函数中调用 getApp() ,使用 this 就可以拿到 app 实例
    • 不要在 onLaunch 的时候调用 getCurrentPage(),此时 page 还没有生成,补:getCurrentPage()已弃用,改用getCurrentPages()
    • 通过 getApp() 获取实例之后,不要私自调用生命周期函数,即onLaunch,onShow,onHide这三个周期函数,自定义的函数是不属于生命周期函数范围内
  • app.json,小程序应用模块的路由配置、窗口以及Tab配置,#仅作为注释说明,实际配置应该去掉

    {
        "pages":[
            "page/index/index", ##page配置的数组的第一项作为小程序的初始页面
            "page/logs/logs"    
        ],  
        
        "window":{
            ## 配置导航条
            "navigationBarBackgroundColor":"#9084cc", ##背景颜色,HexColor类型(16进制颜色值)
            "navigationBarTextStyle":"dark",##标题颜色,仅支持dark/white
            "navigationBarTitleText":"我的订单",##标题内容,String
            
            ## 配置窗口
            "backgroundColor":"#909902",##窗口背景色,HexColor类型
            "backgroundTextStyle":"dark",##下拉背景字体,String,仅支持 dark/light
            
            "enablePullDownRefresh"true,##是否开启下拉刷新
        },
        
        "tabBar":{
            "color":"",             ##tab 上的文字颜色
            "selectedColor":"", ##tab 上的文字选中时的颜色
            "backgroundColor":"",   ##tab 的背景色
            "borderStyle":"",       ##tabbar上边框的颜色, 仅支持 black/white
            
            ##tab 的列表,最少2个、最多5个 tab
            "list":[
                {
                    "pagePath":"",          ##页面路径,必须在 pages 中先定义
                    "text":"",              ##tab 上按钮文字
                    "iconPath":"",          ##图片路径,icon 大小限制为40kb 
                    "selectedIconPath":""  ##选中时的图片路径,icon 大小限制为40kb
                },
            ]
        },
        
        ##时间单位 「毫秒」
        "networkTimeout":{
            "request":3000,        ##   wx.request的超时时间
            "connectSocket":5000, ## wx.connectSocket的超时时间
            "uploadFile":10000, ## wx.uploadFile的超时时间
            "downloadFile":10000  ## wx.downloadFile的超时时间
        },
        
        ##开发者工具的控制台面板,调试信息以 info 的形式给出,其信息有Page的注册,页面路由,数据更新,事件触发 
        "debug":true
    }
    
    • pages是属于Array类型,Array的每一项都是url的字符串,url为相对根目录下的module路径,无需扩展名,框架会自动加载module下的js、wxml、wxss、json文件
    • 配置的pages下的module的js,wxss,json,wxml必须为相同的名称,框架会根据module名称自动加载上述的扩展名文件
    • tab上的list,最少2个、最多5个
  • app.wxss

    app.wxss
    /**定义的样式将应用到小程序所有的模块中**/
    view,image,scroll-view,text{
    margin: 0px;
    padding: 0px;
    }
    .headerView{
    width: 100%;
    height: 32px;
    background: floralwhite;
    }
    /**其他样式**/
    .....
    
    • 尺寸单位

      • responsive pixel,即rpx,响应式像素,是一种能够提供各种设备都能阅读的一种设计方法,在微信小程序中,以iphone6作为屏幕标准,1rpx = 0.5px,微信小程序在底层会根据我们设定的px来对屏幕自适应,有助于开发者更集中于开发,应用场景在设置间距、长宽等
      • root em,即rem,是css3新定义的一种长度单位,相对于页面定义的html根元素来调整大小,与em相对父元素调整大小更兼具相对和绝对字体调整大小的优势,在微信小程序中,1rem = 750/20 rpx = 75px,规定标准的iphone6的宽度是20rem,应用场景在于设置字体大小
    • 样式导入

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

推荐阅读更多精彩内容