期望在自己创建的vue
项目中定义自己的路由,自己的组件,实现前后端分离的小demo
。让之前的学习能够更加贴近实战,对vue
的前端开发流程有个清晰的了解。
cd
到我们的工作路径下,使用vue ui
打开vue
项目管理器,点击创建,在此创建新项目
输入项目名称,点击下一步
选择预设环境,建议vue3
,点击创建项目
然后静静等待项目创建完成(视网络情况,大约 3-10
分钟)。
点击左侧导航栏的任务,选择 serve
,点击启动(vue
自动编译并启动)。
打开 localhost:8080
查看项目首页
在 vue ui
的项目主页,点击插件,点击安装 vue-router
安装完
vur-router
后,我们项目的App.vue
会自动被刷新为Home
和About
两个router-link
。当我们点击Home
和About
两个链接,vue-router
会帮我们将请求分别路由到不同的组件中去。
1、先在首页添加我们自己的 router-link
2、在 views
中添加 mydemo
组件
3、在 router
的 index.js
中添加路由
4、 访问主页,点击 mydemo
的 router-link
查看效果
1、安装 axios
cnpm i axios -S
2、配置 axios
在 main.js
中导入 axios
并修改默认 URL
。
import { createApp } from 'vue'
import App from './App.vue'
import router from './router'
// 导入axios
import axios from 'axios'
// 设置默认baseURL
axios.defaults.baseURL='http://localhost:2345'
// 创建vue3实例
const Vapp = createApp(App);
// 启用router插件
Vapp.use(router)
// 配置vue启用axios
Vapp.config.globalProperties.$axios = axios
// 挂载
Vapp.mount('#app')
3、在 mydemo
组件中使用 axios
<template>
<h1>这里是mydemo</h1>
{{ info }}
<h1>{{ infos }}</h1>
</template>
<script>
export default {
data() {
return {
infos: [{id:1,name:'phyger'}],
info: "hello vue..."
}
},
mounted() {
this.showinfo();
},
methods: {
showinfo(){
this.$axios.get('/test/info')
.then(response=>{
this.infos=response.data;
console.log(response);
console.log(this.infos);
})
,err=>{
console.log(err);
};
},
},
}
</script>
<style>
</style>
4、前端测试
我们尝试访问 mydemo
不出意外,axios
已经对后端发起了访问,但是是失败了,因为我们还没有启动后端服务。
我们访问前端的 http://localhost:8080/#/mydemo
地址
因为跨域问题导致前端访问后端失败,我们修改下跨域配置。
修改 FastApi
项目的 main.py
再次访问前端接口:http://localhost:8080/#/mydemo