微信小程序中 “页面” 和 “非页面” 的区别

news2025/1/7 9:45:38

微信小程序中 “页面” 和 “非页面” 的区别,并用表格进行对比。

核心概念:

  • 页面 (Page): 页面是微信小程序中用户可以直接交互的视图层,也是小程序的基本组成部分。每个页面都有自己的 WXML 结构、WXSS 样式和 JavaScript 逻辑。
  • 非页面 (Non-Page): 非页面泛指小程序中不直接构成用户界面的其他类型的文件,它们通常用于封装公共逻辑、数据模型、网络请求等。

页面 (Page) 与 非页面 (Non-Page) 的区别:

特性页面 (Page)非页面 (Non-Page)
主要作用构成用户界面的基本单元,是用户可以直接看到的交互界面。用于封装公共逻辑、数据模型、网络请求等,不直接展示用户界面。
文件类型主要包括: .wxml (页面结构), .wxss (页面样式), .js (页面逻辑), json (页面配置)通常是 .js 文件,但也可能包括 .json 配置文件,但不能直接配置样式。
目录结构通常放置在 pages 目录下的子目录中,每个页面都有自己的目录,包含 WXML、WXSS、JS 和 JSON 文件。可以放置在 utilsapicomponents 等目录中,用于组织代码逻辑。
生命周期有自己的完整生命周期,例如 onLoadonShowonReadyonHideonUnload 等,用于管理页面状态。没有页面生命周期,其内部的函数或逻辑会在其他地方被调用。
数据绑定可以使用微信小程序的数据绑定语法 ({{ ... }}),将数据渲染到 WXML 页面结构中,并实现动态更新。不直接参与页面渲染,而是通过 JavaScript 代码或其他组件间接影响页面显示。
事件处理可以定义事件处理函数,响应用户的交互行为,例如点击、滑动、输入等。通常不直接处理用户的交互事件,而是提供一些功能函数或逻辑,供页面或其他组件调用。
组件可以使用小程序组件,构建更复杂的界面元素。通常不会直接使用小程序组件,而是用于封装一些基础的服务方法或者逻辑。
路由跳转可以使用 wx.navigateTowx.redirectTowx.switchTab 等 API 进行页面跳转。不直接参与页面路由跳转,而是供其他页面调用。
wx.getApp()可以使用 wx.getApp()getApp() 函数获取到小程序的实例对象, 并可以使用 this 直接访问组件的数据或者函数。如果在 Page 或者 Component 中, 可以使用 this 访问 Page 或者 Component 的数据和方法。 在非页面文件中使用 wx.getApp() 会因为上下文的问题,导致获取不到小程序实例。
作用域拥有自己的独立作用域,可以使用 this 关键字访问当前页面的数据和方法, 可以访问 Page 的生命周期函数。作用域取决于定义的位置,不能使用 this 访问页面和组件的数据或者方法。

详细解释:

  • 页面 (Page):
    • 用户直接交互: 页面是用户直接看到的,并且可以在其上进行操作的界面。例如,首页、列表页、详情页、设置页等都是页面。
    • 页面结构: 使用 .wxml 文件描述页面的结构。
    • 页面样式: 使用 .wxss 文件描述页面的样式。
    • 页面逻辑: 使用 .js 文件编写页面的逻辑,例如处理用户的交互行为、发送网络请求、更新页面数据等。
    • 页面配置: 使用 .json 文件描述页面的配置信息,例如导航栏样式、页面背景色等。
  • 非页面 (Non-Page):
    • 封装通用逻辑: 非页面通常用于封装一些通用的 JavaScript 代码或逻辑,例如:
      • 网络请求封装
      • 数据模型定义
      • 工具函数封装
      • 自定义组件的实现
    • 没有界面: 非页面不会直接展示用户界面,而是作为辅助模块被页面或其他组件使用。
    • 模块化: 非页面可以帮助您模块化代码,提高代码的可复用性和可维护性。

总结:

  • 页面是用户界面的组成部分, 它包含了结构、样式和逻辑,并可以直接展示给用户。
  • 非页面是用于封装代码逻辑的模块, 它们不会直接展示用户界面,而是辅助页面完成功能。

理解页面和非页面的区别,对于开发出结构清晰、易于维护的微信小程序至关重要。

在这里插入图片描述

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

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

相关文章

卸载wps后word图标没有变成白纸恢复

这几天下载了个wps教育版,后头用完了删了 用习惯的2019图标 给兄弟我干没了??? 其他老哥说什么卸载关联重新下 ,而且还要什么撤销保存原来的备份什么,兄弟也是不得不怂了 后头就发现了这个半宝藏博主&…

SQL Server导出和导入可选的数据库表和数据,以sql脚本形式

一、导出 1. 打开SQL Server Management Studio,在需要导出表的数据库上单击右键 → 任务 → 生成脚本 2. 在生成脚本的窗口中单击进入下一步 3. 如果只需要导出部分表,则选择第二项**“选择具体的数据库对象(Select specific database objects)”**&am…

基于SpringBoot在线竞拍平台系统功能实现十五

一、前言介绍: 1.1 项目摘要 随着网络技术的飞速发展和电子商务的普及,竞拍系统作为一种新型的在线交易方式,已经逐渐深入到人们的日常生活中。传统的拍卖活动需要耗费大量的人力、物力和时间,从组织拍卖、宣传、报名、竞拍到成…

Android Camera压力测试工具

背景描述: 随着系统的复杂化和业务的积累,日常的功能性测试已不足以满足我们对Android Camera相机系统的测试需求。为了确保Android Camera系统在高负载和多任务情况下的稳定性和性能优化,需要对Android Camera应用进行全面的压测。 对于压…

