Vue3.0经验
先安装cli脚手架,命令如下:
1 | npm install -g @vue/cli |
初始化Vue项目,命令如下:
1 | vue create "项目名称" //创建项目 |
剩下的直接回车
升级项目,命令如下:
1 | cd "项目" |
该命令会完成:
·安装Vue3.0依赖
·更新Vue3.0 webpack loader配置,使其能够支持 .vue文件构建(重要)
·创建Vue3.0 的模板代码
·自动升级Vue Router
·自动生成Vue Router和Vuex模板代码
启动项目
基于ReadMe.md,其中的命令启动项目。
项目过程问题
使用composition API的provide和inject实现组件间传值
注意!!provide和inject只能在setup()函数中使用
1 | import {provide} from 'vue' //引入provide |
Vue3.0新特性
Vue3.0的设计目标是更快,更小,并更好的支持TypeScript
新特性包括
1 | composition |
1、Composition API
Vue3.0中模板带有setup()函数,用于处理数据,需要使用ref函数声明数据(也可以直接声明函数),return返回在模板中使用。
1 | import {ref} from 'vue' |
composition主要有两大好处:
1.清晰的代码结构2.消除重复逻辑
小结:composition API主要针对闭包的应用,通过其他函数中声明值,并使用watch函数监视,在需要的组件引入,达到代码复用。
2、Multiple root elements
Vue2.0中template的根元素只能取一个,要用div包含。
Vue3.0中取消了这一限制:
在template中使用任意数量的标签
3、Suspense
Suspense使用与前后端数据交互时,提供默认内容加载,当数据返回时配合使用v-if来控制数据显示。
Suspense简化了这个过程:它提供了default和fallback状态:
1 | <Suspense> |
4、Multiple v-models
一个表单可以绑定多个V-model
1 | <Form> |
5、Reactivity
3.0响应式系统全部用Typescript重构,利用代理(Proxy)和反射(Reflect)来替换Vue2.0的Object.defineProperty
耦合度降低,分类清晰。
支出通过修改数组下标的时候进行响应。