百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

第2讲 目录结构 & 配置小程序

itomcoil 2025-02-28 16:09 28 浏览

「遇见周大侠(网名:程序猿),长沙奥科领航信息技术公司的资深软件开发工程师。他的软件开发系列课件和项目,凝聚了多年的专业积累与热情。每套课件都包含丰富的案例和深入的知识点解析,每一讲都配备了精心设计的课后作业,旨在为热爱编程的你提供最佳编程实践。是教师备课的得力助手,是学生学习的贴心伴侣,亦是毕业设计的灵感源泉。现在,请搜索微信小程序「奥科领航信息技术 」,让我们一起深入代码的世界,探索无限可能!」


本讲内容

  • 目录结构
  • 配置小程序

一、项目的目录结构

1、主体部分

新建一个小程序项目之后,目录结构如下所示:

红色框所示部分是小程序的主体部分。一个小程序主体部分由三个文件组成,必须放在项目的根目录,如下:

文件

是否必需

作用

app.js

小程序逻辑

app.json

小程序公共配置

app.wxss

小程序公共样式表

2、自定义页面

一个小程序通常需要由N个自定义的页面来承载其功能。

页面是在根目录中的app.json中定义的。在app.json中每追加一个页面的声明,开发工具会自动的在/pages目录中创建一个相同名称的子目录,并在子目录中创建四个相关联的文件(但是,如果在app.json中删除一个页面的声明,则开发工具不会自动删除对应的目录和其下的文件,但目录的图标颜色会有所变化)。

pages元素中声明的第一个页面就是首页!!!

一个小程序的页面由四个文件组成,分别是:

文件类型

是否必需

作用

对比

js

页面逻辑

相当于普通Web程序的JavaScript脚本文件。

但是,不能在js文件中使用DOM、BOM。

wxml

页面结构

相当于普通 Web程序的HTML页面。

但是,里面标签和原生的标签有区别,经过了进一步的封装。

json

页面配置

相当于普通 Web程序的JSON文件

wxss

页面样式表

相当于普通 Web程序的CSS样式表。

CSS3中的样式属性几乎都可以全部用在这里!

注意:

  1. 为了方便开发者减少配置项,描述页面的四个文件必须具有相同的路径与文件名;
  2. 这四种类型的文件经过编译之后不能被直接访问。

二、配置小程序

  1. 全局配置

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

示例:

{

"pages":[

"pages/index/index",

"pages/logs/logs",

"pages/orders/orders",

"pages/cart/cart"

],

"window":{

"backgroundTextStyle":"light",

"navigationBarBackgroundColor": "#0000ff",

"navigationBarTitleText": "欧柏泰克教务系统",

"navigationBarTextStyle":"white"

},

"style": "v2",

"sitemapLocation": "sitemap.json",

"tabBar": {

"list": [{

"pagePath": "pages/index/index",

"text": "首页"

},{

"pagePath": "pages/logs/logs",

"text": "日志"

},{

"pagePath": "pages/orders/orders",

"text": "我的订单"

},{

"pagePath": "pages/cart/cart",

"text": "购物车"

}]

}

}

在示例代码中,我们改变了顶部导航栏的背景颜色(蓝色)和前景颜色(白色);创建了底部的导航菜单(首页、日志、我的订单、购物车)。为了不会导致编译错误,需要添加订单和购物车的两个页面(pages/orders/orders、pages/cart/cart)。

预览的效果:

  1. 页面配置

每一个小程序页面可以使用同名的 .json 文件来对本页面的窗口表现进行配置,页面中配置项会覆盖 app.json 的 window 中相同的配置项(即页面配置优先于全局配置)。文件内容为一个 JSON 对象,有以下属性:

属性

类型

默认值

描述

navigationBarBackgroundColor

HexColor

#000000

导航栏的背景颜色

navigationBarTextStyle

string

white

导航栏标题的文字颜色

navigationBarTitleText

string


导航栏标题文字内容

backgroundColor

HexColor

#ffffff

窗口的背景色

enablePullDownRefresh

boolean

false

是否开启当前页面下拉刷新

更多的配置项请见:

https://developers.weixin.qq.com/miniprogram/dev/reference/configuration/page.html

示例:首页页面

index.json:

{

"navigationBarBackgroundColor": "#ff0000",

"navigationBarTextStyle": "white",

"navigationBarTitleText": "这是首页",

"backgroundColor": "#ff0000",

"backgroundTextStyle": "light",

"enablePullDownRefresh": true

}

index.wxml:

中华人民共和国

背景不是我们所期望的红色!!!

在这些属性中,特别要指出的是backgroundColor属性。当我们在微信小程序 json 中设置 backgroundColor 时,实际在电脑的模拟器中预览时中根本看不到效果。这是因为 backgroundColor 指的是窗体背景颜色,而不是页面的背景颜色,即窗体下拉刷新或上拉加载时露出的背景。在电脑的模拟器中是看不到这个动作的,所以会让人误以为这个配置是无效的。

