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

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

核心概念:

  • 页面 (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.mzph.cn/bicheng/66309.shtml

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

相关文章

基于微信小程序的面部动作检测

目录 引言系统架构概述前端实现细节后端实现细节防止欺骗与误导的措施前后端数据交互详细细节关键技术选型关键技术框架与算法详细说明优化与注意事项总结 引言 微信小程序的面部动作检测的核心功能包括检测用户的左右转头、眨眼和张嘴动作,并根据检测结果逐步引导…

asp.net core中的 Cookie 和 Session

在 Web 开发中,用户会话管理是非常重要的,尤其是在需要保持用户状态和身份验证的应用中。ASP.NET Core 提供了多种状态管理技术,如 Cookie 和 Session,它们可以帮助你管理用户会话、存储数据并实现用户身份验证等功能。下面将详细…

互联网直播点播平台EasyDSS无人机视频推拉流技术实现工地远程监控巡检直播

在建筑行业,施工现场的安全管理和实时监控一直是项目管理中的重点。随着技术的进步,无人机工地直播技术成为了一种新兴的解决方案,它不仅能够提高施工透明度,还能够加强现场安全管理。EasyDSS作为一种先进的流媒体技术平台&#x…

【文献精读笔记】Explainability for Large Language Models: A Survey (大语言模型的可解释性综述)(四)

****非斜体正文为原文献内容(也包含笔者的补充),灰色块中是对文章细节的进一步详细解释! 四、提示范式(Explanation for Prompting Paradigm) 随着语言模型规模的扩大,基于提示(prom…

基于区块链的共享算力系统概念方案

以下白皮书为一个去中心化的 GPU 共享算力系统的概念性方案参考,旨在帮助社区和开发者初步了解该系统的设计思路与运作机制。该方案受到 IPFS、区块链(如比特币、以太坊)等去中心化项目的启发,结合了激励机制和点对点资源共享理念…

RedisInsight:企业级 Redis 管理与分析工具

1 介绍 RedisInsight 是一款专为企业级用户设计的 Redis 管理与分析工具,旨在简化 Redis 数据库的管理和优化操作。通过直观的图形化界面和强大的功能集,RedisInsight 提供了全面的监控、诊断、性能优化以及数据管理能力,帮助企业和开发团队更高效地管理和运维 Redis 实例。…

【循环神经网络】RNN介绍

在人工神经网络中,”浅层网络”是指具有一个输入层、一个输出层和最多一个没有循环连接的隐藏层的网络。随着层数的增加,网络的复杂性也在增加。更多的层或循环连接通常会增加网络的深度,并使其能够提供不同级别的数据表示和特征提取&#xf…

vue v-for 数据增加页面不刷新

<div style"float:left;border:1px solid red;height:100px;width:600px;"><el-form-item label"多语言配置" style"width:700px;" prop"validTanleHead"><el-input style"width: 180px" placeholder"请…

DeepSeek v3为何爆火?如何用其集成Milvus搭建RAG?

最近&#xff0c;DeepSeek v3&#xff08;一个MoE模型&#xff0c;拥有671B参数&#xff0c;其中37B参数被激活&#xff09;模型全球爆火。 作为一款能与Claude 3.5 Sonnet&#xff0c;GPT-4o等模型匹敌的开源模型DeepSeek v3不仅将其算法开源&#xff0c;还放出一份扎实的技术…

【C语言】_野指针

目录 1. 野指针常见成因 1.1 指针未初始化 1.2 指针越界访问 1.3 指针指向的空间释放了 2. 规避野指针 2.1 指针初始化 2.2 小心指针越界 2.3 指针变量使用前检查有效性&#xff0c;不再使用时及时置NULL 2.4 避免返回局部变量的地址 野指针&#xff1a;野指针就是指针…

IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案

IEEE PDF eXpress遇到Font TimesNewRomanPSMT is not embedded的解决方案 问题描述 在IEEE PDF eXpress上上传论文后&#xff0c;出现Font XXX is not embedded的问题。 该问题是指你所插入的图片等&#xff0c;没有将对应的字体嵌入进去。 解决方案 以下以Origin Lab图片…

什么情况会导致JVM退出?

大家好&#xff0c;我是锋哥。今天分享关于【什么情况会导致JVM退出?】面试题。希望对大家有帮助&#xff1b; 什么情况会导致JVM退出? 1000道 互联网大厂Java工程师 精选面试题-Java资源分享网 JVM&#xff08;Java Virtual Machine&#xff09;在不同情况下可能会退出&am…

Linux内核编程(二十一)USB应用及驱动开发

一、基础知识 1. USB接口是什么&#xff1f; USB接口&#xff08;Universal Serial Bus&#xff09;是一种通用串行总线&#xff0c;广泛使用的接口标准&#xff0c;主要用于连接计算机与外围设备&#xff08;如键盘、鼠标、打印机、存储设备等&#xff09;之间的数据传输和电…

实时数仓: Hudi 表管理、Flink 性能调优或治理工具脚本

1. Hudi 表管理 1.1 Hudi 表基础管理 创建 Hudi 表 在 HDFS 上创建一个 Hudi 表&#xff08;以 Merge-on-Read 为例&#xff09;&#xff1a; CREATE TABLE real_time_dw.dwd_order_fact (order_id STRING,user_id STRING,product_id STRING,amount DOUBLE,order_date STRIN…

CSS——1.优缺点

<!DOCTYPE html> <html><head><meta charset"UTF-8"><title></title><link rel"stylesheet" type"text/css" href"1-02.css"/></head><body><!--css&#xff1a;层叠样式表…

.NET中的强名称和签名机制

.NET中的强名称&#xff08;Strong Name&#xff09;和签名机制是.NET Framework引入的一种安全性和版本控制机制。以下是关于.NET中强名称和签名机制的详细解释&#xff1a; 强名称 定义&#xff1a; 强名称是由程序集的标识加上公钥和数字签名组成的。程序集的标识包括简单文…

攻防世界 - Web - Level 3 | simple_js

关注这个靶场的其它相关笔记&#xff1a;攻防世界&#xff08;XCTF&#xff09; —— 靶场笔记合集-CSDN博客 0x01&#xff1a;考点速览 本题考察的是 JS 的代码审计&#xff0c;以下是你需要了解的知识点&#xff1a; String.fromCharCode() -> 将接收的 Unicode 编码转换…

Ubuntu cuda-cudnn中断安装如何卸载

文章目录 问题描述解决方法使用强制移除 问题描述 Ubuntu22.04系统&#xff0c;在终端中执行apt insatll安装或dpkg .deb安装时如果强制关闭终端会导致安装失败&#xff08;安装包会变成iu状态或ru状态&#xff0c;安装成功的应该是ii状态&#xff09; 此时&#xff0c;无论是…

关系分类(RC)模型和关系抽取(RE)模型的区别

目标不同 关系分类模型&#xff1a;对给定的实体对在给定句子中预测其关系类型。两阶段&#xff08;RC&#xff09; 关系抽取模型&#xff1a;从句子中识别出所有潜在实体对&#xff0c;并为其预测关系类型。一阶段&#xff08;NERRE&#xff09; 训练/预测阶段输入输出数据不…

永磁同步电机控制算法--最大转矩电流比控制(牛顿迭代法)

一、原理介绍 搭建了基于牛顿迭代法的MTPA双闭环矢量控制系统 二、仿真验证 在MATLAB/simulink里面验证所提算法&#xff0c;采用和实验中一致的控制周期1e-4&#xff0c;电机部分计算周期为1e-6。仿真模型如下所示&#xff1a; 对直接公式计算法和牛顿迭代法进行仿真对比验…