未应用 Vue 动态路由转换(基于 from/to)
Vue dynamic route transition (based on from/to) not being applied
我在执行某个页面转换时遇到问题。
在我的应用程序中有一个中性状态(没有激活路线)。我有两条通往(相同)页面组件的路线,根据路线道具显示内容。
我想要从中性状态到页面(反之亦然)的过渡来改变不透明度(出现/消失)。从一页到另一页,它应该从左向右滑动。
我正在观察 $route 以实现此目的,如文档中所述 (https://router.vuejs.org/guide/advanced/transitions.html#route-based-dynamic-transition)。
请看我的例子:https://codesandbox.io/s/n06mojkv7j
单击 'A' 或 'B' 会将您带到相应的页面。单击 'X' 可将您带回中立状态。
因此,在中性状态下单击 'A' 会将不透明度从 0 更改为 1。单击 'X' 会将不透明度从 1 更改为 0。到目前为止一切顺利。
当页面 A 处于活动状态时,单击 'B' 可水平滑动页面。也符合预期。
然而,当您从中性位置开始点击 A,然后点击 B(所有转换都按预期进行)时,点击 'X' 就是出错的地方。您会看到页面水平滑动,而不是从 1 到 0 的不透明度(这是来自或进入中性状态的预期用途)。
$route watcher 中的条件已满足,transitionName 实际上已更改为 'opacity'(您也可以在控制台输出中看到)。但是应用了错误的转换。
我希望你们能给我任何关于这个问题的见解:)谢谢!
为 route.path='/' 添加如下配置,然后将解决您遇到的问题。
或者您可以查看 one working demo at CodeSandBox
演示:
const routes = [
{
name: "/",
path: "/",
component: {template:'<div/>'}
},
{
name: "A",
path: "/a",
component: Page,
props: { text: "A" }
},
{
name: "B",
path: "/B",
component: Page,
props: { text: "B" }
}
]
我在执行某个页面转换时遇到问题。
在我的应用程序中有一个中性状态(没有激活路线)。我有两条通往(相同)页面组件的路线,根据路线道具显示内容。
我想要从中性状态到页面(反之亦然)的过渡来改变不透明度(出现/消失)。从一页到另一页,它应该从左向右滑动。
我正在观察 $route 以实现此目的,如文档中所述 (https://router.vuejs.org/guide/advanced/transitions.html#route-based-dynamic-transition)。
请看我的例子:https://codesandbox.io/s/n06mojkv7j
单击 'A' 或 'B' 会将您带到相应的页面。单击 'X' 可将您带回中立状态。
因此,在中性状态下单击 'A' 会将不透明度从 0 更改为 1。单击 'X' 会将不透明度从 1 更改为 0。到目前为止一切顺利。
当页面 A 处于活动状态时,单击 'B' 可水平滑动页面。也符合预期。
然而,当您从中性位置开始点击 A,然后点击 B(所有转换都按预期进行)时,点击 'X' 就是出错的地方。您会看到页面水平滑动,而不是从 1 到 0 的不透明度(这是来自或进入中性状态的预期用途)。
$route watcher 中的条件已满足,transitionName 实际上已更改为 'opacity'(您也可以在控制台输出中看到)。但是应用了错误的转换。
我希望你们能给我任何关于这个问题的见解:)谢谢!
为 route.path='/' 添加如下配置,然后将解决您遇到的问题。
或者您可以查看 one working demo at CodeSandBox
演示:
const routes = [
{
name: "/",
path: "/",
component: {template:'<div/>'}
},
{
name: "A",
path: "/a",
component: Page,
props: { text: "A" }
},
{
name: "B",
path: "/B",
component: Page,
props: { text: "B" }
}
]