thai-hotel-h5
Thai-Hotel-H5
1.创建项目 vite+vue
npm init vite@latest thai-hotel-h5 -- --template vue
cd thai-hotel-h5
npm install
npm run dev
2.在src目录下创建相关文件夹和文件
- api router store views utils
3.安装移动端UI库
npm i vant
3.1 按需导入
npm i @vant/auto-import-resolver unplugin-vue-components unplugin-auto-import
如果是基于 Vite 的项目,在 vite.config.js 文件中配置插件:
import vue from '@vitejs/plugin-vue';
import AutoImport from 'unplugin-auto-import/vite';
import Components from 'unplugin-vue-components/vite';
import { VantResolver } from '@vant/auto-import-resolver';
export default {
plugins: [
vue(),
AutoImport({
resolvers: [VantResolver()],
}),
Components({
resolvers: [VantResolver()],
}),
],
};
4.引入Vue-Router
npm install vue-router@4
4.1 在router下面创建index.js/ts文件
index.js 文件内容
import { createRouter, createWebHistory } from 'vue-router'
import HomeView from '../views/HomeView.vue'
const router = createRouter({
history: createWebHistory(import.meta.env.BASE_URL),
routes: [
{
path: '/',
name: 'home',
component: HomeView
},
{
path: '/about',
name: 'about',
// route level code-splitting
// this generates a separate chunk (About.[hash].js) for this route
// which is lazy-loaded when the route is visited.
component: () => import('../views/AboutView.vue')
}
]
})
export default router
4.2 在main.js/ts中注册路由
main.js 中注册
import { createApp } from 'vue'
import './style.css'
import App from './App.vue'
import router from './router'
const app = createApp(App)
app.use(router)
app.mount('#app')
4.3 在app.vue中使用添加
app.vue 主要是添加<RouterView />
<script setup>
import { RouterLink, RouterView } from 'vue-router'
</script>
<template>
<RouterView />
</template>
<style scoped>
</style>
5.引入vue axios
npm install axios
5.1 封装axios
在utils下面创建request.js/ts文件.在api文件中创建对应接口方法
utils下面创建request.js/ts文件
import Axios from 'axios'
const axios = Axios.create({
baseURL: "http://localhost:5173/",
timeout: 30000
})
//请求拦截
axios.interceptors.request.use(function(config){
return config
}),function(error){
return Promise.reject(error)
}
//相应拦截
axios.interceptors.response.use(function(config){
return response
}),function(error){
return Promise.reject(error)
}
export default axios
6. vue pinia
6.1 安装pinia
npm install pinia
6.2 注册 在main.js/ts中
main.js/ts 文件
import { createApp } from 'vue'
import './style.css'
import { createPinia } from 'pinia' //这里
import App from './App.vue'
import router from './router'
// createApp(App).mount('#app')
const app = createApp(App)
const pinia = createPinia() //这里
app.use(pinia) //这里
app.use(router)
app.mount('#app')