【微信小程序开发】第 5 节 - 小程序代码的构成

news2024/11/26 10:24:39

        欢迎来到博主 Apeiron 的博客,祝您旅程愉快 ! 时止则止,时行则行。动静不失其时,其道光明。


目录

1、缘起

2、了解项目的基本组成结构

3、小程序页面的组成部分 

4、JSON 配置文件

4.1、json 配置文件的作用

4.2、app.json 文件

4.3、project.config.json 文件

4.4、sitemap.json 文件 

4.5、页面的 .json 配置文件 

5、新建小程序页面

6、修改项目首页

7、WXML 模块 

7.1、什么是 WXML 

7.2、WXML 和 HTML 的区别

8、WXSS 样式

8.1、什么是 WXSS

8.2、WXSS 和 CSS 的区别

9、JS 逻辑交互

9.1、小程序中的 .js 文件

9.2、小程序中 .js 文件的分类

10、总结


1、缘起

        清晰地了解小程序代码的构成,在小程序开发的过程中就有了自顶向下的全局视野,知道这些文件在小程序中起着什么样的作用,存储着哪些文件,开发起来也会得心应手。

2、了解项目的基本组成结构

①  pages 用来存放小程序里面的所有页面路径

②  utils 用来存放工具性质的模块(例如:格式化时间的自定义模块)

③  app.js 小程序项目的入口文件 

④  app.json 小程序项目的全局配置文件(通过 app.json 可以对小程序例的页面和窗口等这些选项进行全局性的配置)

⑤  app.wxss 小程序项目的全局样式文件(在这里配置的样式会全局生效,会应用到每一个页面)

⑥  project.config.json 项目的配置文件

⑦  sitemap.json 用来配置小程序及页面是否允许被微信索引 

⑧  project.private.config.json 项目的私有配置文件(用于存储私密信息和开发者的个性化配置)

3、小程序页面的组成部分 

        小程序官方建议把所有小程序的页面,都存放在 pages 目录 中,以 单独的文件夹 存在,如图所示:

其中,每个页面是以单独的文件夹形式存在,每个页面有 4 个基本文件组成,它们分别是:

①  .js 文件(页面的脚本文件,存放页面的数据,事件处理函数等,主要实现业务逻辑)

②  .json 文件(当前页面的配置文件,配置窗口的外观,表现等)

③  .wxml 文件(页面的模版结构文件,在里面写标签来定义页面上的 UI 结构)

④  .wxss 文件(当前页面的样式表文件)

4、JSON 配置文件

4.1、json 配置文件的作用

        JSON 是一种数据格式,在实际开发中,JSON 总是以 配置文件 的形式出现。小程序项目中也不例外:通过不同的 .json 配置文件,可以对小程序项目进行不同级别的配置。

小程序项目中有 4 种 json 配置文件,分别是:

①  项目根目录中的 app.json 配置文件

②  项目根目录中的 project.config.json 配置文件 

③  项目根目录中的 sitemap.json 配置文件

④  每个页面文件夹中的 .json 配置文件

4.2、app.json 文件

        app.json 是当前小程序的 全局配置文件,包括了小程序的 所有页面路径窗口外观界面表现底部 tab 等。项目里面的 app.json 默认配置内容如下:

简单了解下这 4 个配置项的作用:

①  pages:用来记录当前小程序所有页面的路径 

②  window:全局定义小程序所有页面的背景色,文字颜色等

③  style:全局定义小程序组件所使用的样式版本

        " style ":" v2 " 表示使用最新的样式版本,如果想使用旧版的样式版本,将这行代码删除即可。

④  sitmapLocation:用来指明 sitmap.json 的位置

4.3、project.config.json 文件

        project.config.json 是项目的配置文件,用来记录我们 对小程序开发工具所做的个性化配置,例如:

①  setting 中保存了 编译相关的配置

②  projectname 中保存的是 项目名称

(项目名称可以随便起名,项目名称不等于小程序的名称。小程序的名称在小程序的管理后台进行配置)

③  appid 中保存的是 小程序的账号 ID 

4.4、sitemap.json 文件 

        微信现已开放 小程序内搜索,效果类似于 PC 网页的 SEO。sitemap.json 文件用来 配置小程序页面是否允许微信索引

        当开发者允许微信索引时,微信会通过爬虫的形式,为小程序的页面内容建立索引。当用户的搜索关键字和页面的索引匹配成功的时候,小程序的页面将可能展示在搜索结果中。

        " page " :" * " ,表示所有的页面," action ":" allow " ,表示允许的意思。这两句代码表示所有的页面都允许被微信索引。

4.5、页面的 .json 配置文件 

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

5、新建小程序页面

        只需要在 app.json -> pages 中新增页面的存放路径,小程序开发者工具即可帮我们自动创建对应的页面文件,如图所示:

6、修改项目首页

        只需要调整 app.json -> pages 数组中页面路径的前后顺序,即可修改项目的首页。小程序会把排在第一位的页面,当作项目首页进行渲染,如图所示: 

7、WXML 模块 

