vue实战开发
vue开发推荐使用
组件库
工具库 ⭐️
- axios:基于Promise的网络请求库,在浏览器端使用XMLHttpRequests与服务器的交互,处理网络请求与响应。
- scss:css预处理器
- 其他:loadsh、moment、day.js、bignumber.js/number-precision
项目规范
github提交文本规范
1 2
| feat: complete homepage v0.1
|
vue踩坑
element-plus icon的坑
描述:官网没有提供使用的方法,图标不显示,解决方案如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| import * as ElIconModules from "@element-plus/icons-vue";
const app = createApp(App);
const transElIconName = (iconName) => { return "i" + iconName.replace(/[A-Z]/g, (match) => "-" + match.toLowerCase()); };
for (let iconName in ElIconModules) { app.component(transElIconName(iconName), ElIconModules[iconName]); }
|
描述:官方提供的默认主题如何修改的问题,比如:input框focus时的样式修改,目前的解决方法只是针对一个官方提供组件的内部样式的修改。后续会去研究一下如何全局覆盖新的主题,解决方案如下
1 2 3 4 5 6 7 8 9 10 11 12
|
.el-input__wrapper {
}
.el-input__wrapper.is-focus{ }
|
动态引入图片后路径报错的问题
描述如下
1
| <img :src="`../assets/blogPhotos/${name}.jpg`" alt="" />
|
解决方案
- 在src下创建工具类,将以下函数放入
- 然后引入后在模板中或者ref中使用
1 2 3 4 5 6 7 8 9
|
const getAssetsFile = (url: string) => { return new URL(`../assets/images/${url}`, import.meta.url).href } export { getAssetsFile }
import { getAssetsFile } from "../../utils/pub-use.js"; <img :src="getAssetsFile('/home/home_icon.png')" />
|
自动导入的插件(import)
描述:引入自动import依赖包 or 引入自动import组件的依赖包(组件名必须和文件名一致才能自动import,否则失败)
1 2 3
| npm install -D unplugin-vue-components unplugin-auto-import import AutoImport from "unplugin-auto-import/vite"; import Components from "unplugin-vue-components/vite";
|
按需自动导入element组件库的插件
vite-config.js配置如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
|
import AutoImport from "unplugin-auto-import/vite";
import Components from "unplugin-vue-components/vite";
import { ElementPlusResolver } from "unplugin-vue-components/resolvers";
export default defineConfig({ plugins: [ AutoImport({ resolvers: [ElementPlusResolver()], }), Components({ resolvers: [ElementPlusResolver()], }), ], });
|