手把手自定义组件库 -- CSS和SASS
初始化CSS
安装
bash
npm i normalize.css -S
引入
js
import { createApp } from "vue";
import { createPinia } from "pinia";
import "normalize.css";
import App from "./App.vue";
import router from "./router";
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.mount("#app");
SASS
安装
bash
npm i sass -D
引入element-plus
安装
bash
npm install element-plus --save
引入elementui-plus
js
import { createApp } from "vue";
import { createPinia } from "pinia";
import "normalize.css";
import ElementPlus from "element-plus";
import "element-plus/dist/index.css";
import App from "./App.vue";
import router from "./router";
const app = createApp(App);
app.use(createPinia());
app.use(router);
app.use(ElementPlus);
app.mount("#app");
安装 elementuiplus 图标
bash
npm install @element-plus/icons-vue
全局引入图标
- utils/tools.ts
js
// 将字符串中的大写字母替换为小写字母,并在其前面加上一个连字符
export const toLine = (str: string) => {
return str.replace(/([A-Z])/g, '-$1').toLowerCase()
}
- main.ts
js
// 引入icons
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
import { toLine } from '@/utils/tools'
// 全局注册组件
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(`el-icon${toLine(key)}`, component)
}
组件使用
html
<template>
<div>
{{ message }}
<el-button type="primary">Primary</el-button>
</div>
</template>
<script setup>
import { ref } from "vue";
const message = ref("登录页");
</script>
<style lang="scss" scoped></style>