当前位置:   article > 正文

Vue3.0 是什么?

vue3.0

在学习完vue2.0后我开始了vue3.0的学习,相比vue2.0 ,vue3.0的改动还是非常大的。

一.vue3的优点

  • 最火框架,它是国内最火的前端框架之一,官方文档 中文文档

  • 性能提升,运行速度事vue2.x的1.5倍左右

  • 体积更小,按需编译体积比vue2.x要更小

  • 类型推断,更好的支持Ts(typescript)这个也是趋势

  • 高级给予,暴露了更底层的API和提供更先进的内置组件

  • ★组合API (composition api) ,能够更好的组织逻辑,封装逻辑,复用逻辑

二.vue3.0的现状

Vue3现状:

  • vue-next 2020年09月18日,正式发布vue3.0版本。但是由于刚发布周边生态不支持,大多数开发者处于观望。

  • 现在主流组件库都已经发布了支持vue3.0的版本,其他生态也在不断地完善中,这是趋势。

    • element-plus 基于 Vue 3.0 的桌面端组件库

    • vant vant3.0版本,有赞前端团队开源移动端组件库

    • ant-design-vue Ant Design Vue 2.0版本,社区根据蚂蚁 ant design 开发

三.什么是组合API写法:Compositon API

  • 组合API 写法

    • 代码风格:一个功能逻辑的代码组织在一起(包含数据,函数...)

  • 优点:功能逻辑复杂繁多情况下,各个功能逻辑代码组织再一起,便于阅读和维护

  • 缺点:需要有良好的代码组织能力和拆分逻辑能力

  • 补充:为了能让大家较好的过渡到vue3.0的版本来,vue3.0也支持vue2.x选项API写法

四.使用setup完成一个小实例

这里用到的是vue3.0搭配vite编写的,vite是一个更加轻量(热更新速度快,打包构建速度快)的vue项目脚手架工具。

  1. <template>
  2. <div class="container">
  3. <!-- 省略了count.value中的value -->
  4. <div>鼠标的位置:{{count}} </div>
  5. <div>X坐标轴{{ x }}</div>
  6. <div>y坐标轴:{{ y }}</div>
  7. <button @click="add">点击添加</button>
  8. <div>{{msg}}</div>
  9. <button @click="getMsg">获取</button>
  10. </div>
  11. </template>
  12. <script >
  13. //vue3 的写法都是按需导入 导入ref函数
  14. import { ref } from "vue";
  15. export default {
  16. setup() {
  17. //只要是template模板需要的数据,方法都定义在setUP中 并返回
  18. console.log("setup钩子函数");
  19. let x = 0;
  20. let y = 0;
  21. // let count = 0;
  22. //实现响应式数据
  23. let count = ref(0); //得到的是ref函数返回的一个对象
  24. let msg="vue3的写法";
  25. let getMsg= ()=>{
  26. console.log(this) //this为undefined 因为created都没有走到,没有创建实例对象,没有new Vue this还没有指向实例对象
  27. };
  28. let add=()=>{
  29. console.log("之前",count.value)//ref函数中的value为真正的值
  30. count.value++;
  31. console.log(count.value)//ref函数中的value为真正的值
  32. }
  33. return {
  34. x,
  35. y,
  36. count, // 属性简写
  37. msg,
  38. getMsg,
  39. add
  40. };
  41. },
  42. //vue3 中强烈不推荐data里面定义数据
  43. data() {
  44. return {
  45. msg: "vue2的写法", //如果和vue3重名了,以vue2data后执行会覆盖setup中定义的数据,这就是为什么vue3中尽量不要写vue2
  46. };
  47. },
  48. beforeCreate() {
  49. console.log("beforeCreate");
  50. },
  51. created() {
  52. console.log("created");
  53. },
  54. mounted(){
  55. console.log('mounted');
  56. },
  57. destroyed(){
  58. console.log("destroyed")
  59. }
  60. };
  61. </script>

五.生命周期

①回顾vue2.x生命周期钩子函数:

  • beforeCreate

  • created

  • beforeMount

  • mounted

  • beforeUpdate

  • updated

  • beforeDestroy

  • destroyed

②认识vue3.0生命周期钩子函数

  • setup 创建实例前 相当于created

  • onBeforeMount 挂载DOM前

  • onMounted 挂载DOM后

  • onBeforeUpdate 更新组件前

  • onUpdated 更新组件后

  • onBeforeUnmount 卸载销毁前

  • onUnmounted 卸载销毁后

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/365737
推荐阅读