vue3 学习和项目改造,关于 vuex 的问题请教

2020-02-09 18:15:22 +08:00
 zhangchaojie

想要早点学习 Vue3,所以用 composition api 改一下项目,但是刚开始就遇到了麻烦:setup 函数 this 指向 null,所以 vuex 中 this.$store、mapState、mapMutations 都不能用了,有点尴尬,大家怎做的,要用 inject 和 provide 重做状态管理吗?😳

5880 次点击
所在节点    Vue.js
45 条回复
zhangchaojie
2020-02-09 21:06:19 +08:00
@Jat001 但事实,比如你面试 Java 岗位,你是不会问 PHP 相关特性的,也不会因为他 PHP 写的好,就录用他做 Java,你现在面试前端,不再会问 jQuery,不会因为他 jQuery 写的非常 6,但不会 react、Vue 能现代框架而录用他
ybh8341
2020-02-09 21:08:14 +08:00
vue 都出 3 了?
Jat001
2020-02-09 21:34:52 +08:00
@zhangchaojie #21 没让你不要学现代框架啊,我的观点是不要盲目追新,你现在学到的东西可能没几个月就过时了
zhangchaojie
2020-02-09 22:08:30 +08:00
@ybh8341 体验版,不过也快出了
zhangchaojie
2020-02-09 22:10:11 +08:00
@Jat001 我的观点是,如果发现值得学,就赶紧学。总是落后与人,等技术成熟了再学,你永远也不是这个领域的专家
lxml
2020-02-09 22:34:42 +08:00
看 vue 的 github roadmap evan you 说 2020 Q1 release, 这次应该准了吧,虽然已经延期两次。
Jat001
2020-02-09 23:16:21 +08:00
@zhangchaojie #25 额,说句不好听的,大部分程序员都是在搬砖而已,混得好点的往管理或网红方向转,混得不好的中年危机,能成为专家的少之又少,而且学习一个框架的 API 并不能成为前端领域的专家吧?

再回到我最初的观点上来,大部分公司都不是前端技术驱动的,vue3 发布后你看有几家公司会把现有项目迁移到新版上来,新项目用上 vue3 也得等几个月稳定了才会上。假如你是一家中小公司的 leader,人手不够,需求都做不完,你会把框架迁移放进排期里?新版本刚出来大家都不熟,还一堆坑,你敢把它用在公司的核心项目上?

我是站在普通公司的角度去看待这个问题的,技术的快速迭代对追求稳定的企业用户来说不是好事情。如果你是一个 vue 插件的作者,为了保证插件跟上 vue 的版本迭代,当然需要关注新版本的发展。但如果你是像我一样不是搞前端的,只是偶尔用 vue 写点页面,你是没有动力去学一个还没发布的新版本的。

还有我最初的问题是前端界为什么这么激进,这个激进不是指从 jquery 切换到 vue,而是后来的这些现代框架的更新策略,反正之前 vue2 的时候,迁移遇到了一堆问题,最后干脆重写了,这还只是我们后端内部用的管理页面,据我所知,前端组的项目页面压根就没做迁移。
sodatea
2020-02-10 00:24:45 +08:00
@Jat001
1. Vue 大版本更新得已经算很慢了,Vue 2 正式版到现在已经三年半了(作为对比,Java 框架 Spring 大版本更新周期大约在 3-4 年),这怎么能说是激进?
2. 更新大版本不是为了更新而更新,而是技术演进的必然;
3. 发布了新的大版本,不代表旧的版本旧不能用了,如果旧的项目用的没问题,完全可以接着用;
duan602728596
2020-02-10 01:10:47 +08:00
京东用的是自研的 Nervjs……
Jat001
2020-02-10 01:26:17 +08:00
@sodatea #28
1. 我说的激进不是更新时间,而是向后兼容,少点 breaking change。就更新时间来说,3.x 确实正常,但 1.x 到 2.x 只用了一年
2. 我同意技术演进,但用户买不买账就另说了,最著名的例子恐怕是 python 2 -> 3 了吧,python 3 发布了差不多十年,18 年的时候,还有项目在用 python 2,python 2 发布二十年后才停止维护。要不是社区为了 python 2 和 3 的兼容,发布了大量 backport 包,恐怕现在还有项目不会迁移吧
3. 旧版本能用是能用,但不维护了啊,旧版本放在那越来越没人敢动,时间久了老版本的资料都找不到了。所以又回到前面说的了,多做点向后兼容,少点 breaking change,迁移省事用户也就愿意做了
Jat001
2020-02-10 01:28:42 +08:00
@duan602728596 #29 pc 端是 jquery-1.6.4 啊
mxT52CRuqR6o5
2020-02-10 02:02:51 +08:00
mxT52CRuqR6o5
2020-02-10 02:08:00 +08:00
@Jat001 不维护是不加新 feature 了,bug 一般还是会修的,jquery1 这么老的库文档很容易就找到啊,在前端领域,我很同意老项目用老版本这个观点
mxT52CRuqR6o5
2020-02-10 02:16:09 +08:00
@Jat001 就比如 vue3 是依赖 js 的 Proxy 的,即使是以后 vue3 稳定了,新项目是否要上 vue3 都得好好掂量掂量的,不是说新了就要用,web 前端和后端不一样的,js 代码跑在什么浏览器下通常来说都是不可控的,后端为了项目的可持续维护性会一直跟版本,但前端很多时候不会这么做
Jat001
2020-02-10 02:23:04 +08:00
@mxT52CRuqR6o5 #33 vue 没有多分支版本啊,新的版本一正式发布,旧版本就不管了啊。文档是容易找,其他资料呢,不是所有问题文档里都写了
@mxT52CRuqR6o5 #34 不关心那么多,反正不是前端,等 vue 3 稳定了再说
duan602728596
2020-02-10 10:05:34 +08:00
不是了...你去凹凸实验室看看就知道了,早就重构了
zhwithsweet
2020-02-10 11:16:27 +08:00
@Jat001 #19 没有竞争力就创造竞争力,不然混吃等死?
zhangchaojie
2020-02-10 16:17:26 +08:00
@noe132 大佬,不太行,有报错,ref,reactive 等函数不能在 steup 函数外调用,export const xxxService = createxxxService(),这里调用函数后就不行了,但是不调用直接导出函数又会无法各个组件响应式
Jat001
2020-02-10 16:56:03 +08:00
@duan602728596 反正打开京东首页的源码,里面就有 jquery
Jat001
2020-02-10 17:03:05 +08:00
@zhwithsweet 没在小公司干过吧?还是那句话,需求都做不完呢,谁有那闲工夫重构代码?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/643254

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX