当前位置:   article > 正文

第二章 微信小程序开发基础_mina框架微信小程序

mina框架微信小程序

一、小程序的基本目录结构

    如图所示在微信小程序的基本目录结构中,项目主目录下有2个子目录(pages和utils)和4个文(app.js、app.json、app.wxss和project.config.json)。

    在主目录中,3个以“app”开头的文件是微信小程序框架的主描述文件,是应用程序级别的文件。这3个文件不属于任何页面。

1.主体文件

■appjs小程序逻辑文件

■app.json 小程序公共设置文件

■app.json 小程序公共设置文件

2.页面文件

 ■.js文件 页面逻辑文件

■.wxml文件 页面结构文件

■.wxss文件 页面样式表文件

■.json文件 页面配置文件

二、小程序的开发框架

小程序MINA框架示意图

小程序MINA框架将整个系统划分为视图层和逻辑层。视图层(View)由框架设计的标签语言 WXML(WeiXin Markup Language)和用于描述 WXML组件样式的 wXSS(WeixinStyle Sheets)组成,它们的关系就像HTML和CSS的关系。

2.1视图层

MINA框架的视图层由WXML与WXSS编写,由组件来进行展示。对于微信小程序而言,视图层就是所有.wxml文件与.wxss文件的集合:.wxml文件用于描述页面的结构mxss文件用于描述页面的样式。

2.2逻辑层

(1)增加app()和Page()方法,进行程序和页面的注册。
(2)提供丰富的 API,如扫一扫、支付等微信特有的能力。
(3)每个页面有独立的作用域,并提供模块化能力。

2.3数据层

数据层在逻辑上包括页面临时数据或缓存、文件存储(本地存储)和网络存储与调用

1.页面临时教据或缓存
在Page()中,使用setDaa函数将数据从逻辑层发送到视图层,同时改变对应的tis. data 的值。
setData()函数的参数接收一个对象,以(key,value)的形式表示将key在tis, data中对应的值改变成value。
2.文件存储(本地存储)
使用数据 API接口,如下:
wx.gelStorege 获取本地数据缓
wx.setStorage 设置本地数据缓。
wx.cearStorage 清理本地数据缓
3.网络存储与调用
上传或下载文件AP接口,如下:
wx.request 发起网络请求
wx.uploadFile 上传文件。
wx.downloadFile下载文件
调用 URL的 AP接口,如下:
wx. navigateTo新窗口打开页面 

wx.redirectTo 原窗口打开页面

三、创建小程序页面

在pages目录下新建一个 index 目录,并在index 目录下新建 imndex js、inde. jom、dex wxml和 imdex. wxss 空文件。新建 index 页面后的项目目录结构如图

假设,我们的目的是页面能显示“欢迎学习小程序,实现大梦想”。首先,打开 index.wxml文件,输入“欢迎学习小程序,实现大梦想”。然后告诉系统这个文件的名称及所处路径。因此,打开项目配置文件app.json,输人如下代码:

  1. //app.json
  2. {
  3. "pages ":[
  4. "pages /index/index"
  5. ]
  6. }

这段代码将index 页面注册到小程序中,这个对象的第一属性 pages 接受了一个数组该数组的每一项是一个字符串,该字符串由“路径”+“文件名”组成,不包含扩展名.

pages属性用来指定这个项目由哪些页面组成,多个页面之间用“,”分隔。接下来,打开 index json 文件,输人如下代码:

  1. //index.json
  2. {
  3. }

在 indes json 文件中,只需加人一对空“{}”即可。打开 index. js 文件,输人如下代码:

  1. //index.js
  2. Page({
  3. })

只需引人 Page()方法,保证 indexjs 文件不为空即可。将这4个文件保存后进行编译,在模拟器中即可得到所需的结果。各文件的代码内容如表所示。

创建另一个页面文件

我们采用逐步创建目录及4个文件的方式成功创建了一个页面文件。
在本节中,我们采用另一种方式来创建另一个页面文件news。
打开 app.json 文件,输入以下代码:

  1. {
  2. "pages":[
  3. "pages/news/news",
  4. "pages/index/index"
  5. ]
  6. }

将文件保存后,我们发现系统在目录结构中自动添加了相应的目录和文件,系统补全了每个页面文件中必需的基本代码,而且没有出现错误提示,如图所示

四、配置文件

小程序的配置文件按其作用范围可以分为全局配置文件(app.json)和页面配置(*.json)。

全局配置文件