如果要设置页面背景颜色,得在wxss 中自定义样式,如下:

/*index.wxss*/

page{

background-color: #ff0000;

color: white;

}

相关推荐

《Queendom》宣布冠军!女团MAMAMOO四人激动落泪

网易娱乐11月1日报道据台湾媒体报道,南韩女团竞争回归的生死斗《Queendom》昨(10/31)晚播出大决赛,并以直播方式进行,6组女团、女歌手皆演唱新歌,并加总前三轮的赛前赛、音源成绩与直播现场投...

正确复制、重写别人的代码,不算抄袭

我最近在一篇文章提到,工程师应该怎样避免使用大量的库、包以及其他依赖关系。我建议的另一种方案是,如果你没有达到重用第三方代码的阈值时,那么你就可以自己编写代码。在本文中,我将讨论一个在重用和从头开始编...

HTML DOM tr 对象_html event对象

tr对象tr对象代表了HTML表格的行。HTML文档中出现一个<tr>标签,就会创建一个tr对象。tr对象集合W3C:W3C标签。集合描述W3Ccells返回...

JS 打造动态表格_js如何动态改变表格内容

后台列表页最常见的需求:点击表头排序+一键全选。本文用原生js代码实现零依赖方案,涵盖DOM查询、排序算法、事件代理三大核心技能。效果速览一、核心思路事件入口:为每个<th>绑...

连肝7个晚上,总结了66条计算机网络的知识点

作者|哪吒来源|程序员小灰(ID:chengxuyuanxiaohui)计算机网络知识是面试常考的内容,在实际工作中经常涉及。最近,我总结了66条计算机网络相关的知识点。1、比较http0....

Vue 中 强制组件重新渲染的正确方法

作者:MichaelThiessen译者:前端小智来源:hackernoon有时候,依赖Vue响应方式来更新数据是不够的,相反,我们需要手动重新渲染组件来更新数据。或者,我们可能只想抛开当前的...

为什么100个前端只有1人能说清?浏览器重排/重绘深度解析

面试现场的"致命拷问""你的项目里做过哪些性能优化?能具体讲讲重排和重绘的区别吗?"作为面试官,我在秋招季连续面试过100多位前端候选人,这句提问几乎成了必考题。但令...

HTML DOM 介绍_dom4j html

HTMLDOM(文档对象模型)是一种基于文档的编程接口,它是HTML和XML文档的编程接口。它可以让开发人员通过JavaScript或其他脚本语言来访问和操作HTML和XML文档...

JavaScript 事件——“事件流和事件处理程序”的注意要点

事件流事件流描述的是从页面中接收事件的顺序。IE的事件流是事件冒泡流,而NetscapeCommunicator的事件流是事件捕获流。事件冒泡即事件开始时由最具体的元素接收,然后逐级向上传播到较为不...

探秘 Web 水印技术_水印制作网页

作者:fransli,腾讯PCG前端开发工程师Web水印技术在信息安全和版权保护等领域有着广泛的应用,对防止信息泄露或知识产品被侵犯有重要意义。水印根据可见性可分为可见水印和不可见水印(盲水印)...

国外顶流网红为流量拍摄性侵女学生?仅被封杀三月,回归仍爆火

曾经的油管之王,顶流网红DavidDobrik复出了。一切似乎都跟他因和成员灌酒性侵女学生被骂到退网之前一样:住在950万美元的豪宅,开着20万美元的阿斯顿马丁,每条视频都有数百万观看...人们仿佛...

JavaScript 内存泄漏排查方法_js内存泄漏及解决方法

一、概述本文主要介绍了如何通过Devtools的Memory内存工具排查JavaScript内存泄漏问题。先介绍了一些相关概念,说明了Memory内存工具的使用方式,然后介绍了堆快照的...

外贸独立站,网站优化的具体内容_外贸独立站,网站优化的具体内容有哪些

Wordpress网站优化,是通过优化代码、数据库、缓存、CSS/JS等内容,提升网站加载速度、交互性和稳定性。网站加载速度,是Google搜索引擎的第一权重,也是SEO优化的前提。1.优化渲染阻塞。...

这8个CSS工具可以提升编程速度_css用什么编译器

下面为大家推荐的这8个CSS工具,有提供函数的,有提供类的,有提取代码的,还有收集CSS的统计数据的……请花费两分钟的时间看完这篇文章,或许你会找到意外的惊喜,并且为你的编程之路打开了一扇新的大门。1...

vue的理解-vue源码 历史 简介 核心特性 和jquery区别 和 react对比

一、从历史说起Web是WorldWideWeb的简称,中文译为万维网我们可以将它规划成如下的几个时代来进行理解石器时代文明时代工业革命时代百花齐放时代石器时代石器时代指的就是我们的静态网页,可以欣...