一、项目安装
npm init vite@latest test

二、安装router
1. 安装
npm install vue-router@4 -s
2. 创建目录
![![[pasted image 20230407090936.png | 400]]](https://images.3wcode.com/3wcode/20240728/b_0_202407282054274678.jpg)
3. 在router下新增index.js
import { createrouter, createwebhistory } from "vue-router";
import home from "../views/home.vue";
const routes = [
{
path: "/",
name: "home",
component: home,
},
{
path: "/about",
name: "about",
component: () =>import( "../views/about.vue"),
},
];
const router = createrouter({
history: createwebhistory(),
routes,
});
export default router;
4.修改main.ts
import router from './router'
createapp(app).use(router).mount('#app')
三、新增views页面
1. 新增文件夹
![![[pasted image 20230407091417.png | 400]]](https://images.3wcode.com/3wcode/20240728/b_0_202407282054289379.jpg)
2. 新增home.vue和about.vue
// home.vue
<template>
这是home页
</template>
// about.vue
<template>
这是about页
</template>
四、修改app.vue
1. 修改app.vue
<template>
<router-view />
</template>
五、引入自动引入插件
1.unplugin-auto-import
npm i unplugin-auto-import -d
2. 在vite.config.js中引入
import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue';
import { resolve } from "path"
import autoimport from 'unplugin-auto-import/vite';
export default defineconfig({
plugins: [
vue(),
autoimport({
imports: ['vue', 'vue-router']
})
],
resolve: {
alias: {
'@': resolve(__dirname, './src'),
},
},
});
六、安装element
1.安装element-ui
npm install element-plus --save
2. 按需导入
npm install -d unplugin-vue-components unplugin-auto-import
3.在vite.config.js新增插件
import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue';
import { resolve } from "path"
import components from 'unplugin-vue-components/vite'
import { elementplusresolver } from 'unplugin-vue-components/resolvers'
import autoimport from 'unplugin-auto-import/vite';
export default defineconfig({
plugins: [
vue(),
autoimport({
resolvers: [elementplusresolver()],
imports: ['vue', 'vue-router']
}),
components({
resolvers: [elementplusresolver()],
}),
],
resolve: {
alias: {
'@': resolve(__dirname, './src'),
},
},
});
4.测试是否引入成功
<template>
这是home页
<el-button :icon="search" circle />
</template>
<script setup>
import { search } from '@element-plus/icons-vue'
</script>
![![[pasted image 20230407104400.png | 200]]](https://images.3wcode.com/3wcode/20240728/b_0_202407282054296023.jpg)
5.如果报错
[vite] internal server error: failed to resolve import "@element-plus/icons-vue" from "src/views/home.vue". does the file exist?
npm install @element-plus/icons-vue
七、引入reset.csss
1. 网上下载reset.css
html {
overflow-x:auto;
overflow-y:scroll;
}
body, dl, dt, dd, ul, ol, li, pre, form, fieldset, input, p, blockquote, th, td {
font-weight:400;
margin:0;
padding:0;
}
h1, h2, h3, h4, h4, h5 {
margin:0;
padding:0;
}
body {
background-color:#ffffff;
color:#666666;
font-family:helvetica,arial,sans-serif;
font-size:12px;
padding:0 10px;
text-align:left;
}
select {
font-size:12px;
}
table {
border-collapse:collapse;
}
fieldset, img {
border:0 none;
}
fieldset {
margin:0;
padding:0;
}
fieldset p {
margin:0;
padding:0 0 0 8px;
}
legend {
display:none;
}
address, caption, em, strong, th, i {
font-style:normal;
font-weight:400;
}
table caption {
margin-left:-1px;
}
hr {
border-bottom:1px solid #ffffff;
border-top:1px solid #e4e4e4;
border-width:1px 0;
clear:both;
height:2px;
margin:5px 0;
overflow:hidden;
}
ol, ul {
list-style-image:none;
list-style-position:outside;
list-style-type:none;
}
caption, th {
text-align:left;
}
q:before, q:after, blockquote:before, blockquote:after {
content:””;
}
2.在assets中新增css文件夹
3.将reset.css放入css文件夹
4.在app.vue中引入reset.css
<style>
@import '@/assets/css/reset.css';
</style>
八、安装插件 axios
1. 安装
npm install axios -s
2.设置api代理
import { defineconfig } from 'vite'
import vue from '@vitejs/plugin-vue';
import { resolve } from "path"
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: [
vue(),
autoimport({
resolvers: [elementplusresolver()],
imports: ['vue', 'vue-router']
}),
components({
resolvers: [elementplusresolver()],
}),
],
resolve: {
alias: {
'@': resolve(__dirname, './src'),
},
},
server:{
proxy:{
'/api':'http://***'
}
}
});
3.封装请求
import axios from 'axios';
const service = axios.create();
service.interceptors.request.use(config => {
return config;
}, error => {
promise.reject(error);
});
service.interceptors.response.use(response => {
return response.data;
},error => {
return promise.reject(error);
});
export default service;
4. 构建自己的api方法
import request from '@/utils/request'
export function getbanner(){
return request({
url:'/api/getbanner',
method:'get',
})
}
5. 使用banner.js
<script setup>
import { getbanner } from '@/utils/api/banner'
let bannerlist = ref([])
onbeforemount(()=>{
getbanner().then(res=>{
bannerlist.value = res.data
console.log(res)
})
})
</script>
发表评论