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

公司申请网站备案网站 建设 现状分析

公司申请网站备案,网站 建设 现状分析,推广网站实例,wordpress slider插件下载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/538736.html

相关文章:

  • 柳州市建设投资开发公司网站住房和城乡建设统计网站
  • 企业网站模板html下载wordpress在哪下载模板
  • wap网站开发网站建设什么服务器好
  • 公司制作网站怎么做wordpress分类目录页
  • 网站建设都有什么功能个人学做网站
  • 网站建设 甘肃重庆绝美的十大冷门景点
  • 网站建设合同免费下载成都网上房地产
  • 网站开发待遇高吗分销商城功能
  • 在线观看永久免费网站网址wordpress点击弹窗插件
  • 怎么做 在线电影网站在手机上怎么做app软件
  • 做logo网站的公司网站目录怎么做的
  • 百度搜索不到任何网站wordpress vue主题
  • 顺德制作网站价格多少作风建设提升年活动网站
  • aspcms是网站什么漏洞中国建设银行报名网站
  • 合肥网站建站报广告代理南昌市做网站公司
  • 工业信息化部网站备案龙岩网页
  • 网站专题欣赏网站统计系统 怎么做
  • 潮阳网站制作正规网站备案代理
  • 万户网络做网站怎么样泉州外贸网站建设都有哪些公司
  • 铜陵网站建设如何提高网站速度
  • 网站服务器建设教程承接网站建设文案
  • 完成网站建设的心得体会wordpress 插件 迁移
  • 成品网站安装北京网站建设外包
  • 博业建站网电子商务微网站制作
  • 如何给网站刷流量西安网站建设的网站
  • 网站建设最低多少钱浙江广发建设有限公司网站
  • 做企划的网站世预赛韩国出线了吗
  • 热门网站有哪些高端网站建设公司名字
  • 平面设计素材免费网站有哪些宿松网站建设公司
  • 小说网站怎么做原创简单百度网址大全