首页 > 编程语言 >微信小程序开发基础

微信小程序开发基础

时间:2024-03-13 17:33:54浏览次数:31  
标签:文件 微信 程序开发 基础 item 事件 wx pages 页面

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

1、pages:存放全部的页面文件,有两子目录index与logs
2、utils:存放一些公共的.js文件(例如:格式化时间的自定义模块)
3、app.json:小程序公共设置文件,配置小程序全局设置
4、app.js:小程序逻辑文件,用来小程序全局实例
5、app.wxss:小程序主样式表文件
6、project.config.json:项目配置文件

        通常,每一个页面包含4个不同扩展名(.wxml、.wxss、.js、.json) 的文件,分别用于表示页面的结构、样式、逻辑、配置文件。

二、小程序的开发框架

       1.视图层:MINA框架的视图层由WXML与WXSS 编写,由组件来进行展示.wxml文件用于描述页面的结构; .wxss文件用于描述页面的样式。
       2. 逻辑层:逻辑层用于处理事务逻辑。
       3.数据层:数据层在逻辑上包括页面临时数据或缓存文件存储(本地存储)和网络存储与调用。
     (1)页面临时数据或缓存
     (2)文件存储(本地存储)
       wx.getStorage:获取本地数据缓存
       wx.setStorage:设置本地数据缓存
       wx.clearStorage:清理本地数据缓存
     (3)网络存储与调用
       wx.request: 发起网络请求
       wx.uploadFile: 上传文件
       wx.downloadFile: 下载文件
      调用URL的API接口,如下:
      wx.navigateTo :新窗口打开页面
      wx.redirectTo: 原窗口打开页面

三、小程序的配置文件

1、小程序的全局配置保存在全局配置文件(app.json)中,用来配置页面的文件的路径(pages)、设置窗口(window)、设定网络请求API的超时时间值(networkTimeout)与配置切换页(tabBar)等。
全局配置项 

 全局配置文件内容结构:

{
  //设置页面路径
  "pages":[],
  //设置默认页面的窗口表现
  "window": { },
  //设置底部tab的表现
  "tabBar": {},
  //设置网络请求AIPI的超时时间值
"networkTimeout": {},
  //设置是否开启debug模式
"debug": false
}
 2、pages配置项:

设置pages的注意项:

(1):数组的第一项用于设定小程序的初始页面。

(2):在小程序中新增或减少页面时,都需要都数组进行修改。

(3):文件名不需要写文件扩展名。

文件配置:

  "pages": [
    "pages/h/h",
    "pages/logs/logs"
  ]}
3、window配置项:

          window配置项负责设置小程序状态栏,导航栏,标题,窗口背景颜色的系统样式。

window配置项及其描述

 

 window配置项:

  "window": {
    "navigationBarTextStyle": "black",
    "navigationStyle": "custom"
  }
4、tabBar配置项 

           tabBar配置项 当需要在程序顶部与底部设置菜单栏时,可以通过配置tabBar配置项实现。

tabBar配置项及其描述

tabBar中的list选项

tabBar配置项: 

"tabBar": {
  "color": "#000000"
  "borderStyle": "black"
  "backgroundColor": "#ffffff"
  "selectedColor": "#000000"
  "list": [{
    "pagePath": "pagePath",
    "text": "text",
    "iconPath": "iconPath",
    "selectedIconPath": "selectedIconPath"
  }]
}
5、 networkTimeout配置项

        小程序中各种网络请求API的超时时间值只能通过networkTimeout配置项进行统一设置,不能在API中单独设置。

networkTimeout配置项

  networkTimeout配置项:

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

6、debug配置项

         debug配置项用于开启开发者工具的调试模式,默认为false。 

四、逻辑层文件

         小程序中逻辑层文件分为项目逻辑文件页面逻辑文件

1、项目逻辑文件

       项目逻辑文件app.js中可以通过App()函数注册小程序周期函数、全局属性和全局方法、已注册的小程序实例可以在其他逻辑文件中通过getApp()获取。

项目逻辑文件配置项 

 2、页面逻辑文件

       页面逻辑文件的主要功能有:设置初始数据;定义当前页面的生命周期函数;定义事件处理函数等。

 1、设置初始数据:设置初始数据是对页面的第一次数据绑定

2、定义当前页面的生命周期函数:在Page()函数的参数中,可以定义当前页面的生命周期函数,函数如下:

      (1):onLoad   页面加载函数

      (2):onShow  页面显示函数

      (3):onReady  页面数据绑定函数

      (4):onHide    页面隐藏函数

      (5):onUnload   页面卸载函数

数据初始、绑定、运行结果与代码 

app.josn 代码:

