正规网站建设平台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进行投诉反馈,一经查实,立即删除!

昆山教育云平台网站建设办公空间设计案例ppt

Langchain-Chatchat能否替代传统搜索引擎?局限性分析 在企业知识管理日益复杂的今天,一个常见的挑战浮出水面:新员工入职一周了,还在翻找“年假怎么休”“报销流程是什么”这类基础问题的答案;法务部门为了查一份三年前…

张小明 2026/1/5 5:01:43 网站建设

南山网站seo品牌建设总结报告

文章目录系统截图项目技术简介可行性分析主要运用技术介绍核心代码参考示例结论源码lw获取/同行可拿货,招校园代理 :文章底部获取博主联系方式!系统截图 基于python的哈利波特书影音互动科普网站_v62ht386–论文 项目技术简介 Python版本&#xf…

张小明 2026/1/8 6:52:45 网站建设

商城网站系统建设企业解决方案图片

强风是威胁大型桥梁、高山隧道口安全运营的重要自然因素。实时、准确的风速风向监测是发布预警、采取限行措施的科学依据。FST200-207抗冰冻型超声波风速风向传感器专为此类基础设施的安全监测而设计。 桥梁,特别是悬索桥和斜拉桥,对风荷载非常敏感。在…

张小明 2026/1/4 22:08:49 网站建设

html5 触屏网站 案例做购物网站学什么技术

近日,小编的一个客户在登录管家婆辉煌软件时遇到了一个问题,登录软件时系统一直提示“用户null登录失败/配置文件打开错误”导致不能成功进入软件录入单据,这个问题一般是因为什么导致的呢?今天来和小编一起学习下如何解决管家婆软…

张小明 2026/1/4 18:12:09 网站建设

无锡做网站公司在哪里网址

快速体验 打开 InsCode(快马)平台 https://www.inscode.net输入框内输入如下内容: 创建一个WiFi密码强度测试工具,能够导入密码字典文件,模拟破解过程,并给出密码强度评估报告。要求可视化展示破解进度,统计常见弱密码…

张小明 2026/1/4 23:11:13 网站建设

腾讯域名注册网站高端美食网站建设

5大优势深度解析:为什么snnTorch是下一代脉冲神经网络的首选框架 【免费下载链接】snntorch Deep and online learning with spiking neural networks in Python 项目地址: https://gitcode.com/gh_mirrors/sn/snntorch 在人工智能快速发展的今天&#xff0c…

张小明 2026/1/3 16:50:51 网站建设