第二章总结

微信小程序开发基础

小程序的基本目录结构

  1. app.js: 这是小程序的入口文件,包含小程序的生命周期函数、全局变量等。在这个文件中,你可以进行一些全局配置和初始化工作。

  2. app.json: 用于配置小程序的全局设置,如窗口背景色、导航栏样式、页面路径等。在这个文件中,你可以定义小程序的页面结构,设置小程序的全局配置项。

  3. app.wxss: 小程序的全局样式文件,定义整个小程序的样式风格,包括文字样式、颜色等。

  4. pages目录: 存放小程序的各个页面,每个页面通常由四个文件组成:

    • page.js: 页面的逻辑代码。
    • page.json: 页面的配置文件,用于配置页面的一些特殊设置,如页面标题、导航栏样式等。
    • page.wxml: 页面的结构代码,使用类似HTML的标签语言定义页面结构。
    • page.wxss: 页面的样式文件,定义页面的样式。
  5. utils目录: 存放一些工具函数或者公共的业务逻辑代码。

小程序的开发框架

小程序的开发框架涉及MINA,MINA将系统分为视图层和逻辑层,以下是关于三个层次的总结

视图层(view)分为VXMLWXSS

VXML:视图层主要由WXML负责,用于描述小程序的页面结构。WXML类似于HTML,负责展示页面的布局和结构。

WXSS:视图层的样式由WXSS定义,类似于CSS。WXSS用于控制页面的外观,包括颜色、字体、布局等。

逻辑层: 负责页面的业务逻辑和事件处理,使用JavaScript编写,通过生命周期函数响应页面的生命周期事件。

数据层: 通过数据绑定实现逻辑层和视图层之间的数据同步,同时可以通过逻辑层发起网络请求获取数据。

如何创建小程序页面

1.打开app.json文件

2.在“pages"中复制已有的路径,并更改后面两个路径的名称即可,另一种是右击pages文件夹新建文件夹,在右击新建的文件夹,新建Page即可

清空创建的四个文件内容,在wxml中写入要写的内容;.js文件中有page({})即可;.json文件中有一对{}即可,至此创建完成

当下运行结果

配置文件

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

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

以下是一个包含了部分常用配置选项的 app.json :

{
  "pages": [
    "pages/admin/admin",
    "pages/logs/logs",
    "pages/news/news"
  ],
  "window": {
   "navigationBarBackgroundColor": "#00FFFF",
   "navigationBarTextStyle":"black",
   "navigationBarTitleText": "小程序window功能演示",
   "backgroundTextStyle":"light",
   "backgroundColor": "#DF3737"
  },
  "tabBar": {
    "color": "#DF3737",
    "selectedColor": "#ff0000",
    "borderStyle":"black",
    "backgroundColor": "#00FFFF",
    "list": [{
      "pagePath": "pages/admin/admin",
      "iconPath": "pages/image/001.png",
      "selectedIconPath": "pages/image/002.png",
      "text": "首页"
    },
    {
      "pagePath": "pages/news/news",
      "iconPath": "pages/image/003.png",
      "selectedIconPath": "pages/image/004.png",
      "text": "新闻"
    }
  
  ]
  },
  "style": "v2",
  "rendererOptions": {
    "skyline": {
      "defaultDisplayBlock": true,
      "disableABTest": true,
      "sdkVersionBegin": "3.0.0",
      "sdkVersionEnd": "15.255.255"
    }
  },
  "componentFramework": "glass-easel",
  "sitemapLocation": "sitemap.json",
  "lazyCodeLoading": "requiredComponents"
}

页面配置

每一个小程序页面也可以使用同名 .json 文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项。

例如:

Page({
  data:{
    name:'lwk',
    age:30,
    num:"what",
    birthday:[{ year:1991},{ month:11},{data:18}],
    obiect:{hobby:'computer'},
    students:[
      {nickname:"linni",height:"160",weight:"85"},
      {nickname:"tiany",height:"150",weight:"90"}
  ]
  }
})

逻辑层文件

在微信小程序开发中,逻辑层主要包含小程序的页面逻辑和交互,主要由两个类型的文件组成:*.js(逻辑层文件)和*.wxml(视图层文件)。

  1. 逻辑层文件(*.js):

    • 作用: 包含小程序页面的逻辑代码,处理用户交互、网络请求、数据处理等任务。
    • 生命周期函数: 包括 onLoad(页面加载时触发)、onShow(页面显示时触发)、onHide(页面隐藏时触发)等,用于执行不同阶段的逻辑操作。
    • 数据绑定: 通过 data 字段定义页面数据,可以通过数据绑定在视图层显示数据。
    • 事件处理: 通过事件绑定和事件处理函数,响应用户的交互操作,例如点击、输入等。
  2. 视图层文件(*.wxml):

    • 作用: 定义小程序页面的结构和布局,使用类似 HTML 的语法。
    • 数据绑定: 使用 {{}} 语法进行数据绑定,将逻辑层的数据显示在页面上。
    • 条件渲染和循环渲染: 使用 wx:ifwx:for 等指令进行条件渲染和循环渲染,实现动态展示页面内容。
    • 事件绑定: 通过 bindcatch 绑定事件,将用户的交互操作传递给逻辑层处理。
  3. 样式层文件(*.wxss):

    • 作用: 定义小程序页面的样式,类似于 CSS。
    • 全局样式和局部样式: 可以定义全局样式和局部样式,通过 app.wxss 实现全局样式,通过页面独立的 page.wxss 实现局部样式。
    • 样式导入: 可以使用 @import 导入外部样式文件。
  4. 模板文件(*.wxml):

    • 作用: 将页面中重复的结构和代码抽离成模板,提高代码复用性。
    • 模板引入: 使用 <import><template> 标签引入模板文件,通过 is 属性调用模板。