7.1、什么是 WXML 

        WXML(WeiXin  Markup  Language)是小程序框架设计的一套 标签语言用来构建小程序页面的结构,其作用类似于网页开发中的 HTML 。

7.2、WXML 和 HTML 的区别

①  标签名称不同

HTML(div,span,img,a)

WXML(view,text,image,navigator)

②  属性节点不同

<a href = "#"> 超链接 </a>

< navigator url = " /pages/home/home " ></navigator>

③  提供了类似于 Vue 中的模版语法

数据绑定,列表渲染,条件渲染

8、WXSS 样式

8.1、什么是 WXSS

        WXSS(WeiXin  Style Sheets)是一套 样式语言,用于描述 WXML 的组件样式,类似于网页开发中的 CSS。

8.2、WXSS 和 CSS 的区别

①  新增了 rpx 尺寸单位

CSS 中需要手动进行像素单位换算,例如 rem,

WXSS 在底层支持新的尺寸单位 rpx ,在不同大小的屏幕上小程序会自动进行换算。

② 提供了全局的样式和局部样式

项目根目录中的 app.wxss 会作用于所有小程序页面,

局部页面的 .wxss 样式仅对当前页面生效。

③  WXSS 仅支持部分 CSS 选择器

.class 和 #id,element,并集选择器、后代选择器,:: after 和 :: before 等伪类选择器

9、JS 逻辑交互

9.1、小程序中的 .js 文件

        一个项目仅仅提供界面展示是不够的,在小程序中,我们通过 .js 文件来处理用户的操作。例如:响应用户的点击、获取用户的位置等等。

9.2、小程序中 .js 文件的分类

小程序中的 JS 文件分为三大类,分别是:

①  app.js

整个小程序项目的入口文件,通过调用 APP() 函数 来启动整个小程序。

②  页面 .js 文件

是 页面的入口文件,通过调用 Page() 函数 来创建并运行页面。

③  普通的 .js 文件

是 普通的功能模块文件,用来封装 公共的函数或属性 供页面使用。 

10、总结

        本期的分享总结就到这里了,如果有疑问的小伙伴儿,我们在评论区交流嗷~~~,笔者必回,我们下期再见啦 !!

        

        

   

         

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/616075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

http首部(下)

开始头大&#xff0c;哈哈&#xff0c;这个东西真的很无聊且枯燥&#xff0c;奈何最近的学习中经常用到这些知识&#xff0c;还是过一遍比较放心。上一篇博客中我们讨论了http报文首部&#xff0c;其划分为请求头和响应头。请求头主要由请求行、请求字段、通用字段、实体字段组…

ChatGPT请不要和打工人争辩今天星期几

目录 1 今天星期几2 聊聊ChatGPT与工具的结合 1 今天星期几 周五了&#xff0c;一个星期快结束了&#xff0c;闲来问问chatgpt (gpt-3.5) 今天 ( 2023.06.03星期五&#xff09;星期几&#x1f601;&#xff0c;chatgpt给出的回答如下&#xff1a; 今天是2023年6月2号没错&…

Linux系统下安装配置 Nginx 详细教程介绍

Linux系统下安装配置 Nginx 详细教程介绍 一、下载 Nginx 安装包 打开Nginx官网 &#xff1a;nginx: download 然后我们找到一个版本&#xff0c;把鼠标移动到上面&#xff0c;右键 - 复制链接地址 我们使用 wget 命令把Nginx安装包下载到/usr/local/目录中 安装wget yum…

基于html+css的图展示110

准备项目 项目开发工具 Visual Studio Code 1.44.2 版本: 1.44.2 提交: ff915844119ce9485abfe8aa9076ec76b5300ddd 日期: 2020-04-16T16:36:23.138Z Electron: 7.1.11 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Windows_NT x64 10.0.19044 项目…

sid,eld,sidd dataset介绍,dng图像处理

文章目录 SID dataset1. SID dataset 概述2. SID 读取和显示代码3. 一些示例 SIDD datasetELD datasetDNG camera pipeline SID dataset 1. SID dataset 概述 SID 是Learning to See in the Dark 论文中提出的暗光raw数据集 其中包括两个相机的拍摄数据 Sony alpha7S II 和 …

实战演练 | 在 Navicat 16 中创建视图

为了规范化数据库表&#xff0c;常常会将高级别表中的冗余列抽取到单独的子表中。这通常是由于某些字段与父实体具有一对多关系而发生的。例如&#xff0c;请参考以下使用 Navicat Data Modeler 生成的模型&#xff1a; 评估最初是 ups 表的一部分&#xff0c;但这导致了数据冗…

没素材也可以剪辑,根据画面描述搜索影片素材!

随着社交媒体的普及&#xff0c;越来越多的人开始喜欢用短视频分享自己的生活。但是&#xff0c;在剪辑过程中&#xff0c;素材的质量和多样性是很重要的。如果你缺乏素材&#xff0c;可以考虑根据画面描述去搜索一些适合的影片素材。 首先&#xff0c;你需要确定自己需要什么…

自学黑客(网络安全),学习集锦奉上!

