欢迎光临散文网 会员登陆 & 注册

关于vue-router的props传值的一次有趣记录

2022-07-27 12:42 作者:星光免兔  | 我要投稿

在开发新组件时测试出一个有趣的现象,现在记录一下。

有一个完整的页面组件Crud.vue及其props参数的配置文件ProductLabeling.js,使用vue-router的props传值,能正常展示数据(如图)。

Crud.vue组件正常显示数据

创建一个File.vue的空白组件,包含Crud.vue,此时File组件没有定义任何的props,但是props的值被传递给Crud.vue组件的props(如图)。

File.vue空白组件也能显示内容

File.vue,代码如下:

测试其他情况:

1、在File.vue组件定义接收的props,会干扰往下传播的props的值,但是不会阻断这个行为(如图)。

定义props只会修改传递到子组件的值

代码如下:

2、修改template,增加一些其他显示,完全阻断这个现象(如图)。

template增加其他内容后恢复正常

代码如下:

这里贴一下路由的传值方法

写vue3也有一段时间,这个现象完全超出理解的范畴,感觉更像一个BUG。

当然有时我们也想要这个功能把父组件的props完全传递到子组件,但是大部分时间我们都不需要。

通过dev-tool也确定了props数据的传递。使用vue-router传值的props成为了File.vue组件的attrs,而往下传递给Crud.vue组件时,则是实打实的通过props传递进去。

可能template只有一个组件的情况下,衍生出一种类似继承的关系吧(笑)。

网上搜索了一下也没有找到相关的资料,只能单纯记录一下,如果有人能解释这种传值的逻辑欢迎留言讨论。


关于vue-router的props传值的一次有趣记录的评论 (共 条)

分享到微博请遵守国家法律