04. Vue3零基础快速入门实战
vue3 官网:https://cn.vuejs.org/
学习几个基本的标签
- {{ msg }}
- v-if (v-else)
- v-for
- v-bind
- v-on
- v-model
搭建脚手架
安装 NodeJS20 版本
https://nodejs.org/zh-cn/download

配置淘宝镜像:
npm config set registry https://registry.npmmirror.com
开始搭建 Vue3 工程
npm create vue@latest

安装运行
cd vue
npm install
npm run dev

卸载 dev-tools
npm uninstall vite-plugin-vue-devtools

使用 Element-Plus
https://element-plus.org/zh-CN/component/overview
安装
npm install element-plus --save
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
const app = createApp(App)
app.use(router).use(ElementPlus, {
locale: zhCn,
})
app.mount('#app')
页面的标准模板
<template>
<div>
</div>
</template>
<script setup>
</script>
安装图标
npm install @element-plus/icons-vue
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
const app = createApp(App)
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
main.js
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'
import zhCn from 'element-plus/es/locale/lang/zh-cn'
import '@/assets/css/global.css'
import * as ElementPlusIconsVue from '@element-plus/icons-vue'
const app = createApp(App)
app.use(router).use(ElementPlus, {
locale: zhCn,
})
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
app.component(key, component)
}
app.mount('#app')
消除边框

Router
import { createRouter, createWebHistory } from 'vue-router'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/manager',
component: () => import('@/views/Manager.vue'),
children: [
{ path: 'home', component: () => import('@/views/Home.vue') },
{ path: 'admin', component: () => import('@/views/manager/Admin.vue') },
]
}
],
})
export default router
封装 axios
安装 axios
npm install axios
后端配置跨域
package com.example.common;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.cors.CorsConfiguration;
import org.springframework.web.cors.UrlBasedCorsConfigurationSource;
import org.springframework.web.filter.CorsFilter;
/**
* 跨域配置
*/
@Configuration
public class CorsConfig {
@Bean
public CorsFilter corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration corsConfiguration = new CorsConfiguration();
corsConfiguration.addAllowedOrigin("*"); // 1 设置访问源地址
corsConfiguration.addAllowedHeader("*"); // 2 设置访问源请求头
corsConfiguration.addAllowedMethod("*"); // 3 设置访问源请求方法
source.registerCorsConfiguration("/**", corsConfiguration); // 4 对接口配置跨域设置
return new CorsFilter(source);
}
}
封装的 request.js
import axios from "axios";
const request = axios.create({
baseURL: 'http://localhost:9090', // 配置后端的请求地址
timeout: 30000 // 后台接口超时时间
})
// response 拦截器
// 可以在接口响应后统一处理结果
request.interceptors.response.use(
response => {
return response.data;
},
error => {
return Promise.reject(error)
}
)
export default request