我有一个使用Nuxt.js(版本2.15.7)的单页应用程序,需要从URL中获取两个参数。例如:
domain.com domain.com/chapter3 domain.com/chapter3/section5
这三个地址都应该渲染在pages/index.vue
中找到的相同页面,我只是想能够读取$route.params.chapterNo
和$route.params.sectionNo
,而不需要真正重定向到另一个页面。
我通过编辑我的nuxt.config.js
文件部分实现了这一点,如下所示:
router: { extendRoutes(routes, resolve) { routes.push({ name: 'chapter', path: '/chapter:chapterNo?', component: resolve(__dirname, 'pages/index.vue') }); routes.push({ name: 'section', path: '/chapter:chapterNo?/section:sectionNo?', component: resolve(__dirname, 'pages/index.vue') }); } },
唯一的问题是,这会破坏先前版本的pages/index.vue
,并在每次路由到新的章节或部分时重新挂载一个新版本。每次路由更改时都会调用mounted()
,但我只需要页面被挂载一次。它将在地址更改时进行动画处理,但是使用这种设置,整个DOM都会被清除和重建,从而无法进行动画处理。有什么路由配置可以在不重新渲染整个页面的情况下只获取这两个参数吗?
我尝试删除配置文件的component
属性,但这会导致页面未找到
错误。
我尝试在根<Nuxt>
组件上使用keep-alive
,但这只会缓存每个页面。它仍然在每次路由更改时重新挂载。
我尝试使用router-extras
模块,并使用定义多个参数选项,但每次路由更改时也会重新挂载pages/index.vue
。这是我的尝试,产生了相同的问题:
<router> { path: '/chapter:chapterNo?/mission:missionNo?', } </router>
有没有办法更改路由以获取参数而不重新挂载pages.index.vue
?
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
要缓存渲染的组件,请在布局中的
<Nuxt>
组件上使用keep-alive
:演示1
要仅缓存特定页面,请使用
keep-alive-props.include
和组件名称(即页面的路径):演示2
天天开心
https://jiameng.baidu.com/searchContentList?query=%E7%8E%AF%E7%90%83%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%BA%BF%E5%AE%A2%E6%9C%8D%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E7%8E%AF%E7%90%83%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%BA%BF%E5%BC%80%E6%88%B7%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E7%8E%AF%E7%90%83%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E7%8E%AF%E7%90%83%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%BC%80%E6%88%B7%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%AE%A2%E6%9C%8D%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%BA%BF%E5%AE%A2%E6%9C%8D%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91https://jiameng.baidu.com/searchContentList?query=%E8%85%BE%E9%BE%99%E5%85%AC%E5%8F%B8%E5%9C%A8%E7%BA%BF%E5%BC%80%E6%88%B7%E3%80%90%E5%BE%AE%E4%BF%A1sr88861%E3%80%91
我在默认布局文件中使用
<Nuxt keep-alive />
查看Vue开发者工具时,注意到Nuxt为每个章节和部分创建了一个具有唯一键的pages/index.vue
的新实例:这给了我一个想法,通过使用
<Nuxt nuxt-child-key="doNotReMount"/>
来强制分配一个常量键给页面。现在,每次新路由时键不会更新,
pages/index.vue
页面只会被挂载一次,所有后续路由都使用同一个页面实例!之前,***公司开户{薇 sr88861}(电)132/6234/5696公司的管理团队进行了深入的研讨与细致的规划。首先,明确了开户的目的与需求。是为了日常资金的收付流转更为便捷高效?还是为了拓展融资渠道,为公司的大规模项目筹备资金?亦或是为了更好地进行财务管理与风险防控?经过多番权衡,确定了开户将服务于公司全方位的金融运作需求,包括但不限于贸易往来结算、工资发放、税务缴纳以及潜在的资金投资与借贷等。同时,对市场上众多的金融机构展开了全面的调研。考量的因素涵盖了银行的信誉度、服务质量、手续费标准、金融产品的丰富性以及网点的便捷性等。经过层层筛选与比较,最终锁定了几家在业内口碑良好、实力雄厚且与***公司业务适配度较高的银行作为开户的候选对象。