微信小程序极简入门(七)--微信小程序的开发概述

一 MINA框架

当我们用小程序的快速启动模版创建项目的时候,我们已经使用了小程序自带的框架MINA。

这个开发框架的目标是通过尽可能简单、高效的方式让开发者可以在微信中开发具有原生APP体验的服务。
框架提供了自己的视图层描述语言WXML和WXSS,以及基于JavaScript的逻辑层框架,并在视图层与逻辑层间提供了数据传输和事件系统,可以让开发者可以方便的聚焦于数据与逻辑上。

二 响应的数据绑定

MINA的核心是一个响应的数据绑定系统。

整个系统分为两块视图层(View)和逻辑层(App Service)

举个简单的例子:
在快速启动的模板项目中,在pages/index/index.wxml(视图层)中写如下代码:

<view> Hello {{name}}! </view>
<button bindtap="changeName"> Click me! </button>

在pages/index/index.js(逻辑层):

var helloData = {
  name: 'world'
}

Page({
  data:helloData,
  changeName(){
  this.setData({
    name: 'MINA'
  })
}
})

开发者通过框架将逻辑层数据中的name与视图层的name进行了绑定,所以在页面一打开的时候会显示Hello world!
当点击按钮的时候,视图层会发送changeName的事件给逻辑层,逻辑层找到对应的事件处理函数
逻辑层执行了setData的操作,将name从weChat变为MINA,因为该数据和视图层已经绑定了,从而视图层会自动响应改变为Hello MINA! 。

三 页面管理

MINA框架管理了整个小程序的页面路由,可以做到页面的无缝切换,并给以页面完整的生命周期,开发者需要做的只是将页面的数据、方法、生命周期函数注册进框架中,其它一切的操作都交由我们的MINA处理。

四 MINA文件结构

一个小程序主体部分由三个文件组成,必须放在项目的根目录下

app.js:必填,负责小程序的逻辑
app.json:必填,负责小程序公共设置
app.wxss:非必填,负责小程序公共样式表

五 框架页面

一个框架页面由四个文件组成:
js:必填,页面逻辑
wxml:必填,页面结构
wxss:非必填,页面样式表
hson:非必填,页面配置

注意:为了方便开发者减少配置项,小程序规定描述页面的这四个文件必须具有相同的路径与文件名,当然我们在app.json的pages新建相应的页面自然会建立一个包含四个文件的规范框架页面

六 小程序配置

我们使用app.json文件来对微信小程序进行全局配置,决定页面文件的路径、窗口表现、设置网络超时时间、设置多 tab 等。

以下是一个包含了所有配置选项的简单配置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
}

显而易见的人性化json选项,我们可以从代码中阅读他们的相关作用。

1.pages
接受一个数组,每一项都是字符串,来指定小程序由哪些页面组成。每一项代表对应页面的【路径+文件名】信息,数组的第一项代表小程序的初始页面。小程序中新增/减少页面,都需要对 pages 数组进行修改。
文件名不需要写文件后缀,因为框架会自动去寻找路径.json,.js,.wxml,.wxss的四个文件进行整合。

2.window
用于设置小程序的状态栏、导航条、标题,窗口背景色.

这里写图片描述

可以在app.json的window选项中配置这些选项试试看都是什么效果。

3.tabBar
如果我们的小程序是一个多 tab 应用(客户端窗口的底部有tab栏可以切换页面),那么我们可以通过 tabBar 配置项指定 tab 栏的表现,以及 tab 切换时显示的对应页面。

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

5.page.json

每一个小程序页面也可以使用.json文件来对本页面的窗口表现进行配置。页面的配置比app.json全局配置简单得多,只是设置 app.json 中的 window 配置项的内容,页面中配置项会覆盖 app.json 的 window 中相同的配置项。
页面的.json只能设置window相关的配置项,以决定本页面的窗口表现,所以无需写window这个key。

已标记关键词 清除标记
相关推荐
后台技术选型: <ul style="color:#2F2F2F;"> <li> JDK8 </li> <li> MySQL </li> <li> Spring-boot </li> <li> Spring-data-jpa </li> <li> Lombok </li> <li> Freemarker </li> <li> Bootstrap </li> <li> Websocket </li> </ul> 小程序端技术选型 <ul style="color:#2F2F2F;"> <li> 微信程序 </li> </ul> <div style="text-align:center;color:#2F2F2F;"> <div style="background-color:transparent;"> <div> </div> <div> <img alt="" src="https://upload-images.jianshu.io/upload_images/6273713-928017278f465cbd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp" /> </div> </div> <div style="font-size:14px;color:#969696;"> <br /> </div> </div> 小程序端 <div style="text-align:center;color:#2F2F2F;"> <div style="background-color:transparent;"> <div> </div> <div> <img alt="" src="https://upload-images.jianshu.io/upload_images/6273713-8d6c2b81701d32cd.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1000/format/webp" /> </div> </div> <div style="font-size:14px;color:#969696;"> <br /> </div> </div> <ul style="color:#2F2F2F;"> <li> 扫码点餐 </li> <li> 菜品分类显示 </li> <li> 模拟支付 </li> <li> 评论系统 </li> <li> 购物车 </li> </ul> <p> <span><img alt="" src="https://img-bss.csdn.net/201907270119553529.png" /><br /> </span> </p> <p> <span><img alt="" src="https://img-bss.csdn.net/201907270120098756.png" /><br /> </span> </p> <p> <span><img alt="" src="https://img-bss.csdn.net/201907270120405331.png" /><br /> </span> </p> <p> <span><img alt="" src="https://img-bss.csdn.net/201907270120538298.png" /><img alt="" src="https://img-bss.csdn.net/201907270121012487.png" /><br /> </span> </p>
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页