定义路由的state参数

使用$stateProvider.state('stateName', {url: '', params: {}, views: {},...})创建路由,其中部分参数解析:

params: 是一个包含路径中参数和正则表达式结果的数组。该选项不能和url选项混用!当状态被激活时,应用将这个数组赋值给$stateParams服务。

views视图:可以在一个状态中设置多个有名称的视图,可以使用同一个模板中改变和切换不同的视图

abstract: 抽象模板。抽象模板不能被激活,但是它的子模板可以被激活。抽象模板可以提供一个包括了多个有名的视图的模板,或者它可以传递作用域变量$scope给子模板。使用它可以在同一个url下传递自定义数据或者预载入的依赖。除了需要添加abstract属性外,其他设置和设定一个常规状态是相同的。

onEnter,onExit 回调函数:当应用进入或者离开当前状态的视图时会调用这两个函数。这两个函数可以访问预载入的数据。这两个回调函数使开发者可以根据状态改变来采取某些动作,例如在用户要离开时可以弹出对话框‘你确定吗?’以及防止意外操作等。

data数据:自定义数据也可以被附加到状态控制对象state configObject.该数据和预载入数据resolve属性相似,但是该数据不会被注入到控制器中,promise也不会被预载入,它的用途是从父状态传递数据到子状态。

url: 当跳转到当前state时,其url会拼接在其父state的url后面,url非必须

转载于:https://www.cnblogs.com/xuepei/p/9337670.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
本备忘录的状态 本文档讲述了一种Internet社区的Internet标准跟踪协议,它需要进一步进行讨论和建议以得到改进。本备忘录的发布不受任何限制。 目 录 1.介绍 5 1.1 协议概述 5 1.2 定义常用术语 6 1.3 基于SPF路由技术的简要历史 7 1.4 文档的组织 7 2.拓朴数据库 8 2.1 最短路径树 12 2.2 使用外部路由信息 13 2.3 等价的多条路径 14 3.自治系统的区域划分 14 3.1 自治系统的主干 14 3.2 区域间路由 15 3.3 路由器的分类 15 3.4 一个区域配置的例子 15 3.5 支持IP子网 19 3.6 区域分割 20 4.功能汇总 20 4.1 区域间路由 21 4.2 自治系统外部路由器 21 4.3 路由协议包 21 4.4 基本实现要求 22 5. 协议数据结构 23 6. 区域数据结构 24 7. 生成邻接 25 7.1 Hello协议 25 7.2 同步数据库 26 7.3 指定路由器 26 7.4 后备指定路由器 27 7.5 邻接图 27 8. 协议包处理 28 8.1 传送协议包 28 8.2 接收协议包 30 9. 接口数据结构 31 9.1 接口状态 32 9.2 事件引起的接口状态变化 33 9.3 接口状态机 34 9.4 选举指定路由器 35 9.5 发送Hello包 36 9.5.1 在非广播网络上传输Hello包 36 10.邻居数据结构 37 10.1 邻居状态 38 10.2 引起邻居状态变化的事件 39 10.3 邻居状态机 40 10.4 是否成为邻接 43 10.5 接收呼叫包 43 10.6 接收数据库描述包 44 10.7 收到连接状态请求包 45 10.8 发送数据库描述包 45 10.9 发送连接状态请求包 45 10.10 一个示例 46 11.路由表结构 46 11.1 两个例子 48 12.连接状态公告 49 12.1 连接状态头 50 12.1.1 LS类型 50 12.1.2 连接状态ID 50 12.1.3 公告路由器 51 12.1.4 LS顺序号 51 12.1.5 LS生存期 52 12.1.6 LS检查和 52 12.3 组织连接状态公告 53 12.3.1 路由器连接 54 12.3.2 网络连接 56 12.3.3 汇总连接 56 12.3.4 自治系统外部连接 57 12.4 TOS尺度 58 13 传播过程 59 13.1 确定哪个连接状态是更新的 59 13.2 在数据库中完装连接状态公告 60 13.3 在传播过程中的下一步 60 13.4收到自己组织的连接包 61 13.5 发送连接状态确认包 61 13.6 重传连接状态公告 62 13.7 接收连接状态确认 63 14 连接状态数据库的生存期 63 15 虚拟连接 63 16 计算路由表 64 16.1 计算一个区域的最短路径树 65 16.1.1 下一跳的计算 67 16.2 计算区间路由 67 16.3 解析虚拟下一跳 68 16.4 计算自治系统外部路由 68 16.5 增量更新——汇总连接 69 16.6 增量更新——自治系统外部连接 69 16.7 路由表变化引起的事件 69 16.8 等价多路径 70 附录A 包格式 72 A.1 OSPF包的封装 72 A.2 OSPF包头 73 A.3 连接状态(LS : Link State)公告头 73 A.4 Hello包 74 A.5 数据库描述包 75 A.6 连接状态请求包 76 A.7 连接状态更新包 77 A.7.1 路由连接公告 77 A.7.2 网络连接公告 79 A.7.3 汇总连接公告 79 A.7.4 自治系统外部连接公告 80 A.8 连接状态确认包 81 附录B 结构常量 82 附录C 可配置常数 83 C.1 全局参数 83 C.2 区域参数 83 C.3 路由器接口参数 83 C.4 虚拟连接参数 84 C.5 非广播、多路存取网络参数 85 C.6 主路由参数 85 D 必要的统计信息 86 D.1 日志信息 86 D.2 累计统计 87 E 认证 90
在 React 中,可以使用 React Router 来进行路由拦截和管理。要在路由拦截时添加 URL 参数,可以使用 React Router 的 `Redirect` 组件和 `withRouter` 高阶组件。 首先,需要在路由配置中定义需要拦截的路由,并指定需要跳转的目标路由。例如: ```jsx import { Redirect } from 'react-router-dom'; const PrivateRoute = ({ component: Component, isAuthenticated, ...rest }) => ( <Route {...rest} render={(props) => ( isAuthenticated === true ? <Component {...props} /> : <Redirect to={{ pathname: '/login', state: { from: props.location } // 传递当前路由信息 }} /> )} /> ); ``` 在上面的代码中,`PrivateRoute` 组件代表需要拦截的路由。如果用户已经登录成功(即 `isAuthenticated` 为 `true`),则可以访问该路由对应的组件;否则,用户将被重定向到登录页面。 需要注意的是,在重定向时,可以通过 `state` 属性传递当前路由的信息。这样,在用户登录成功后,可以根据传递的信息,自动跳转到之前访问的路由。 例如,在登录页面中可以这样获取传递的信息: ```jsx import { withRouter } from 'react-router-dom'; class LoginPage extends React.Component { handleLogin = () => { // 登录成功后,跳转到之前访问的路由 const { history } = this.props; const { state } = this.props.location; const from = state ? state.from : '/'; history.push(from); } render() { return ( // ... ); } } export default withRouter(LoginPage); ``` 在上面的代码中,通过 `withRouter` 高阶组件将 `LoginPage` 组件包装起来,以便可以在组件中使用 `history` 和 `location` 属性。在 `handleLogin` 方法中,通过 `history.push` 方法跳转到之前访问的路由。如果之前没有访问过其他路由,则跳转到根路由(即 `/`)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值