vue3 中基本兼容vue2 中的代码,大部分公有 API 的行为和 Vue 2 一致,仅有一小部分例外。使用在 Vue 3 中发生改变或被废弃的特性时会抛出运行时警告。一个特性的兼容性也可以基于单个组件进行开启或禁用。
- 基于 Vue 2 内部 API 或文档中未记载行为的依赖。最常见的情况就是使用 VNodes 上的私有 property。如果你的项目依赖诸如 Vuetify、Quasar 或 Element UI 等组件库,那么最好等待一下它们的 Vue 3 兼容版本。
- 对 IE11 的支持:Vue 3 已经官方放弃对 IE11 的支持。如果仍然需要支持 IE11 或更低版本,那你仍需继续使用 Vue 2。
- 服务端渲染:该迁移构建版本可以被用于服务端渲染,但是迁移一个自定义的服务端渲染设置有更多工作要做。大致的思路是将 vue-server-renderer 替换为 @vue/server-renderer。Vue 3 不再提供一个包渲染器,且我们推荐使用 Vite 以支持 Vue 3 服务端渲染。如果你正在使用 ,那最好等待一下 Nuxt 3。
快速开始
如果你想要在一个新项目里快速尝试 Vue 3:
-
通过 CDN:
<script src="https://unpkg.com/vue@next"></script>
-
Codepen 上的浏览器内试验田
-
CodeSandbox 上的浏览器内沙盒
-
通过脚手架 Vite:
npm init vite hello-vue3 -- --template vue # 或 yarn create vite hello-vue3 --template vue
- 通过脚手架 vue-cli:
npm install -g @vue/cli # 或 yarn global add @vue/cli
vue create hello-vue3
# 选择 vue 3 preset
Vue3优点
优点:
按需引用
组合式api:更加接近原生js,更加直观,没有this,更有效的降低了代码的耦合性
Vue3的启动方式
var app = createApp(App);
app.use(router).use(store).mount('#app')
全局方法定义
app.config.globalProperties.$mysay = function(){}