首页 > 其他分享 >vue3复盘学习(一)

vue3复盘学习(一)

时间:2024-04-10 15:44:06浏览次数:20  
标签:count Vue 学习 state API vue3 组件 复盘

其实说是复盘,因为在平常的开发中因为公司一些项目和其他原因断断续续的使用了一段时间 vue3,因为着急赶项目,有些知识点没有系统性学习,所以决定从今天开始一点点再学习一遍٩(•̤̀ᵕ•̤́๑)ᵒᵏᵎᵎᵎᵎ哈哈!

刚开始从vue2 过渡到 vue3的同学们其实是有些不适应的,但是随着前端框架更多的拥抱浏览器新特性,vue2也是随着发展过程累计了很多的历史包袱。

首先从开发维护的角度看,Vue 2 是使用 Flow.js 来做类型校验。但现在 Flow.js 已经停止维护了,整个社区都在全面使用 TypeScript 来构建基础库,Vue 团队也不例外。然后从社区的二次开发难度来说,Vue 2 内部运行时,是直接执行浏览器 API 的。但这样 就会在 Vue 2 的跨端方案中带来问题,要么直接进入 Vue 源码中,和 Vue 一起维护,比如 Vue 2 中你就能见到 Weex 的文件夹。要么是要直接改为复制一份全部 Vue 的代码,把浏览器 API 换成客户端或者小程序的。比如 mpvue 就是这么做的,但是 Vue 后续的更新就很难享受到。最重要的是Vue 2 响应式并不是真正意义上的代理,而是基于Object.defineProperty() 实现的,它是对某个属性进行拦截,所以有很多缺陷,比如:删除数据就无法监听等。

  • Composition API 组合语法

Composition API 是 Vue 3 中我最喜欢的一个特性,我们也叫它组合 API。

<div id="app">
  <h1 @click="add">{{state.count}} * 2 = {{double}}</h1>
</div>
<script src="https://unpkg.com/vue@next"></script>
<script>
  const {reactive,computed} = Vue
  let App = {
    setup(){
      const state = reactive({
        count:1
      })
    function add(){
      state.count++
    }
    const double = computed(()=>state.count*2)
    return {state,add,double}
    }
  }
  Vue.createApp(App).mount('#app')
</script>

使用 Composition API 后,代码看起来很烦琐,没有 Vue 2 中 Options API 的写法简单

好懂,但 Options API 的写法也有几个很严重的问题:

1、由于所有数据都挂载在 this 之上,因而 Options API 的写法对 TypeScript 的类型推导

很不友好,并且这样也不好做 Tree-shaking 清理代码。

2、新增功能基本都得修改 data、method 等配置,并且代码上 300 行之后,会经常上下

反复横跳,开发很痛苦。

3、代码不好复用,Vue 2 的组件很难抽离通用逻辑,只能使用 mixin,还会带来命名冲突

的问题

  • 新的组件

Vue 3 还内置了 Fragment、Teleport 和 Suspense 三个新组件。

Fragment: Vue 3 组件不再要求有一个唯一的根节点,清除了很多无用的占位 div。

Teleport: 允许组件渲染在别的元素内,主要开发弹窗组件的时候特别有用。

Suspense: 异步组件,更方便开发有异步请求的组件。

  • 新一代工程化工具 Vite

Vite 不在 Vue 3 的代码包内,和 Vue 也不是强绑定,Vite 的竞品是 Webpack,而且按

照现在的趋势看,使用率超过 Webpack 也是早晚的事。

剩下的明天接着干吧 来活了先干活

 

 

 

标签:count,Vue,学习,state,API,vue3,组件,复盘
From: https://www.cnblogs.com/ztl0918/p/18126187

相关文章

  • Vue — Vue面试题:Vue3.0 特性
    CompositionAPI(组合式API):CompositionAPI允许开发者将逻辑按照功能或者相关性进行组织,而不是按照选项的不同部分(如data、methods、computed等)来分散代码。这种方式更灵活、更易于复用和维护,特别适用于编写大型复杂的组件。基于Proxy的响应式系统:Vue3中的响应式系统基于ES6......
  • Java的学习路线(非常完整)
    Java是一种跨平台的、面向对象的高级编程语言,主要用来进行网站后台开发,也就是服务器端开发,或者动态网站开发。Java是全球最受欢迎的编程语言之一,在世界编程语言排行榜TIOBE中,Java一直霸占着前三名,有好多年甚至都是第一名。JetBrains每年都会发布一个开发者生态系统调查报......
  • 中午跟杨总校长一起吃饭学习
    不要改变世界,要改变自己。记住今天说的,说到和做到是两个概念:为什么来行动,因为我现在刚进入丛林,我需要学习捕食方法,这里很危险,但学习的最快。我不在乎钱,在乎学习捕食方法。中高层是是文化程度高,辞藻华丽,。但老板大多都是大白话只随和大白话。讲价值和时间。 销售第一次见面要真......
  • 近期学习计划
    更新时间:2024-W15基础入门ZOMI酱的视频全套--用于初步的认识陈天奇的MLC机器学习编译--基础1进阶阅读《开源机器学习系统》《TVM编译器原理与实践》《AI编译器开发》贪心科技的ai芯片开发课《程序性能优化理论与方法》MLIR与LLVM...相关技术原子......
  • JAVA语言学习-Day7
    概述计算机网络:将地理位置不同的具有独立功能的多台计算机及其外部设备,通过线路连接起来,在网络操作系统,网络管理软件及网络通信协议的管理和协调下,实现资源共享和信息传递的计算机系统。网络编程的目的:传播交流信息,数据交换。通信想达到这个效果需要什么:通过ip地址及端口,定......
  • NLP学习路线指南总结
    当然可以,以下是一份较为详细的NLP学习路线指南,帮助你逐步掌握自然语言处理的核心技术和应用。一、基础知识与技能语言学基础:语言学基本概念:语音、语法、语义等。语言的层次与分类:语音学、音系学、句法学、语义学等。编程基础:掌握Python编程语言基础,包括变量、数据类......
  • 开源相机管理库Aravis例程学习(一)——单帧采集single-acquisition
    目录简介源码函数说明arv_camera_newarv_camera_acquisitionarv_camera_get_model_namearv_buffer_get_image_widtharv_buffer_get_image_height简介本文针对官方例程中的第一个例程:single-acquisition做简单的讲解,并简单分析其中调用的arv_camera_new,arv_camera_acquisition,ar......
  • css学习笔记之展开列表图标动画
    “蓝色界面”风格的填充的星图标欢迎下载填充的星矢量图标,“蓝色界面”风格。格式有png、svg、pdf、html代码。可对填充的星图标、符号进行修改、调整大小、修改颜色。https://igoutu.cn/icon/y0OTcruih2CY/%E5%A1%AB%E5%85%85%E7%9A%84%E6%98%9F今天在这个网站看到了上面类似......
  • 零基础入门学习Python第一阶
    01初识PythonPython简介Python的历史1.1989年圣诞节:GuidovonRossum开始写Python语言的编译器。2.1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调用C语言的库函数。在最早的版本中,Python已经提供了对“类”,“函数”,“异常处理”等构造块的......
  • 【机器学习】Logistic与Softmax回归详解
    在深入探讨机器学习的核心概念之前,我们首先需要理解机器学习在当今世界的作用。机器学习,作为人工智能的一个重要分支,已经渗透到我们生活的方方面面,从智能推荐系统到自动驾驶汽车,再到医学影像的分析。它能够从大量数据中学习模式和规律,然后使用这些学习到的信息来做出预测或决......