微信小程序学习笔记 ( 小程序主体学习 一 配置 app.json 基础食用方法)

目录结构

目录结构
上图是我建立的的微信小程序的目录结构

主体学习

app.json

json简介

json在我们web开发中一般是作为前后端 数据交互 的方式, 他是以键值对的形式来进行数据的传输, 而他的书写规范也是极为简单的, 以{}来包括住整个json文件之后在里面使用 健值对的形式来,保存信息, 如

"key";"value"
"key":{"valuekey":"value"}
"key":["value1","value2"]

基本我们json的键值对就是上面的三种,再复杂的json都是由上面变种过来的, 每个键值对中间以’,’隔开. 而现在json也因为他的简单等一系列原因而慢慢地占据更多的位置, 好了这就是关于json的介绍,我们只要有了解就好了.

app.json总体

我们先看看微信给我们的满配的app.json(☺)

{
  "pages": [
    "pages/index/index",
    "pages/logs/index"
  ],
  "window": {
    "navigationBarTitleText": "Demo"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/index/index",
      "text": "首页"
    }, {
      "pagePath": "pages/logs/logs",
      "text": "日志"
    }]
  },
  "networkTimeout": {
    "request": 10000,
    "downloadFile": 10000
  },
  "debug": true
}

好了我们先对此有个了解就好了,接下来开始剖析了

下表为官方对各个字段的解释

属性类型必填描述
pagesString Array设置页面路径
windowObject设置默认页面的窗口表现
tabBarObject设置底部 tab 的表现
networkTimeoutObject设置网络超时时间
debugBoolean设置是否开启 debug 模式

我们也会根据这个表格来进行相对应的解释

pages

类型 StringArray 字符串数组
必填
描述 设置页面路径
pages他是接受一个数组,指定小程序是由那些页面组成, 每个字符串的组成为 [路径+文件名(去掉后缀)], 第一个代表了小程序的初始页面, 而且不在这里面配置的路径是不可以访问的, 而且在这里面写个新路径微信编译器也会自动生成对应的四个文件.wxml .js .index.wxss .json, 注意微信小程序已经做好了优化, 他会自动将四个同名的文件进行关联,不需要自己做,这个在以后的开发中会有体现
自动生成没有的四个文件 在微信IDE开发环境下
自动生成文件

window

下表为微信官方解释

属性类型默认值描述最低版本
navigationBarBackgroundColorHexColor#000000导航栏背景颜色,如#000000
navigationBarTextStyle String white 导航栏标题颜色,仅支持 black/white
navigationBarTitleTextString导航栏标题文字内容
navigationStyleStringdefault导航栏样式,仅支持 default/custom。custom 模式可自定义导航栏,只保留右上角胶囊状的按钮微信版本 6.6.0
backgroundColorHexColor#ffffff窗口的背景色
backgroundTextStyleStringdark下拉 loading 的样式,仅支持 dark/light
backgroundColorTopString#ffffff顶部窗口的背景色,仅 iOS 支持微信版本 6.5.16
backgroundColorBottomString#ffffff底部窗口的背景色,仅 iOS 支持微信版本 6.5.16
enablePullDownRefreshBooleanfalse是否开启下拉刷新
onReachBottomDistanceNumber50页面上拉触底事件触发时距页面底部距离,单位为px