{
  "pages": [
    "pages/h/h",
    "pages/logs/logs"
  ],
  "window": {
    "navigationBarTextStyle": "black",
    "navigationBarTitleText": "小程序",
    "navigationBarBackgroundColor": "#ffffff"
  },
  "tabBar": {
    "list": [{
      "pagePath": "pages/logs/logs",
      "text": "日志",
      "iconPath": "images/a.jpg",
      "selectedIconPath": "images/a.jpg"
    },{
      "pagePath": "pages/h/h",
      "text": "页面",
      "iconPath": "images/a.jpg",
      "selectedIconPath": "images/a.jpg"
    }]
  },
  "style": "v2",
  "componentFramework": "glass-easel",
  "lazyCodeLoading": "requiredComponents"
}

h.js代码:

Page({
  data:{
    name:'何弃疗',
    age:30,
    birthday:[{year:1998},{month:11},{date:18}],
    // object:{hobby:'computer'}
    num:100,
    students:[
      {nickname:"小何",height:180,weight:150},
      {nickname:"小疗",height:160,weight:100}
    ]
  }
})

 h.wxml代码:

<view>姓名:{{name}}</view>
<view>年龄:{{age}}</view>
<view>出生日期:
{{birthday[0].year}}年
{{birthday[1].month}}月
{{birthday[2].date}}日
</view>
<view>爱好:{{object.hobby}}</view>
<view>算数运算:{{age+num}}</view>
<view>逻辑运算:{{age+100==130}}</view>
<view>三元运算:{{age==1?3: num}}</view>
<view wx:if="age>40">1</view>
<view wx:elif="age==40">2</view>
<view wx:else>3</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>

 3、定义事件处理函数:开发者在Page()中自定义的函数称为事件处理函数

4、使用setData更新数据:小程序在Page对象中封装了一个名为setData()的函数,用来更新data中的数据

五、 页面结构文件

        页面结构文件(wxml)是框架设计的一套类似HTML的标签语言,结合基础组件、事件系统,可以构建页面的结构,即.wxml文件。

      WXML还具有数据绑定、条件数据绑定、列表数据绑定、模板、引用页面文件、页面事件等能力。

1、数据绑定

(1):简单绑定:是指用大括号({{}})将变量包起来,作为字符串输出使用

代码:

<view>姓名:{{name}}</view>
<view>年龄:{{age}}</view>
<view>出生日期:
{{birthday[0].year}}年
{{birthday[1].month}}月
{{birthday[2].date}}日
</view>
<view>爱好:{{object.hobby}}</view>

(2):运算:做一些简单的运算(算术、逻辑、三元、字符串等运算)

代码:

<view>算数运算:{{age+num}}</view>
<view>逻辑运算:{{age+100==130}}</view>
<view>三元运算:{{age==1?3: num}}</view>

2、条件数据绑定

(1):wx:if              是指使用wx:if这个属性来判断是否数据绑定当前组件

代码:

<view wx:if="age>40">1</view>
<view wx:elif="age==40">2</view>
<view wx:else>3</view>

(2):block  wx:if   是需要一个组件去控制多个组件,可以通过block包起来

代码:

<block wx:if="{{one}}">
<view wx:if="age>40">1</view>
</block>

3、列表数据绑定

(1):wx:for            用来绑定一个数组

代码:

<view wx:for="{{students}}">

(2):block   wx:for    是需要一个组件去控制多个数组,可以通过block包起来

代码:

 <block wx:for="{{students}}">
   <view>
<text>姓名:{{item.nickname}}</text>
<text>身高:{{item.height}}</text>
<text>体重:{{item.weight}}</text>
   </view>
 </block>

 4、模板

(1):定义模板

代码:

 <template name="stu">

(2):调用模板

代码:

 <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>

5、引用页面文件

(1):import方式

在a.wxml中定义了一个item模板

代码:

 <template name="item">
   <view wx:for="{{students}}">
<text>姓名:{{item.nickname}}</text>
<text>身高:{{item.height}}</text>
<text>体重:{{item.weight}}</text>
   </view>
 </template>

(2):include方式

代码:

<text>姓名:{{item.nickname}}</text>
<text>身高:{{item.height}}</text>
<text>体重:{{item.weight}}</text>

6、页面事件 :简单来说,小程序中的事件是用户的一种行为或通信方式。在页面文件中,通过定义事件来完成页面与用户之间的交互,同时通过事件来实现视图层与逻辑层的通信。我们可以将事件绑定到组件上,当达到触发条件时,事件就会执行逻辑层中对应的事件处理函数。
        要实现这种机制,需要定义事件函数和调用事件。
