2021年终总结 | vue3初体验

408 阅读3分钟

「时光不负,创作不停,本文正在参加2021年终总结征文大赛
      2021即将过去,作为一个转行前端两年经验的小菜鸡真的很慌 回顾这一年,似乎每天都在努力的去挣脱【前段菜鸟】这个标签,刷视频、看文章、看书,然而到头来,依然是个菜鸟,没有写过技术博客,也没有一项拿的出手的技术(狗头)...
      唯一值得欣慰的可能就是用vue3给公司写了两个小项目,第一次用v3心里战战兢兢,一边学一边写,生怕不能按时完成任务,毕竟公司对项目的进度是有要求的。

废话有点多了,直接来干货

v3给我带来的最明显的功能感受:

  1. ref与reactive两个api彻底告别vue2的响应式丢失问题
  2. 没有了组建实例this的约束,方法抽离更容易

这里细说下这两点
一、 ref与reactive的区别:reactive只能用于引用类型,并且一担定义好了,只能修改其内部属性,ref没有任何限制

const bar = ref({num:1})
const baz = reactive({num:1})
const obj = {num:2}
//这里如果将bar和baz的值改为obj
bar.value = obj  //赋值正常
baz = obj   //赋值失败,baz将不在是响应式对象,而是普通对象obj的一个引用
baz = reactive(obj)   //赋值失败,baz变成另一个响应式对象,但是跟templae内的数据不再绑定,相当于失去响应式
OBJECT.assign(baz,obj) //赋值正常, 使用这种方式将obj合并进baz是可以的

简而言之,ref功能更强大,但写法稍繁琐,修改值需要加.value,图省事的话,ref一把梭,嘿嘿~
二、关于this
刚开始失去this,相信大家都会感到不适应,每个组建都要写一大堆import,还好有了script setup,可以省去一部分,defineEmits、defineProps等,还有免去组建注册,即便如此,但是还是有点繁琐,这里写点自己的心得

  • 原型挂载使用不方便(比如this.$axios),官方其实也不推荐再往原型上挂载东西,但还是给出了访问实例的方法,感觉挺麻烦,干脆就彻底不用了,像这样用
    import { get, save,baseUrl } from '@/utils/request'
    或者直接暴力使用window.axios挂载
  • 没有了this,公共方法抽离出去使用很方便,import进来直接给template就能用,不用注册到methods上,也不必担心this指向问题,v3的宗旨就是所有要用的都要先import,这样利于维护,不会贸然出现一个东西不知到在哪定义的 总之, v3用了才知道多香,还没用的同学抓紧时间搞起来
    2021过的挺废的,没有了之前自学时的那股冲劲,红宝书翻了几页就停下了,TS一直没实践起来,希望2022再拼一拼,争取跨入中级前端行列,flag还是要立一下
  1. 还完2021欠的账(红宝书+TS)
  2. 工作中碰到的钉子及时发文章记录,真的很容易忘,深有体会
  3. 做点有意思的开源项目, 分享技术
  4. 读5本书
  5. 脱单... 最后,听说发文章一定要配图,就配了一张今年看的一本不错的书封面,顺便推荐给小伙伴们<非暴力沟通>