
1 renmu Nov 4, 2022 via Android 我一直以为只有命名路由才能使用 params 参数。 我觉得大概率是哪个开发者也是这么认为,然后改代码的时候解决了这个"bug""。 其实文档写了用于 named route // named route with params to let the router build the url router.push({ name: 'user', params: { username: 'eduardo' } }) |
2 liuxu Nov 4, 2022 那就换 react 吧 |
3 Torpedo Nov 4, 2022 这直接干掉一个 api ,有点随意了 |
4 kwh Nov 4, 2022 flutter 携带面向对象,多端共用,性能优秀,大厂品质,来势汹汹 |
5 thinkershare Nov 4, 2022 这种 fix 性质的更新引入 Breaking Change 的确比较烦,一些方便的特性就是反模式的,为了规范就要移除这些反模式的支持。但开源程序就是这样,自己不爽就再造一个轮子,如此循环。 |
6 liuzhaowei55 Nov 4, 2022 via iPhone 这也说明在项目开发中锁版本是一件很重要的事情,愉快的去掉 package 中的 ^ ~ 吧,想要忽略小版本,定义版本时忽略掉不写那个小版本就好了 |
7 wu67 Nov 4, 2022 同上. 新的库还是锁版本比较好. 别说什么出来好久了, 现在绝大部分项目还在 vue2 生态, vue3 生态目前就是半踩坑状态, 如果你同时还用着 element-plus, 那就更能体会到我说什么了. 从 1.*到 2.*极其痛苦, 从 2.0 往后, 补丁版本也很痛苦....半年前到几个月前, 在为爱发电的我, 简直就是地铁老人手机脸... |
8 gouflv Nov 4, 2022 via iPhone OP 理解了一半就还以为是个大新闻,看完 issue 其实就移除了一个反模式而已 回过头说,既然都爱吹 vue 又快又好,那出些小问题也不碍事 |
9 panyang Nov 4, 2022 你这么使用这个 api 本来就是不被推荐这么使用的啊,正确的用法应该是用 query...应该仔细读读 vue router 文档 |
11 panyang Nov 4, 2022 你们喷这个 api ,都仔细看过文档吗,vue 文档并没有推荐这样子使用这个 api ,并且文档上也明确写了:"named route with params to let the router build the url"。楼主这种场景,应该直接使用 query ,而不是使用 params |
13 hcwhan Nov 4, 2022 $route.params 是用来匹配路由中的动态路由的 |
15 hcwhan Nov 4, 2022 现在是把 反模式的 (手动指定的 不存在与路由中的参数 过滤掉了) 现实项目中重来没见过这种用法 刚去建立了 一个 4.1.3 和 4.1.4 的项目试了下 才知道还可以这样 你的目的是路由跳转的时候传递数据 但是这个数据本身有不存在与路由路径中 肯定是不建议通过自定义不存在的 params key 的形式 我理解 之前这样使用算是 bug 现在只是修复了这个 文档中未定义的 bug params 本身还是正常的 |
16 zhzy0077 Nov 4, 2022 楼上一直在讨论这么写究竟对不对,属于是根本没看过 semver 的,这个改动放到一个 major 版本上我拍手叫好,摆在一个 patch 的版本里就是不符合 semver |
17 hcwhan Nov 4, 2022 至于想在路由跳转的时候传递数据 又不想通过路由 解决方案官方列了 4 个 |
18 hcwhan Nov 4, 2022 @zhzy0077 这个本身使用方式就是未定义的 我理解原来能这样用就算是 bug 现在只是修复了 $route 本身就代表了路由的只读描述 之前这样用等于手动修改只读变量 现在不让改了而已 |
19 wangxiaoaer Nov 4, 2022 有啥问题吗????????这是什么破坏性? 如果你打算更新类库( vue )版本,更新好、编译好后不测试的???? 版本不兼容这些事情不是很正常吗? 至于这个不兼容是不是必要、有没有替代方案才值得讨论吧。 |
20 mozhizhu Nov 4, 2022 不规范导致踩进坑了嘛。要嘛锁定版本,要嘛自己规范代码 |
21 shintendo Nov 4, 2022 OP 搞个大新闻,哪有移除 params ,只能说改了一个未定义行为,只不过这个未定义行为被广泛使用了 |
25 Mithril Nov 4, 2022 如果是安全性漏洞,在小版本里引入 breaking change 也是没办法的事。毕竟安全优先。 但你在一个 patch 版本里,为了解决文档不一致问题,引入 breaking change 。 只能说娱乐圈开心就好。 |
26 zhzy0077 Nov 4, 2022 @hcwhan semver 的场景里,任何之前能运行的代码在改动后不能运行都是破坏性更改。Java/C++ 那么多未定义的行为,没有一个小版本更新会改动这些结果的,甚至在 C 臭名昭著的 (i++)+(i++) 类型表达式,gcc 在 patch 更新的时候也是不会改变行为的。 |
28 hcwhan Nov 4, 2022 @zhzy0077 你这样理解肯定不对 就算是 semver 改动 是修复 bug 的 那假如我之前写的一个功能依赖于某个 bug 你现在把 bug 修复了 那我的功能就会出问题 我记得之前看到过有一个 lua 代码就是 依赖的 lua 解释器排序算法某种场景下的 bug 那个排序算法 bug 修复后 lua 功能出错了 |
31 shakukansp Nov 4, 2022 vue2 的时候我记得这么写传不过去的 |
32 nomagick Nov 4, 2022 表面看是版本政策问题,本质上是 API 设计问题 |
33 sechi Nov 4, 2022 真就是标题党啊,只看你这个描述我还以为是 push 方法不能传 param 了 |
34 hronro Nov 4, 2022 为啥 Vue 的 issue 里面这么多人用中文啊 |
35 wangtian2020 Nov 4, 2022 破坏性更改 指我的 build 被破坏的变化 我的 build 不被破坏的不算 |
37 ccyu220 Nov 4, 2022 总想搞个大新闻,我还以为是移除了 params 只能使用 query 的方式。 没想到你们一直以来的用法是不声明路由参数就使用 params 传递?那可能就是人的问题了 这是用上框架就把 JS 基础给忘了 |
38 ccyu220 Nov 4, 2022 甚至我认为 params 就应该只在传递单个 id 或关键值时使用 ,其它的一概用 query 的方式,更语义化 |
39 marcong95 Nov 4, 2022 这个 issue 还挺唬人的,而且没有附 router 的定义。盯着 issue 看了一圈,以为是真的把 params 去掉了。谁知道原来是一堆人在强行往 params 里面塞东西,把 params 当 query 用,还不想 URL 里出现这些内容。 考虑到那个 issue 那么多人用中文,有没有一种可能是那些人没看(没看懂)作者发的 changelog Move the data to an actual param by defining it on the route's path or pass it as query params: this is relevant if you have small pieces of data that can fit in the URL and should be preserved when reloading the page |
40 yuningWang8 Nov 4, 2022 确实是个反模式。原来见有人这么用过。印象里文档老早就说过,params 只是用于构建 URL ,不知道为什么会有人用于传参。 |
41 tagtag Nov 4, 2022 又扯什么前端娱乐圈,讨论问题就不能好好讨论吗? OK 啦 ! CRUD Boy !!! |
43 oldshensheep Nov 4, 2022 初学 Vue 的时候我就**直接**用 params 给组件传参(就是在路由路径上没有这个参数)…… 然后发现怎么刷新页面数据就丢失了…… 然后就再也不**直接**用 params 给组件传参了 |