vuejs v3.0 中基于类组件的 vuejs 项目会发生啥?

Posted

技术标签:

【中文标题】vuejs v3.0 中基于类组件的 vuejs 项目会发生啥?【英文标题】:what will happen for vuejs projects based on class components in vuejs v3.0?vuejs v3.0 中基于类组件的 vuejs 项目会发生什么? 【发布时间】:2020-04-25 22:04:56 【问题描述】:

我想将我的 vuejs 项目升级为基于类组件的 typescript,但我阅读了 vue 问题的https://github.com/vuejs/rfcs/pull/17#issuecomment-494242121:

更新:Class API 提案正在被放弃。

那么现有的基于类组件的项目会发生什么? 更重要的是,基于这篇文章: https://alligator.io/vuejs/using-typescript-with-vue/ 上面写着

因为我们没有使用类风格的语法,所以你使用 as 关键字 将数据声明为数据类型。

这种在 vue3.0 中使用 typescript 的方式安全吗?

【问题讨论】:

【参考方案1】:

目前没有官方的基于类的 API。 RFC 是关于添加一个,但由于那里讨论的原因而被删除。

现有项目使用vue-class-component 库,该库建立在官方基于对象的组件 API(官方称为 Options API)之上。这应该在 3.0 中继续工作(因为 Options API 保持不变),但会遇到相同的缺点mentioned in the RFC。 Here 是维护者声明支持 Vue 3 的评论。

第二篇链接文章是使用没有vue-class-component 的 TypeScript - 没有类,只是常规的基于对象的组件 API + TypeScript 类型注释。所以是的,这将在 3.0 中工作

但是,如果您现在开始在 Vue 中使用 TypeScript,我强烈建议您查看将在 3.0 中添加的 new composition API。它是一个官方 API(不是库),与任何现有解决方案相比,它有很多好处。感谢composition-api,您现在甚至可以使用它

【讨论】:

那么使用 vue-class-component 库(它基于基于对象的组件 api)使用类组件是否仍然安全?【参考方案2】:

我创建了一个基于组合 API 的 vue 3 类组件。 Npm Package。如果发现任何错误,或者从组合 API 问题中被遗忘的功能,请使用它。

【讨论】:

以上是关于vuejs v3.0 中基于类组件的 vuejs 项目会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章

Mand Mobile - 基于金融场景的Vuejs组件库

如何切换 VueJs 组件的可见性?

带有 Vuejs 类组件的双向计算属性

在模板内的 vuejs 组件中导入和使用类

基于VueJS的滑块组件 支持级联滑动和渐变色

滴滴饿了么的都选用的前端框架Vuejs饿了么基于Vuejs还封装了一整套前端组件,并开源了!