配置嵌入式服务器

一、如何定制和修改Servlet容器的相关配置 修改和server有关的配置(ServerProperties) server.port8081 server.context‐path/tx server.tomcat.uri-encodingUTF-8二、注册servlet三个组件【Servlet、Filter、Listener】 由于SpringBoot默认是以jar包…

GPIO、RCC库函数

void GPIO_DeInit(GPIO_TypeDef* GPIOx); void GPIO_AFIODeInit(void); void GPIO_Init(GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct); void GPIO_StructInit(GPIO_InitTypeDef* GPIO_InitStruct); //输出 读 uint8_t GPIO_ReadInputDataBit(GPIO_TypeDef* GPIOx,…

3D高斯点云CUDA版本数据制作与demo运行

0. 简介 关于UCloud(优刻得)旗下的compshare算力共享平台 UCloud(优刻得)是中国知名的中立云计算服务商,科创板上市,中国云计算第一股。 Compshare GPU算力平台隶属于UCloud,专注于提供高性价4090算力资源,配备独立IP,…

框架模块说明 #09 日志模块_01

背景 日志模块是系统的重要组成部分,主要负责记录系统运行状态和定位错误问题的功能。通常,日志分为系统日志、操作日志和安全日志三类。虽然分布式数据平台是当前微服务架构中的重要部分,但本文的重点并不在此,而是聚焦于自定义…

conda指定路径安装虚拟python环境

DataBall 助力快速掌握数据集的信息和使用方式,会员享有 百种数据集,持续增加中。 需要更多数据资源和技术解决方案,知识星球: “DataBall - X 数据球(free)” -------------------------------------------------------------…

aws(学习笔记第二十二课) 复杂的lambda应用程序(python zip打包)

aws(学习笔记第二十二课) 开发复杂的lambda应用程序(python的zip包) 学习内容: 练习使用CloudShell开发复杂lambda应用程序(python) 1. 练习使用CloudShell CloudShell使用背景 复杂的python的lambda程序会有许多依赖的包,如果不提前准备好这些python的…

driftingblues6靶场攻略

首先 打开kali,扫描主机 地址是192.168.111.143 访问网站 主页源码看一看,没啥用 老套路, 用nmap扫描一下开放端口 用dirsearch扫描一下目录 如果说扫描不到,那就可能是字典不行,换工具就完了 nmap -sV 192.168.…

【顶刊TPAMI 2025】多头编码(MHE)之Part 6:极限分类无需预处理

目录 1 标签分解方法的消融研究2 标签分解对泛化的影响3 讨论4 结论 论文:Multi-Head Encoding for Extreme Label Classification 作者:Daojun Liang, Haixia Zhang, Dongfeng Yuan and Minggao Zhang 单位:山东大学 代码:https:…

vue视频录制 限制大小,限制时长

<template><div style"height: 100vh;background: #000;"><span style"color: #fff;font-size: 18px;">切换数量&#xff1a;{{ devices.length }}</span><video ref"video" autoplay muted playsinline></vid…

毕业项目推荐:基于yolov8/yolov5的行人摔倒检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示&#xff1a;功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出&#xff08;xls格式&#xff09;功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

高等数学学习笔记 ☞ 无穷小比较与等价无穷小替换

1. 无穷小比较 1. 本质&#xff1a;就是函数的极限趋于0时的速度&#xff0c;谁快谁慢的问题。 2. 定义&#xff1a;若是在同一自变量的变化过程中的无穷小&#xff0c;且&#xff0c;则&#xff1a; ①&#xff1a;若&#xff0c;则称是比的高阶无穷小&#xff0c;记作&…

基于Spring Boot的智能笔记的开发与应用

一、项目背景与意义 智能笔记系统旨在为用户提供便捷、高效的笔记记录与管理服务。通过智能化的功能&#xff0c;如自动分类、标签管理、全文搜索等&#xff0c;用户可以更加轻松地管理和查找自己的笔记。同时&#xff0c;基于Spring Boot的开发使得系统具有高度的可扩展性和可…

word中插入zotero引用

1、参考文献末尾没有文献&#xff1f; 在文献条目要显示的地方点击“refresh” 2、参考文献条目没有悬挂缩进&#xff1f; 把“书目”添加到样式库中&#xff0c;修改样式为悬挂缩进1.5字符 3、交叉引用&#xff1f; 宏 新建一个宏 粘贴下面代码 Public Sub ZoteroLinkCita…

简历_专业技能_熟悉Redis常用数据结构及其操作命令

系列博客目录 文章目录 系列博客目录1.Redis通用命令2.String类型3.Hash类型4.List类型5.Set类型6.Sorted类型7.StringRedisTemplate 1.Redis通用命令 通用指令是部分数据类型的&#xff0c;都可以使用的指令&#xff0c;常见的有&#xff1a; KEYS&#xff1a;查看符合模板的…

快速将索尼手机联系人导出为 HTML 文件

我想将 Sony Xperia 手机上的联系人导出到计算机上进行备份&#xff0c;并在需要时进行编辑。这可以做到吗&#xff1f;如何做到&#xff1f;作为助手我需要下载什么工具吗&#xff1f; 当您的 Android 手机上存储了如此多的重要联系人&#xff0c;而您又不想丢失它们时&#…

爬虫案例-爬取某度文档

文章目录 1、第三方库的安装和pytesseract安装2、爬取某度文档的代码3、效果图 1、第三方库的安装和pytesseract安装 #以下是安装http请求的第三方库 pip install requests #以下是安装处理文档的第三方库 pip install python-docx #以下是安装处理图片的第三方库 pip install…