全局配置文件内容的整体结构如下:

  1. {
  2. //设置页面路径
  3. "pages " :[]
  4. //设置默认页面的窗口表现
  5. "window":{},
  6. //设置底部 tab 的表现
  7. "tabBar" :{},
  8. //设置网络请求API的超时时间值
  9. "networkTimeout ":{},
  10. //设置是否开启 debug 模式
  11. "debug" :false
  12. }

1.pages配置项

  1. {
  2. "pages":[
  3. "pages/news/news",
  4. "pages/index/index"
  5. ]
  6. }

2.window配置项

在app.json 中设置如下window配置项

  1. "window": {
  2. "navigationBarBackgroundColor": "#fff",
  3. "navigationBarTextStyle":"black",
  4. "navigationBarTitleText": "小程序window功能演示",
  5. "backgroundColor": "#ccc",
  6. "backgroundTextStyle":"light"
  7. }

3.tabBar配置项

list列表如下 

 在app.json 中设置如下tabBar配置项

  1. {
  2. "tabBar": {
  3. "color": "#666666",
  4. "selectedColor": "#ff0000",
  5. "borderStyle":"black",
  6. "backgroundColor": "#ffffff",
  7. "list": [
  8. {
  9. "pagePath": "pages/logs/logs",
  10. "iconPath": "images/news1.png",
  11. "selectedIconPath": "images/news2.png",
  12. "text": "首页"
  13. },
  14. {
  15. "pagePath": "pages/news/news",
  16. "iconPath": "images/news1.png",
  17. "selectedIconPath": "images/news2.png",
  18. "text": "新闻"
  19. }
  20. ]
  21. }

配置效果如图

4.networkTimeout配置项 

app.json使用下列超时设置 

  1. {
  2. "networkTimeout":{
  3. "request":20000
  4. "connectSocket":20000
  5. "uploadFile":20000
  6. "downloadFile".20000
  7. }
  8. }

五、逻辑层文件

项目逻辑文件

app.js配置文件

  1. // app.js
  2. App({
  3. onLaunch:function(){
  4. console.log("小程序初始化完成.......")
  5. },
  6. onShow:function (options){
  7. console.log("小程序显示");
  8. console.log(this.data);
  9. console.log(this.fun())
  10. },
  11. onHide:function(){
  12. console.log("小程序进入后台")
  13. },
  14. onError:function(msg){
  15. },
  16. fun:function(){
  17. console.log("在app.js中定义的方法");
  18. },
  19. data:'在app.js中定义属性'
  20. })

 保存编译后控制面板显示效果:

页面逻辑文件 配置项

1.设置初始数据代码以及数据绑定效果运行图

  1. Page({
  2. data:{
  3. name:'wuyu',
  4. age:30,
  5. birthday: [{year:1992},{month: 11 },{date: 18 }],
  6. object:{hobby:'computer'}
  7. }
  8. })
  1. //news.wxml
  2. <view>姓名:{{name}}</view>
  3. <view>年龄:{{age}}</view>
  4. <view>出生日期:
  5. {{birthday[0].year}}
  6. {{birthday[1].month}}
  7. {{birthday[2].date}}

六、页面结构文件

页面结构文件(WXML)是框架设计的一套类似HTML的标签语言,结合基础组件、事件系统,可以构建出页面的结构,即.wxm文件。在小程序中,类似HTML的标签被称为组件,是页面结构文件的基本组成单元。这些组件有开始(如<view>)和结束(如</view>)标志,每个组件可以设置不同的属性(如id、class 等),组件还可以嵌套。
WXML还具有数据绑定、条件数据绑定、列表数据绑定、模板、引用页面文件、页面事件等能力。;

条件数据绑定实例代码:

  1. <view wx:if="{{age>40}}">1</view>
  2. <view wx:elif="{{age==40}}">0</view>
  3. <view wx:eles>-1</view>

  1. Page({
  2. data:{
  3. name:'wuyu',
  4. age:30,
  5. birthday: [{year:1992},{month: 11 },{date: 18 }],
  6. object:{hobby:'computer'}
  7. }
  8. })

 运行图:

冒泡事件

七、页面样式文件 

 页面样式文件(WXSS)是基于CSS拓展的样式语言,用于描述WXML的组成样式,决定WXML,的组件如何显示。WXSS具有CSS的大部分特性,小程序对WXSS做了一些扩充和修改。

wxss常用属性

八、本章总结

本章首先讲解了小程序的目录结构,然后通过目录结构介绍了小程序的框架,最后主要介绍了小程序文件的类型及其配置。这些知识都是开发微信小程序的基础知识,大家必须深刻理解和熟练掌握,并勤写代码多加练习,为后续的学习打下扎实的基础。 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/997600
推荐阅读
相关标签
  

闽ICP备14008679号