当前位置: 首页 > wzjs >正文

怎样优化手机网站合肥营销型网站建设公司

怎样优化手机网站,合肥营销型网站建设公司,外链推广平台,如何改更wordpress上下文章链接Navigation的进阶知识与拦截器配置 写的不是很详细,后续有时间会补充,建议参考官方文档食用 1.如何配置路由信息 1.1 创建工程结构 src/main/ets ├── pages │ └── navigation │ ├── views │ │ ├── Mine.ets //…

Navigation的进阶知识与拦截器配置

  • 写的不是很详细,后续有时间会补充,建议参考官方文档食用

1.如何配置路由信息

1.1 创建工程结构

src/main/ets
├── pages
│   └── navigation
│       ├── views
│       │   ├── Mine.ets      // 个人中心页
│       │   ├── Login.ets     // 登录页
│       │   └── ErrorPage.ets // 错误页
│       └── NavagationIndex.ets // 导航入口
├── routerMap.json5           // 路由配置文件

1.2 核心路由配置解析(routerMap.json5)

{"routerMap": [{"name": "mine",       // 路由唯一标识符"buildFunction": "MineBuilder",   "pageSourceFile": "src/main/.../Mine.ets" },// ...其他路由项]
}

关键字段含义

关键字段说明
name路由标识符,用于编程式导航
buildFunction页面构建器函数名(关联组件注册)
pageSourceFile源代码文件位置(动态加载基础)

1.3 案例演示

1.创建首页面
@Entry
@Component
struct TextPage {@ProvidenavPathStack:NavPathStack = new NavPathStack()build() {Navigation(this.navPathStack){Text('这是首页')Button('跳到下一页去').onClick(()=>{this.navPathStack.pushPath({name:'nextOne'})})}}
}
2.创建子页面(跳转页面)
@Builder
function PageOne() {TextPage_()
}@Component
struct TextPage_ {@ConsumenavPathStack: NavPathStackbuild() {NavDestination() {Text('这是我从首页面跳过来的第一个页面')Image($r('app.media.Cover')).width(100).aspectRatio(1)Button('跳到第三个页面去').onClick(() => {this.navPathStack.pushPath({ name: 'pageTwo' })})}}
}@Builder
function PageTwo() {TextPage2_()
}@Component
struct TextPage2_ {build() {NavDestination() {Text('这是我从首页面跳过来的第二个页面')Image($r('app.media.Cover2')).width(100).aspectRatio(1)}}
}
3.配置json.map映射路径
   {"name": "nextOne","buildFunction": "PageOne","pageSourceFile": "src/main/ets/pages/TextPage_.ets"},{"name": "pageTwo","buildFunction": "PageTwo","pageSourceFile": "src/main/ets/pages/TextPage_.ets"}
4.效果展示

img

2.导航入口组件实现(NavagationIndex.ets)

1.组件结构

@Entry
@Component
struct NavagationIndex {@Provide navPathStack: NavPathStack = new NavPathStack()build() {Navigation(this.navPathStack) {// 初始页面内容Button('跳转至-我的').onClick(() => {this.navPathStack.pushPath({name: 'mine'})})}.mode(NavigationMode.Auto) // 跨设备适配}
}

2.导航模式说明

模式适用场景
NavigationMode.Stack单页面栈模式(移动端)
NavigationMode.Split分栏模式(平板/PC)
NavigationMode.Auto自动适配设备

3.拦截器配置

1.拦截器注册时机
.onAppear(() => {this.registerInterceptors()
})
2. 拦截逻辑流程图解

image-20250309205538032

3. 关键拦截逻辑代码

const token = AppStorage.get('token')! as string || '';
if (t.pathInfo?.name === 'mine' && token === '') {// 拦截动作分解t.pathStack.pop();          // 移除无效跳转t.pathStack.pushPath({      // 重定向到登录页name: "login"});
}
4.错误处理机制
if (!t.pathInfo && f.pathInfo.name !== 'error') {f.pathStack.pushPath({name: 'error'}) // 注入错误页return;
}
5.代码示例
import { promptAction } from '@kit.ArkUI'@Entry
@Component
struct NavagationIndex {@ProvidenavPathStack: NavPathStack = new NavPathStack()registerInterceptors() {this.navPathStack.setInterception({//f从哪来,t到哪去willShow: (f, t) => {if (typeof t === 'string'||typeof f ==='string') {return}//f可能是首页跳过来的//必须加个逻辑与// if(!t.pathInfo && f.pathInfo.name !='error'){//   f.pathStack.pushPath({name:'error'})//   return//   //返回不好返回// }if (t.pathInfo.name === 'mine') {promptAction.showToast({message: '拦截到我要去mine'})//拦截你 不让你跳// t.pathStack.pop()const token = AppStorage.get('token')! as string || ''//拦截!!!if (token === '') {t.pathStack.pop()//去登录t.pathStack.pushPath({name: "login"})}return}},//t 跳转之后的拦截didShow: () => {}})}build() {Navigation(this.navPathStack) {//还没有进行跳转,但是已经有展示的内容了Text('这是我的首页')Button('跳转至-我的').onClick(() => {this.navPathStack.pushPath({name: 'mine'})})}.onAppear(() => {this.registerInterceptors()}).height('100%').width('100%')//跨设备.mode(NavigationMode.Auto)}
http://www.dtcms.com/wzjs/617002.html

相关文章:

  • 网站建设论文的前言医生问诊在线咨询免费
  • 招一个程序员可以做网站吗wordpress 获取时间
  • 被禁止访问网站怎么办建材网站开发
  • 代做网站毕业设计火炬开发区网站建设
  • 网站建设推广型企业所得税优惠政策2021年最新
  • AWS免费套餐做网站可以吗wordpress文章填写关键词描述标题
  • 你去湖北省住房城乡建设厅网站查基于wordpress 开发
  • 特色的合肥网站建设猪八戒里面做网站骗子很多
  • 做当地门户网站多少钱Wordpress如何设置运费
  • 做网站是属火的职业吗wordpress 即时
  • 网站专题教程邢台学校网站建设费用
  • 天津网站建设诺亚成都网站建设公司高新
  • 长丰县住房和建设局网站无锡网站怎么推广效果好
  • 滨州淄博网站建设福建福州罗源建设局网站
  • 织梦网站模板安装广告设计公司方案
  • 平台网站建设多少钱网页设计师必备软件
  • 建设部网站房地产资质南京网络推广外包
  • 学习吧网站导视设计报价
  • 镇江网站建设优化语言网站开发
  • 深圳市建设工程造价管理站官网企业网站建设一般考虑哪些因素?
  • 网站营销的特征有wordpress缓存文件在哪
  • 海南省住房和建设厅网站免费的网站有哪些平台
  • 上海网站排名网站运营商查询
  • 谁需要做网站的嘉兴温州建校网站
  • 网站开发快速盈利保定电子商务网站建设
  • 女子医院网站设计怎么做全网营销整合推广
  • 做网站上饶属于网站的管理 更新 维护
  • 门户网站建设的公司做网站的公司排名
  • 怎么区分营销型网站谷歌seo零基础教程
  • 西安免费做网站哪家好wordpress快递查询