惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
B
Blog RSS Feed
宝玉的分享
宝玉的分享
腾讯CDC
博客园_首页
T
Tailwind CSS Blog
月光博客
月光博客
博客园 - 司徒正美
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
M
MIT News - Artificial intelligence
A
About on SuperTechFans
云风的 BLOG
云风的 BLOG
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
有赞技术团队
有赞技术团队
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
MongoDB | Blog
MongoDB | Blog
博客园 - 聂微东
V
Visual Studio Blog
H
Hackread – Cybersecurity News, Data Breaches, AI and More
SecWiki News
SecWiki News
美团技术团队
P
Privacy International News Feed
H
Help Net Security
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Microsoft Security Blog
Microsoft Security Blog
Know Your Adversary
Know Your Adversary
Y
Y Combinator Blog
D
DataBreaches.Net
Project Zero
Project Zero
T
The Blog of Author Tim Ferriss
Cyberwarzone
Cyberwarzone
C
Cybersecurity and Infrastructure Security Agency CISA
C
Cisco Blogs
S
Schneier on Security
G
GRAHAM CLULEY
博客园 - 三生石上(FineUI控件)
Cisco Talos Blog
Cisco Talos Blog
小众软件
小众软件
Forbes - Security
Forbes - Security
D
Docker
T
Tenable Blog
S
Secure Thoughts
雷峰网
雷峰网
S
Security @ Cisco Blogs
T
The Exploit Database - CXSecurity.com
The Cloudflare Blog
博客园 - 【当耐特】
Spread Privacy
Spread Privacy
阮一峰的网络日志
阮一峰的网络日志

博客园 - LungGiyo

frp 教程 nginx 跨域解决 001 局域网其他电脑也能访问wsl服务 001 nvm 管理不同版本的 node 与 npm 关于IP送中的影响和解决办法 Antigravity google ai 接入高德MCP 1.3.2 git使用ssh密钥 连接远程仓库 dynadot域名 托管到cloudflare , 使用cloudflare 的CDN功能 003 二进制日志-binlog Django 项目开发整体步骤(0 开始)+进阶 磊科N60Pro刷机 前端技术知识扫盲篇 使用 Lucky 为群晖 / 极空间 NAS 全服务启用 HTTPS 安全访问 00 docker 命令总结 001 Python 基础 麒麟系统升级openssh至openssh-10.0p1 零信任访问控制系统aTrust 蓝屏 Python PyInstaller 打包、Pyarmor加密等 001 安装wsl 2 && 开启 WSL2 Oxidized的model
uni的页面解析
LungGiyo · 2025-07-24 · via 博客园 - LungGiyo

uni-app 项目中常见的生命周期方法、核心结构和常用用法

一、整体结构简析

uni-app.vue 文件中,遵循标准的 Vue 单文件组件结构

<template>   // 页面结构,等同 HTML
<script>     // 页面逻辑,等同 JS
<style>      // 页面样式,等同 CSS/LESS

二、data():页面的响应式数据模型

data() {
  return {
    userInfo: {
      avatar: null,
      nickName: null,
      sex: null,
      phonenumber: null
    },
    jumpList: [...], // 页面按钮项配置
    notice: '',      // 公告栏内容
    path: null       // 即将跳转的路径临时变量
  }
}

  • 用途: 这里的数据相当于前端的状态管理器(简易版 Vuex),模板中的 {{ }}:prop 都能自动绑定 data 中的字段。
  • 响应式: 一旦修改,页面自动刷新。
  • 三、生命周期钩子(重点)

    created()

  • 触发时机: 页面组件初始化完成、DOM 未渲染前触发。
  • 常用场景:
  • 初始化 token、用户信息
  • 发起首次请求
  • 读取本地缓存
  • created() {
      let token = uni.getStorageSync('token')
      if (!token) {
        uni.login({...})
      }
    }

    onShow()

  • 触发时机: 每次页面显示/切换到当前页面时都会触发(不像 created 只执行一次)。
  • 常用场景:
  • 页面激活时刷新用户状态、通知信息
  • 应用场景:A 页面进入 B 页面修改信息,回到 A 页后 onShow 刷新数据。
  • onShow() {
      this.getNotice()
      this.userInfo = uni.getStorageSync('userInfo') || {...}
    }

    四、methods:页面方法区(类的成员方法)

    这是 vue 的 methods 区块,用于编写页面逻辑函数、事件响应函数:

  • 所有绑定在模板事件的 @click="..."@change="..." 都在这里声明。
  • 可通过 this.xxx 调用其他方法或变量。
  • methods: {
      getPhoneNumber(e) { ... },
      jumpTo(path, id) { ... },
      getNotice() { ... }
    }

    总结:页面执行流程图

    用户打开页面
     └── created() 执行(如检测token、准备数据)
     └── 页面渲染 DOM
     └── onShow() 执行(刷新数据、加载公告)
        └── getNotice()
        └── 读取 userInfo
    用户操作按钮
     └── jumpTo() 被触发
        └── 判断是否已授权头像、手机号
        └── 未授权 → 请求授权(头像 / 手机号)
        └── 已授权 → 发起接口请求,跳转页面