完成Vue3.2+typescript项目有感

简介: 在vue3.2中,正式支持了<script setup>语法糖,减少了大量的重复模板代码,引入的组件无需再注册后才能使用,只要引入后即可在sfc中使用,直接用代码来展示可能效果更好:

前言
很早之前就看见尤大在说

1.png

前段时间恰好在网上看见了相关的项目,好奇心又被调动了,想着也没什么事,也便在这个暑假跟着视频去尝试做了一下,在使用

话不多说了,直接来说开发项目时感受到的优点和自己在开发过程中遇见的一些问题

优点:
更简洁的代码
在vue3.2中,正式支持了

复制代码

2.png

不仅仅是组件的引入无需单独注册,包括函数与变量的声明也大大减少了代码量。使用

复制代码
3.png

项目接口更加详细
在该项目中,我所使用的是mock.js来写接口,通过import '@/mock/index'让接口跑起来。在实际项目中,我需要调用接口时,需要先用typescript进行接口定义,虽然这会在一定程度上增加代码量,但对于中大型项目来说会更便于维护,在调用接口的时候也会有代码提示,这也是ts的优势了。

代码示例如下:

复制代码

当我们将鼠标放上去时,便会出现提示:
4.png

,这极大的方便了我们对接口的调用和后期的维护,对ts中的详细教程可以看这篇文章,可以更深入的了解interface

5.png

项目开发过程遇见的问题
路由无法跳转
这里犯的错误其实还是因为自己对

翻看vue-router官方文档,其实可以很清楚的看见官方对此的解释:

6.png

由于setup执行时机在beforeCreate之前,故在setup中是不能使用data和methods(因为还没初始化好)。由于不能再setup函数中使用data和methods,所以Vue为了避免我们错误的使用,它直接将setup函数中的this修改成undefined.

但由于本项目中的搜索图标是标签,所以也就没必要使用useRouter函数了,直接在标签上进行添加即可:

7.png

注意,由于我们是默认路由hash,故此处不可以直接添加为/search,否则不会进行页面的跳转,应在前面再添加一个#

无法修改组件样式
无法修改组件样式的情况在之前的项目中也遇见过,element plus组件默认的样式无法修改,在vant3中也遇见了同样的问题,我们自己写的样式被覆盖,这里就直接进行样式穿透即可,使用方法: ::deep 想要修改类名 { 修改样式 }:

CSS module
在我对登录界面进行样式修改的时候出现了问题,我无法将整体的页面背景修改成灰色,我通过对body的样式修改,发现不起作用,如果直接删除vue单文件组件的

这时候便有两个解决方法:

单独再开一个style
通过再开一个

使用全局作用域
CSS Modules 允许使用:global(.className)的语法,声明一个全局规则

关于CSS Moudles的详细情况可以参考阮一峰老师的这篇文章:CSS Modules 用法教程

defineExpose
在使用vant3组件的时候,由于他的文档实例并未像element plus一样直接用的

结果我登录界面的输入框全都不见了.... 一想便知道,估计又是setup语法糖没把握好的锅,连忙去翻看vue官方文档,不出意外的找到了问题的原因:事实上,获取到组件的公开实例的,需要用到definExpose

使用

通过 defineExpose 编译器宏来显式指定在

注意,definExpose是需要手动导入的

总结

相关文章
|
27天前
|
设计模式 监控 JavaScript
TypeScript 在大型项目内网管理监控软件中的结构优化
本文探讨了 TypeScript 在大型项目内网管理监控软件中的结构优化,包括模块划分与组织、接口与抽象类的使用以及依赖注入与控制反转的设计模式,通过具体代码示例展示了这些技术的应用,提高了代码的可读性、可维护性和灵活性。
34 3
|
1月前
|
JavaScript 容器
乾坤qiankun框架搭建 主应用为vue3的项目。
乾坤qiankun框架搭建 主应用为vue3的项目。
151 2
|
23天前
|
数据采集 监控 JavaScript
在 Vue 项目中使用预渲染技术
【10月更文挑战第23天】在 Vue 项目中使用预渲染技术是提升 SEO 效果的有效途径之一。通过选择合适的预渲染工具,正确配置和运行预渲染操作,结合其他 SEO 策略,可以实现更好的搜索引擎优化效果。同时,需要不断地监控和优化预渲染效果,以适应不断变化的搜索引擎环境和用户需求。
|
9天前
|
JavaScript 前端开发
如何在 Vue 项目中配置 Tree Shaking?
通过以上针对 Webpack 或 Rollup 的配置方法,就可以在 Vue 项目中有效地启用 Tree Shaking,从而优化项目的打包体积,提高项目的性能和加载速度。在实际配置过程中,需要根据项目的具体情况和需求,对配置进行适当的调整和优化。
|
24天前
|
前端开发 JavaScript
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
手敲Webpack 5:React + TypeScript项目脚手架搭建实践
|
26天前
|
JavaScript
如何在 Vue 项目中选择合适的模块格式
【10月更文挑战第20天】选择合适的模块格式需要综合考虑多个因素,没有一种绝对正确的选择。需要根据项目的具体情况进行权衡和分析。在实际选择过程中,要保持灵活性,根据项目的发展和变化适时调整模块格式。
20 7
|
22天前
Vue3 项目的 setup 函数
【10月更文挑战第23天】setup` 函数是 Vue3 中非常重要的一个概念,掌握它的使用方法对于开发高效、灵活的 Vue3 组件至关重要。通过不断的实践和探索,你将能够更好地利用 `setup` 函数来构建优秀的 Vue3 项目。
|
26天前
|
JavaScript 前端开发 编译器
在 Vue 项目中使用 ES 模块格式的优点
【10月更文挑战第20天】在 Vue 项目中使用 ES 模块格式具有众多优点,这些优点共同作用,使得项目能够更高效、更可靠地开发和运行。当然,在实际应用中,还需要根据项目的具体情况和需求进行合理的选择和配置。
30 6
|
22天前
|
JavaScript 测试技术 UED
解决 Vue 项目中 Tree shaking 无法去除某些模块
【10月更文挑战第23天】解决 Vue 项目中 Tree shaking 无法去除某些模块的问题需要综合考虑多种因素,通过仔细分析、排查和优化,逐步提高 Tree shaking 的效果,为项目带来更好的性能和用户体验。同时,持续关注和学习相关技术的发展,不断探索新的解决方案,以适应不断变化的项目需求。
|
1月前
|
缓存 JavaScript 前端开发
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
《基础篇第4章:vue2基础》:使用vue脚手架创建项目
66 3