(1)定义事件函数:    在.js文件中定义事件函数来实现相关功能,当事件响应后就会执行事件处理代码。
(1)调用事件:     调用事件也称为注册事件。

        在小程序中,事件分为冒泡事件和非冒泡事件两大类型。
(1)冒泡事件:     冒泡事件是指某个组件上的事件被触发后,事件会向父级元素传递,父级元素再向其父级元素传递,一直到页面的顶级元素。
(2)非冒泡事件:   非冒泡事件是指某个组件上的事件被触发后,该事件不会向父节点传递。

 

六、页面样式文件

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

1、尺寸单位:由于CSS原有的尺寸单位在不同尺寸的屏幕中得不到很好的呈现,WxsS在此基础上增back 加了尺寸单位rpx(respnesive pixel)。

2、样式导入:为了便于管理Wxss文件,我们可以将样式存放于不同的文件中。

3、选择器:目前,WXSS仅支持CSS中常用的选择器,如,class、#id、element、:: before、∷: aftert等。

4、WXSS常用属性:WXSS文件与CSS 文件有大部分属性名及属性值相同,WXSS 的常用属性及属性值如表:

 

标签:文件,微信,程序开发,基础,item,事件,wx,pages,页面
From: https://blog.csdn.net/weixin_74842199/article/details/136445658

相关文章

  • 微信小程序(六)事件绑定
             ......
  • Taro微信小程序使用表单组件rc-field-form
    安装rc-field-formyarnaddrc-field-form使用import{View,Button,Input}from"@tarojs/components";importForm,{Field,useForm}from"rc-field-form";exportdefaultfunctionInstallParameter(){const[form]=useForm();co......
  • 19113133262(微信同号)2024年环境能源与全球市场营销国际学术会议(ICEEGM 2024)
    2024年环境能源与全球市场营销国际学术会议(ICEEGM2024)会议主题:(主题包括但不限于,更多主题请咨询会务组苏老师)节能技术煤矿工程与技术能源存储技术可再生能源热能与动力工程 能源工程与环境工程 可再生能源技术和系统能源安全和清洁利用 矿产资源与采矿工......
  • java毕业设计基于微信小程序的新闻管理系统
    本系统(程序+源码)带文档lw万字以上  文末可领取本课题的JAVA源码参考系统程序文件列表系统的选题背景和意义选题背景:随着移动互联网技术的飞速发展,智能手机的普及率日益增高,人们获取信息的方式也发生了翻天覆地的变化。微信小程序作为一种新型的应用形态,因其无需下载安装......
  • 【自动化测试入门】用Airtest - Selenium对Firefox进行自动化测试(0基础也能学会)
    1.前言本文将详细介绍如何使用AirtestIDE驱动Firefox测试,以及脱离AirtestIDE怎么驱动Firefox(VScode为例)。看完本文零基础小白也能学会Firefox浏览器自动化测试!!!2.如何使用AirtestIDE驱动Firefox浏览器对于Web自动化测试,目前AirtestIDE支持chrome浏览器和Firefox2种浏览器,今天......
  • Java基础 --- 综合练习
    Java基础---综合练习案例一卖飞机票需求:机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。按照如下规则计算机票价格:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。importjava.util.Scanner;public......
  • python Ai 应用开发基础训练,字符串,字典,文件,函数,装饰品,生成器(下)
    生成器的另一个示例,这个生成器功能是从大小生,生成斐波那契数列deffib(max):#定义一个函数fib,参数为maxa,b=0,1#初始化两个变量a和b,分别赋值为0和1n=0#初始化计数变量n为0whileb<max:#当b小于max时继续循环print(b)#打印当前的斐波......
  • Linux学习(十二)基础服务_DNS
    一、DNS原理查询方式递归查询直接把结果给客户端迭代查询如果知道结果,把结果告诉客户端,如果不知道结果,会把查询转发到下一台DNS服务器DNS解析类型SOA记录:起始授权记录  NS记录:指定管理某一个域的服务器是谁子域授权  A记录:正向解析,把域名解析......
  • Spring核心思想之 AOP:在自定义容器基础上实现AOP功能
    在Spring核心思想之AOP:基础概念及注解式AOP初体验中对AOP的基本概念及使用有了初步的了解。本文仿Spring自定义后置处理器、注解等,在Spring的核心思想之IOC:仿Spring自定义一个实现IOC的容器的基础上实现自定义的AOP功能。aop相关目录:......
  • 微信小程序开发:上传网络图片到阿里云oss
    上文遇到的问题,用户上传的人像图片在经过人像增强后返回的结果需要再次上传到阿里云的oss。因为是需要下下载,再上传,这个域名我们没有在MP后台配置download域名,所以报错了: 但是MP后台只能配置https的域名,而人像增强的却返回的时http的,所以先下载人像增强返回的图片是行不通的......