正规网站建设平台WordPress防伪证书插件

张小明 2026/1/10 3:22:51
正规网站建设平台,WordPress防伪证书插件,wordpress lazy load,深圳网站设计如果一个应用没有登录系统#xff0c;它大概率只是个 Demo。 从这一篇开始#xff0c;我们的「任务清单 App」正式进入 “产品级应用”阶段。一、真实 App 的登录系统需要解决哪些问题#xff1f; 很多人写登录#xff0c;只写了一个页面和一个接口调用#xff0c;但真实情…如果一个应用没有登录系统它大概率只是个 Demo。从这一篇开始我们的「任务清单 App」正式进入“产品级应用”阶段。一、真实 App 的登录系统需要解决哪些问题很多人写登录只写了一个页面和一个接口调用但真实情况远比这复杂我们至少要解决用户是否已登录Token 存在哪里App 重启是否自动登录多个页面如何共享登录态退出登录如何清理状态Token 过期如何处理 这些问题的答案都指向全局状态管理。二、设计登录系统的整体架构先别写代码推荐结构entry/ ├─ model/ │ ├─ AuthModel.ets // 登录状态模型全局 │ └─ TaskModel.ets ├─ service/ │ ├─ AuthService.ets // 登录 / 退出 / 刷新 token │ └─ TaskService.ets ├─ store/ │ └─ AppStore.ets // 全局状态入口 ├─ pages/ │ ├─ Login.ets │ └─ Index.ets不要把登录状态写在某个页面里登录态是全局状态三、第一步定义登录状态模型AuthModelmodel/AuthModel.etsObservedV2exportclassAuthModel{token:stringuserName:stringisLogin:booleanfalselogin(token:string,userName:string){this.tokentokenthis.userNameuserNamethis.isLogintrue}logout(){this.tokenthis.userNamethis.isLoginfalse}}教学重点登录状态 数据模型UI 不直接维护登录变量四、第二步封装登录服务网络 存储service/AuthService.etsimportpreferencesfromohos.data.preferencesimporthttpfromohos.net.httpconstTOKEN_KEYUSER_TOKENconstUSER_KEYUSER_NAMEexportclassAuthService{staticasynclogin(account:string,password:string){consthttpRequesthttp.createHttp()constresponseawaithttpRequest.request(https://example.com/api/login,{method:http.RequestMethod.POST,extraData:{account,password}})constresultJSON.parse(response.resultasstring)return{token:result.token,userName:result.userName}}staticasyncsaveAuth(token:string,userName:string){constprefawaitpreferences.getPreferences(getContext(),auth)awaitpref.put(TOKEN_KEY,token)awaitpref.put(USER_KEY,userName)awaitpref.flush()}staticasyncloadAuth(){constprefawaitpreferences.getPreferences(getContext(),auth)consttokenawaitpref.get(TOKEN_KEY,)constuserNameawaitpref.get(USER_KEY,)return{token,userName}}staticasyncclearAuth(){constprefawaitpreferences.getPreferences(getContext(),auth)awaitpref.clear()awaitpref.flush()}} 网络、缓存全部在 Service 层 Model 不关心存储细节五、第三步全局状态 StoreAppStore这是整篇的核心设计。store/AppStore.etsimport{AuthModel}from../model/AuthModelimport{AuthService}from../service/AuthServiceObservedV2exportclassAppStore{authnewAuthModel()loading:booleantrueasyncinit(){const{token,userName}awaitAuthService.loadAuth()if(token){this.auth.login(token,userName)}this.loadingfalse}asynclogin(account:string,password:string){constresultawaitAuthService.login(account,password)this.auth.login(result.token,result.userName)awaitAuthService.saveAuth(result.token,result.userName)}asynclogout(){this.auth.logout()awaitAuthService.clearAuth()}}教学重点非常重要App 启动时只初始化一次所有页面共享同一个 AppStore登录 / 退出是统一入口六、第四步将 AppStore 变成“全局状态”使用Provider / Consume。App 根组件如 EntryComponentV2 struct AppRoot{Local storenewAppStore()Onceasyncinit(){awaitthis.store.init()}build(){if(this.store.loading){Text(初始化中...)}else{if(this.store.auth.isLogin){Index()}else{Login()}}}}提供全局状态Provider appStore:AppStorethis.store任意页面获取登录态Consume appStore:AppStoreText(你好${this.appStore.auth.userName}) 这就是HarmonyOS 的全局状态管理方式七、第五步登录页面实现pages/Login.etsComponentV2 struct Login{Consume appStore:AppStore Local account:stringLocal password:stringbuild(){Column({space:12}){TextInput({placeholder:账号}).onChange(vthis.accountv)TextInput({placeholder:密码,type:InputType.Password}).onChange(vthis.passwordv)Button(登录).onClick(async(){awaitthis.appStore.login(this.account,this.password)})}.padding(16)}}八、退出登录怎么做在任意页面Consume appStore:AppStoreButton(退出登录).onClick(()this.appStore.logout())UI 会自动切回 Login 页面。九、Token 如何自动带到请求中统一在 Service 层处理headers:{Authorization:Bearer${appStore.auth.token}} 不要在 UI 拼 Token 网络层统一处理十、这一篇你真正学会了什么你已经掌握✔ 登录系统的完整设计✔ Token 管理✔ 自动登录✔ 全局状态共享✔ Provider / Consume 用法✔ 多页面登录态切换这已经是商业 App 的标准做法。结语登录系统不是一个页面而是一整套状态管理体系。
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