想学网络安全&#xff0c;不知道学习方向&#xff1f;我整理了一份渗透测试学习方法&#xff0c;话不多说&#xff0c;上干货。 web安全知识学习&#xff08;理论期&#xff09; 学习web安全基础知识、html语言、python、java、数据库等等。另外端口也可以学习一下3306、3389…

安全中级3:apache中间件漏洞

一、apache换行解析漏洞&#xff08;apache版本在2.4.0~2.4.29&#xff09; 1.原理 该程序是采用黑名单的形式&#xff0c;如果文件后缀名不在名单内即可上传&#xff0c;所以 a.php\x0A不在黑名单列表中&#xff0c;可以上传。但是在fpm-php中x0A是换行符&#xff0c;所以apa…

数据中台浅析(之二)

数据中台浅析 1. 引言 在当今的数字化时代&#xff0c;数据被誉为"新的石油"&#xff0c;越来越多的企业和组织开始深度挖掘数据的价值。在这个过程中&#xff0c;数据中台逐渐成为了数据管理和分析的核心架构&#xff0c;让我们来深入了解一下它。 1.1 数据中台…

数据结构基础-队列

队列 概述 计算机科学中&#xff0c;queue 是以顺序的方式维护的一组数据集合&#xff0c;在一端添加数据&#xff0c;从另一端移除数据。习惯来说&#xff0c;添加的一端称为尾&#xff0c;移除的一端称为头&#xff0c;就如同生活中的排队买商品 In computer science, a qu…

chatgpt赋能python:Python声音分析的应用

Python 声音分析的应用 Python是一种强大的编程语言&#xff0c;具有广泛的应用和使用场景&#xff0c;而其在声音分析领域中的应用也是相当广泛的。本文将会介绍Python在声音分析方面的应用。 什么是声音分析&#xff1f; 声音分析是指通过计算机技术对声音信号进行分析&am…

centos 7 安装部署MySQL主主模式

主机&#xff1a;192.168.1.108&#xff0c;192.168.1.109 192.168.1.108主机上操作 上传mysql安装包&#xff08;略&#xff09; tar zxf mysql.5.7.35.tar.gz –C /data mkdir /var/log/mariadb 使用root用户创建 chown –R unioncloud. /var/log/mariadb 使用root用户执行 切…

SCM Manager XSS漏洞复现(CVE-2023-33829)

一、漏洞描述 漏洞简述 SCM-Manager 是一款开源的版本库管理软件&#xff0c;同时支持 subversion、mercurial、git 的版本库管理。安装简单&#xff0c;功能较强&#xff0c;提供用户、用户组的权限管理 &#xff0c;有丰富的插件支持。由于在MIT的许可下是开源的&#xff0…

如何给证件照替换背景颜色?一键替换证件照背景色的方法

证件照换背景的优点 在申请各种证件时&#xff0c;一张合格的证件照是必不可少的。然而&#xff0c;在拍摄证件照时&#xff0c;往往因为背景、光线等问题导致照片质量不佳。因此&#xff0c;将证件照的背景更换为统一的纯色背景就显得尤为重要。 证件照换背景的主要优点包括…

合并文件解决HiveServer2内存溢出方案

一、文件过多导致HiveServer2内存溢出 1.1查看表文件个数 desc formatted yanyu.tmp• 表文件数量为6522102 1.2查看表文件信息 hadoop fs -ls warehouse/yanyu.db/tmp• 分区为string 类型的time字段&#xff0c;分了2001个区。 1.3.查看某个分区下的文件个数为10000个 …

Jmter压测试

1、常规性能测试--压测 1、添加线程组 线程数模拟用户数&#xff0c;线程数1表示1个用户&#xff0c;如果模拟10个用户就设置线程数为10 Ramp-Up表示在多长时间内开启多少个线程&#xff0c;如果设置为10&#xff0c;表示10s内开启对应的线程数 循环次数 永远表示如果不惦记…

Hibernate+Lombok进行表与表之间关系时插入数据时栈溢出

报错信息如下&#xff1a; 当使用Hibernate和Lombok处理表与表之间的关系时&#xff0c;在插入数据时可能会遇到栈溢出错误。这篇博客将详细讨论此问题的原因&#xff0c;并提供解决办法。 标题: HibernateLombok进行表与表之间关系时插入数据时栈溢出 问题背景 Hibernate是一…

如何在Windows 10中创建屏幕保护程序设置快捷方式

屏幕保护程序是指你在电脑上未处于活动状态并等待指定时间后,电脑屏幕上显示的动态图片或图案。 屏幕保护程序最初用于保护旧的单色显示器免受损坏,但现在它们主要是通过提供密码保护来个性化你的电脑或增强其安全性的一种方式。 一、右键单击或按住桌面上的空白区域,然后…

linuxOPS基础_linux umask

1、什么是umask umask表示创建文件时的默认权限&#xff08;即创建文件时不需要设置而天生的权限&#xff09; 例如&#xff1a; root用户下&#xff0c;touch a &#xff0c;文件a的默认权限是644 普通用户下&#xff0c;touch b &#xff0c;文件b的默认权限是664 644和…