附带官方解释图片
微信官方解释图片

  1. navigationBarBackgroundColor
    类型  HexColor 使用十六进制来表示颜色,具体的可以上网查看
    默认  #000000
    作用  设置导航栏的背景颜色
    测试  我将我的导航栏设计为天依蓝 #66ccff

      "window":{
        "navigationBarBackgroundColor": "#66ccff"
      }
  2. navigationBarTextStyle

    类型  String 仅支持 black/white
    默认  white
    作用  设置标题字体颜色
    测试  默认的是白的,但生成的时候是黑色的,我要将他调回来,而且为了防止将来发生改变,建议默认的是写上比较好,发现其实白色的也挺好看的

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white"
      }
  3. navigationBarTitleText
    类型  String
    默认  无
    作用  作为导航栏标题
    测试  将 Hello,World 作为标题

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World"
      }
  4. navigationStyle
    类型  String 仅支持default以及custom
    默认  default
    作用  设置导航栏样式
    default 模式就是我们默认显示的那个标题栏
    custom   模式可自定义导航栏,只保留右上角胶囊状的按钮
    测试   我感觉还是使用默认的比较好

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World",
        "navigationStyle": "default"
      }
  5. enablePullDownRefresh
    类型   Boolean
    默认   false
    作用   是否开启下拉刷新
    测试   设置为true

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World",
        "navigationStyle": "default",
        "enablePullDownRefresh" : true
      }
  6. backgroundColor
    类型  HexColor 使用十六进制来表示颜色
    默认  #ffffff 白色
    作用   调整窗体的背景颜色. 知道么? 本来我是把这个作为第五个的但是我发现写了以后没有地方可以用这就很尴尬了…, 我一直在找那个 background 在哪, 之后在我看到下拉刷新后就明白了
    测试   将背景设为灰色 #F1F1F1

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World",
        "navigationStyle": "default",
        "enablePullDownRefresh" : true,
        "backgroundColor": "#F1F1F1"
      }
  7. backgroundTextStyle
    类型   String 可选值dark / light
    默认   dark
    作用   影响下拉loading 的样式
    测试   在经过测试后我发现还是 dark 这个样式好看,给人一种在加载的感觉

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World",
        "navigationStyle": "default",
        "enablePullDownRefresh" : true,
        "backgroundColor": "#F1F1F1",
        "backgroundTextStyle" : "dark"
      }

    接下来的是ios支持的

  8. backgroundColorTop
    类型   String
    默认   #ffffff 白色
    作用   顶部窗口的背景色, 其实他会覆盖掉我们上面设计的 backgroundColor 目前是这样的, 而且说是只会在ios中启用我只是在虚拟机中测试了,切换不同的手机, 发现还是启用了而且覆盖掉了,很神奇
    测试   我将这个设置为#ff0000 展示覆盖

          "window":{
            "navigationBarBackgroundColor": "#66ccff",
            "navigationBarTextStyle":"white",
            "navigationBarTitleText": "Hello,World",
            "navigationStyle": "default",
            "enablePullDownRefresh" : true,
            "backgroundColor": "#F1F1F1",
            "backgroundTextStyle" : "dark",
            "backgroundColorTop" : "#ff0000"
          }
  9. backgroundColorBottom
    类型   String
    默认   #ffffff 白色
    作用   底部窗口的背景色, 而且因为backgroundColorTop的原因,说是只会在ios中启用我对此表示不相信
    测试   我将这个设置为#ffffff

      "window":{
        "navigationBarBackgroundColor": "#66ccff",
        "navigationBarTextStyle":"white",
        "navigationBarTitleText": "Hello,World",
        "navigationStyle": "default",
        "enablePullDownRefresh" : true,
        "backgroundColor": "#F1F1F1",
        "backgroundTextStyle" : "dark",
        "backgroundColorTop" : "#ff0000",
        "backgroundColorBottom" : "#ffffff"
      }
  10. onReachBottomDistance
    类型   Number 单位 px
    默认   50
    作用   说是上拉触底事件,但是我也没法上拉啊,等我回来学到了再说
    演示代码效果
    代码展示
    代码展示
{
  "pages":[
    "pages/index/index",
    "pages/logs/logs",
    "pages/mypage/mypage"
  ],
  "window":{
    "navigationBarBackgroundColor": "#66ccff",
    "navigationBarTextStyle":"white",
    "navigationBarTitleText": "Hello,World",
    "navigationStyle": "default",
    "enablePullDownRefresh" : true,
    "backgroundColor": "#F1F1F1",
    "backgroundTextStyle" : "dark",
    "backgroundColorTop" : "#ff0000",
    "backgroundColorBottom" : "#ffffff",
    "onReachBottomDistance" : 50
  }
}

tabBar

属性类型必填默认值描述
colorHexColortab 上的文字默认颜色
selectedColorHexColortab 上的文字选中时的颜色
backgroundColorHexColortab 的背景色
borderStyleStringblacktabbar上边框的颜色, 仅支持 black/white
listArraytab 的列表,详见 list 属性说明,最少2个、最多5个 tab
positionStringbottom可选值 bottomtop
  1. list
    类型   Array 必填
    默认   无
    作用   在顶部或底部创建按钮组
    测试   我将系统原生的两个页面,作为按钮组

    "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ]
      }
  2. color
    类型   HexColor
    默认   无
    作用   tab上的文字默认颜色
    测试   我采用了黑色的字 #000000

      "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ],
        "color" : "#000000"
      }
    }
  3. selectedColor
    类型   HexColor 必填
    默认   无
    作用   tab上的文字被选中的颜色
    测试   我将被选中的颜色设置为 绿色 #009900

    "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ],
        "color" : "#000000",
        "selectedColor" : "#009900"
      }
  4. backgroundColor
    类型   HexColor 必填
    默认   无
    作用   tab的背景色
    测试   我将背景色设置为白色 #ffffff

      "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ],
        "color" : "#000000",
        "selectedColor" : "#009900",
        "backgroundColor" : "#ffffff"
      }
  5. borderStyle
    类型   String 非必填
    默认   black
    作用   tab按钮组容器的边框
    测试   我试图调为白色但是感觉不好看,然后我又调为默认的黑色

      "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ],
        "color" : "#000000",
        "selectedColor" : "#009900",
        "backgroundColor" : "#ffffff",
        "borderStyle" : "black"
      }
  6. position
    类型   String 支持bottom / top
    默认   bottom
    作用   设置tabBar是在顶部还是底部
    测试   设置为底部,其实顶部也很好看,但是为了接下来我还是设置为底部

      "tabBar": {
        "list": [
          {
            "pagePath": "pages/index/index",
            "text": "首页"
          },
          {
            "pagePath": "pages/logs/logs",
            "text": "日志"
          }
        ],
        "color" : "#000000",
        "selectedColor" : "#009900",
        "backgroundColor" : "#ffffff",
        "borderStyle" : "black",
        "position" : "bottom" 
      }

    效果演示
    tabBar详解
    list解析
    这个主要是用于对你的tabBar里面的list中的item进行定制操作
    下表为官方文档

