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 项目会发生啥?的主要内容,如果未能解决你的问题,请参考以下文章