# zfshop **Repository Path**: baohan1231/zfshop ## Basic Information - **Project Name**: zfshop - **Description**: Vue 3 + TypeScript + Vite + Vant4 构建的移动端商城项目 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: pc_dev_241008 - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2024-12-02 - **Last Updated**: 2024-12-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Vue 3 + TypeScript + Vite This template should help get you started developing with Vue 3 and TypeScript in Vite. The template uses Vue 3 ` ``` ## 重置全局样式 在 `src` 目录下创建 `styles` 文件夹,创建三个文件: 重置样式: `reset.scss` , 样式变量: `variable.scss`, 全局样式: `index.scss`, 例如在全局样式中我们可以修改 elementPlus 设置的滚动条样式. 并在 `main.ts` 文件中引入全局样式. ```javascript // vite.config.ts export default defineConfig({ // ... css: { // ... preprocessorOptions: { scss: { javascriptEnabled: true, additionalData: '@import "./src/styles/variable.scss";', }, }, }, }) // main.ts import '@/styles/index.scss' ``` ```scss // styles/variable.scss // 定义的样式全局变量 $base_menu_bgcolor: #001529; // styles/index.scss // 自定义滚动条外观,可以直接引用样式全局变量 ::-webkit-scrollbar { width: 10px; } ::-webkit-scrollbar-track { background-color: $base_menu_bgcolor; } ::-webkit-scrollbar-thumb { width: 10px; background-color: aqua; border-radius: 10px; } ``` ## 自动引入全局组件 在 `src/components`目录下新建 `index.ts`文件 ```javascript // 自动注册全局组件 const modules = import.meta.glob('../components/**/index.vue', { eager: false, import: 'default' }) const allGlobalComponet: any = {} Object.entries(modules).map(([filename, component]: [any, any]) => { filename = filename.replace('./', '').replace('/index.vue', '').split('/') filename = filename[filename.length - 1] allGlobalComponet[filename] = component }) export default { install(app: any) { Object.keys(allGlobalComponet).forEach(key => { app.component(key, allGlobalComponet[key]) }) } } ``` 入口文件中用 **app.use** 时,会自动调用模块的 **install** 方法并注入根组件 **app** ```javascript ... import globalComponent from '@/components' app.use(globalComponent) ```