属性类型必填说明
pagePathString页面路径,必须在 pages 中先定义
textStringtab 上按钮文字
iconPathString图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px,当 postiontop 时,此参数无效,不支持网络图片
selectedIconPathString选中时的图片路径,icon 大小限制为40kb,建议尺寸为 81px * 81px ,当 postiontop 时,此参数无效

对于前两个很简单, 一个是这个item对应的页面, 一个是要显示的文字,现在我要把我自己创建的一个页面添加进来

"list": [
      {
        "pagePath": "pages/index/index",
        "text": "首页"
      },
      {
        "pagePath": "pages/logs/logs",
        "text": "日志"
      },
      {
        "pagePath": "pages/mypage/mypage",
        "text": "我"
      }
    ]

演示
item演示

后两个应当也是成组出现的, 一个是未选中的图标, 一个是已选中的图标
在此打个广告 iconfont 阿里巴巴矢量图库 我采用的是这里的图标,挺好的

我将下下来的用户设置为 user.png, 填充的设置为 userUse.png
首先我设置了 iconPath,当点击时会没有图片

      {
        "pagePath": "pages/mypage/mypage",
        "text": "我",
        "iconPath" : "imgs/user.png"
      }

演示
仅iconPath
我们发现在选中时图片没了, 这是肯定的,因为我们只设置了没选中的, 那么接下来我们设置下选中图片selectedIconPath

      {
        "pagePath": "pages/mypage/mypage",
        "text": "我",
        "iconPath" : "imgs/user.png",
        "selectedIconPath" :"imgs/userUse.png"
      }

演示
设置选中的

我们还记得 假如position值为top时图标不会显现, 让我们试试

测试

networkTimeout

这个因为暂时我们并没有学习对应的js,我们先把官方文档搞到手

属性类型必填说明
requestNumberwx.request的超时时间,单位毫秒,默认为:60000
connectSocketNumberwx.connectSocket的超时时间,单位毫秒,默认为:60000
uploadFileNumberwx.uploadFile的超时时间,单位毫秒,默认为:60000
downloadFileNumberwx.downloadFile的超时时间,单位毫秒,默认为:60000

我只解释里面的三个因为有一个我也没看懂. 或许后面就懂了

  1. request
    类型   Number 单位 毫秒 否
    默认   无
    作用   设置request请求超时时间
    测试   我设为10秒吧,原本是60秒

      "networkTimeout" : {
        "request" : 10000
      }
  2. uploadFile
    类型   Number 单位 毫秒 否
    默认   无
    作用   设置上传文件请求超时时间
    测试   这个设为20秒,原本是60秒

      "networkTimeout" : {
        "request" : 10000,
        "uploadFile" : 20000
      }
  3. downloadFile
    类型   Number 单位 毫秒 否
    默认   无
    作用   设置下载文件超时时间
    测试   这个设为20秒,原本是60秒

      "networkTimeout" : {
        "request" : 10000,
        "uploadFile" : 20000,
        "downloadFile" : 20000
      }

    这个也没什么演示的,等我回来做网络访问时一起做了

debug

关于debug 我给出官方解释

可以在开发者工具中开启 debug 模式,在开发者工具的控制台面板,调试信息以 info
的形式给出,其信息有Page的注册,页面路由,数据更新,事件触发 。 可以帮助开发者快速定位一些常见的问题。

在使用debug 后我们会发现控制台提示量会显著提升,示例
debug

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值