本节:开始创建项目,搭建基础的main.js配置和路由配置
整个项目上传到了gitee,这是链接:VUE3 博客全栈: VUE3 博客全栈
一、项目搭建
1.搭建一个vue3项目,搭建流程:((71条消息) Vue基础-02_V_zcm的博客-CSDN博客)
2. 然后在项目下,要安装 axios ,pinia,sass,vue-router,naive-ui,wangeditor 5 富文本编辑器? ,用 npm install 模块名字就可以安装了,,vue-router,naive-ui,wangeditor 5一些可能会更新版本的模块,要去对应网站看安装代码
3.安装完,在终端打开项目:命令行执行: npm run dev? ,页面可以成功打开项目就搭建好了。
二、在main.js文件 ,进行基础配置,将要用的一些全局模块在这里引入。比如:用的组件框架,pinia,aixios,自己创建的路由,自己创建的store文件;一些组件或者内容在这里注入,然后在别的页面引入inject方法,就可以全局调用了。
//?以上的代码顺序很重要,比如:要先创建才能执行,挂载要放在所有的use下面等。
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
// 首先要安装 axios ,pinia,sass,vue-router,naive-ui,wangeditor 5富文本编辑
import naive from 'naive-ui' //1.引入模块
import { createDiscreteApi } from 'naive-ui' //1.引入模块
import { AdminStore } from './stores/AdminStore' //1.引入
import { router } from './common/router'
import { createPinia } from 'pinia'
import axios from 'axios'
axios.defaults.baseURL = 'http://localhost:8080' //服务器全局地址
// 独立API
const { message, notification, dialog } = createDiscreteApi(["message", "dialog", "notification"])
const app = createApp(App)
app.provide('axiosTool', axios) //provide(使用的名字,真正注入的程序)方法注入
// 然后在别的页面,要用的时候,在vue里面引入inject就可以注入成功
app.provide('message', message)
app.provide('notification', notification)
app.provide('dialog', dialog)
app.provide("server_url", axios.defaults.baseURL)
app.use(naive)
app.use(createPinia())
//拦截器,这样就不用每次接口都传header了,
// 每次请求都会先拦截下来,加个headers信息再请求
const adminStore = AdminStore();
axios.interceptors.request.use((config) => {
config.headers.token = adminStore.token
return config
})
app.use(router)
app.mount('#app') //挂载要放在所有的use下面
// 以上的代码顺序很重要,因为要先创建再执行,
(app.vue这些文件的 margin和padding布局设置为0)
三、在common 下创建一个router.js作为路由器:
路由器的主要内容步骤:
1.引入路由模块? ,2.设置路由模式? ,?3.把路由暴露出去,才可以使用。?4.路由的设置
import { createRouter, createWebHashHistory } from 'vue-router' //1.引入路由模块
let routes = [ //4.路由的设置
{ path: '/test', component: () => import('../views/Test.vue') }, //路由
{ path: '/', component: () => import('../views/HomePage.vue') },
{ path: '/login', component: () => import('../views/LoginView.vue') },
{ path: '/detail', component: () => import('../views/Detail.vue') },
{
path: '/dashboard', component: () => import('../views/dashboard/Dashboard.vue'),
children: [//子路由
{ path: "/dashboard/category", component: () => import('../views/dashboard/Category.vue') },
{ path: "/dashboard/article", component: () => import('../views/dashboard/Article.vue') },
]
},
]
const router = createRouter({ // 2.设置路由模式
history: createWebHashHistory(),
routes,//当前页面的路由信息
})
export { router, routes } // 3.把路由暴露出去,才可以使用。
|