个人网站的制作教程wordpress为什么是英文版

内容概要:本文设计了一套基于西门子S7-1200 PLC与组态王软件的污水处理监控系统,采用序列间歇式活性污泥法(SBR法)进行污水处理,涵盖进水、曝气、沉淀和排水四个阶段。系统通过液位、温度、pH、溶解氧(DO&a…

张小明 2026/1/4 23:10:56 网站建设

肇庆 网站建设公司有哪些福田网站建设流程

LangFlow对新手友好吗?三步完成首个Hello World项目 在AI应用开发的世界里,曾经有一个不成文的门槛:想玩转大语言模型(LLM),你得会写代码。尤其是面对像LangChain这样功能强大但结构复杂的框架时&#xff0…

张小明 2026/1/6 4:36:37 网站建设

隆尧网站建设网站建设专家评审意见

Linly-Talker在大学慕课制作中的高效应用实例 在高校教学资源建设中,课程视频的制作效率长期受限于人力投入与物理条件。一位教师录制一节10分钟的精品课,往往需要数小时准备、反复拍摄、多次剪辑——这不仅消耗精力,也难以满足大规模在线课程…

张小明 2026/1/5 0:17:19 网站建设

什么网站可以做miR的差异表达图免费广告推广网站

Wan2.2-T2V-A14B能否生成符合Z世代审美的潮流短视频? 在抖音每秒刷新数十条视频、TikTok全球月活突破15亿的今天,内容创作早已不是“拍得好”就能胜出的游戏。Z世代用户——这些数字原住民,对视觉节奏、风格调性、情绪共鸣的要求近乎苛刻&am…

张小明 2026/1/5 0:24:51 网站建设

自己做整个网站的流程成都网站建设比较好的公司

文章目录 双机热备全景剖析:从技术原理到角色视角的深度解构 开篇:为何“永不宕机”成为数字时代的生死线? 第一章 本源探究:3W1H框架解构双机热备核心 1.1 WHAT(是什么)—— 技术本质的多层透视 1.2 WHY(为什么)—— 业务连续性的数字经济学 1.3 WHERE(用在哪里)——…

张小明 2026/1/5 0:17:26 网站建设

做课宝官方网站昆明网站建站平台

2026年网络安全人员薪酬趋势 一、网络安全行业为何成“香饽饽”? 最近和几个朋友聊起职业规划,发现一个有趣的现象:不管原来是程序员、运维还是产品经理,都想往网络安全领域跳槽。问原因,答案出奇一致——“听说这行…

张小明 2026/1/5 0:17:26 网站建设