逻辑层文件通过生命周期函数和事件处理实现与视图层的交互,数据绑定实现数据的动态展示,样式层文件定义页面的样式,而模板文件提高了代码的可维护性和复用性。这些文件共同构成了微信小程序的逻辑层。

页面结构文件

什么是页面结构文件?

页面结构文件通常是指网页的HTML文件,用于标记网页的结构和内容

在微信小程序开发中,页面结构文件通常是WXML,用于描述小程序页面结构,类似于HTML,但有一些特有的语法和标签

WXML还具有数据绑定之类的能力

数据绑定

WXML 中的动态数据均来自对应 Page 的 data。

简单绑定

数据绑定使用 Mustache 语法(双大括号)将变量包起来,可以作用于:

内容

<view> {{ message }} </view>
Page({
  data: {
    message: 'Hello MINA!'
  }
})

组件属性(需要在双引号之内)

<view id="item-{{id}}"> </view>
Page({
  data: {
    id: 0
  }
})

关键字(需要在双引号之内)

true:boolean 类型的 true,代表真值。

false: boolean 类型的 false,代表假值。

<checkbox checked="{{false}}"> </checkbox>

运算

可以在 {{}} 内进行简单的运算,支持的有如下几种方式:

三元运算
<view hidden="{{flag ? true : false}}"> Hidden </view>
 算数运算
<view> {{a + b}} + {{c}} + d </view>
Page({
  data: {
    a: 1,
    b: 2,
    c: 3
  }
})
逻辑判断 
<view wx:if="{{length > 5}}"> </view>

数组 

 

<view wx:for="{{[zero, 1, 2, 3, 4]}}"> {{item}} </view>

实操 

运行结果 

流程

  1. 创建一个自己的文件:app.json文件中找到“pages”,复制其中一行代码,粘贴并更改后两项便会自动创建文件
  2. 设置app.json中的内容
    "window": {
       "navigationBarBackgroundColor": "#00FFFF",
       "navigationBarTextStyle":"black",
       "navigationBarTitleText": "小程序window功能演示",
       "backgroundTextStyle":"light",
       "backgroundColor": "#DF3737"
      },
      "tabBar": {
        "color": "#DF3737",
        "selectedColor": "#ff0000",
        "borderStyle":"black",
        "backgroundColor": "#00FFFF",
        "list": [{
          "pagePath": "pages/admin/admin",
          "iconPath": "pages/image/001.png",
          "selectedIconPath": "pages/image/002.png",
          "text": "首页"
        },
        {
          "pagePath": "pages/news/news",
          "iconPath": "pages/image/003.png",
          "selectedIconPath": "pages/image/004.png",
          "text": "新闻"
        }
      
      ]
      },
      "style": "v2",
      "rendererOptions": {
        "skyline": {
          "defaultDisplayBlock": true,
          "disableABTest": true,
          "sdkVersionBegin": "3.0.0",
          "sdkVersionEnd": "15.255.255"
        }
      },
      "componentFramework": "glass-easel",
      "sitemapLocation": "sitemap.json",
      "lazyCodeLoading": "requiredComponents"
    }

    注意

    "pages": [
        "pages/index/index",
        "pages/ages/ages",
        "pages/logs/logs"
      ],

    路径须与左边的资源管理器位置对应,不然可能会报错,路径填自己的就行,还要新建一个image的文件存放图片(ps:右击文件在资源管理器打开,然后将图片放到对应的image文件即可)

  3. 打开自己创建的文件,点击xxx.js,将以下代码输入

    Page({
      data:{
        name:'lwk',
        age:30,
        num:"what",
        birthday:[{ year:1991},{ month:11},{data:18}],
        obiect:{hobby:'computer'},
        students:[
          {nickname:"linni",height:"160",weight:"85"},
          {nickname:"tiany",height:"150",weight:"90"}
      ]
      }
    })
    

  4. xxx.wxml
    <view>姓名:{{ name }}</view>
    <view>年龄:{{age}}</view>
    <view>出生日期:
    {{birthday[0].year}}年
    {{birthday[1].month}}月
    {{birthday[2].data}}日
    </view>
    <view>算数运算:{{age+"what"}}</view>
    <view>逻辑运算:{{age==40}}</view>
    <view>三目运算:{{"what"==age ? 001 : 37}}</view>
    <view wx:if="{{age>40}}">01</view>
    <view wx:elif="{{age==40}}">02</view>
    <view wx:else>03</view>
    <template name="stu">
    <view wx:for="{{students}}">
    <text>{{item.nickname}}</text>
    <text>{{item.height}}</text>
    <text>{{item.weight}}</text></view></template>
    <template is="stu" data="{{students}}">
    </template>
    
    
    

     

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值