Vue3+Vite实现项目搭建步骤

 更新时间:2024年07月05日 17:09:35   作者:我是ed.  
这篇文章主要介绍了Vue3+Vite实现项目搭建步骤,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

Vite

创建 Vue3 项目有两种常见的方式,一种是想 vue2 版本一样使用脚手架工具创建,创建 vue3 项目的脚手架必须是4版本以上的,另一种方法就是使用 vite 创建,为什么使用 vite 呢?因为快!贼快!

vite 官网:https://cn.vitejs.dev/

安装 Vite

安装 vite 构建工具:

npm install -g create-vite-app

Vite 创建 vue3 项目

创建一个项目名称为 vue3-wjw 的项目:

create-vite-app vue3-demo

项目创建完成的目录结构就是这个样子的。

然后进入文件夹,安装依赖,启动就可以了。然后使用 Vite 创建的项目真的厉害,秒开,不用打包直接启动。

安装 vue-router

安装 vue-router 工具,首先命令安装最新版本:

npm install vue-router@4.0.3

安装完成,在 src 文件夹下创建 router 文件夹,router 文件夹下创建 index.js 文件。

然后在 src 文件夹下继续创建 views 文件夹,views 文件夹下创建 About.vue 和 Home.vue 文件,然后在里面随便写几个标签文字之类的编写一点静态页面内容。

后在 router 文件夹下的 index.js 文件中写入下面代码:

import { createRouter, createWebHistory } from 'vue-router'

// 开启历史模式
// vue2中使用 mode: history 实现
const routerHistory = createWebHistory();

const router = createRouter({
    history: routerHistory,
    routes: [
        {
            path: '/',
            redirect: '/home'
        },
        {
            path: '/home',
            component: () => import('../views/Home.vue')
        },
        {
            path: '/about',
            component: () => import('../views/About.vue')
        }
    ]
})

export default router

在 App.vue 中修改这一部分:

<template>
  <div class="nav-btn">
    <router-link to='/'> Home</router-link>
    <router-link to='/about'>About </router-link>
  </div>
  <router-view></router-view>
</template>

最后在全局 main.js 引入一下 router。

import { createApp } from 'vue'
import App from './App.vue'
import './index.css'
import router from './router'

const app = createApp(App)
app.use(router)
app.mount('#app')

然后这个就可以了!

安装 less 以及 less-loader

这个相对来说简单一点儿,就是一行命令完成。

npm install less less-loader --save

但是有一点是需要注意的,less 和 less-loader 需要写到 package.json 文件中的 devDependencies 里面,否则项目运行会报错。

vite.config.js 配置

因为这个项目是使用 vite 创建的,所以需要创建一个 vite.config.js 文件进行项目配置,这个和 vue2 版本的 vue.config.js 文件类似,直接使用下面的代码就可以了。

const path = require('path')

module.exports = {
  alias: {
    '/@/': path.resolve(__dirname, './src')
  },
  hostname: 'localhost', // 默认是 localhost
  port: '8000', // 默认是 3000 端口
  open: true, // 浏览器自动打开
  https: false, // 是否开启 https
  ssr: false, // 服务端渲染
  base: './', // 生产环境下的公共路径
  outDir: 'dist', // 打包构建输出路径,默认 dist ,如果路径存在,构建之前会被删除
  proxy: { // 本地开发环境通过代理实现跨域,生产环境使用 nginx 转发
    '/api': {
      target: 'http://127.0.0.1:7001', // 后端服务实际地址
      changeOrigin: true,
      rewrite: path => path.replace(/^\/api/, '')
    }
  }
}

更多配置可以前往官网查看。

Element Plus 组件库安装

vue2 的项目使用的组件库是 ElementUI,但是 vue3 项目使用的组件库是 Element Plus。

安装方法呢,也很简单。

npm install element-plus

安装完成,在 main.js 中引入。

import ElementPlus from 'element-plus'
import 'element-plus/dist/index.css'

const app = createApp(App)
app.use(ElementPlus)
app.mount('#app')

然后就可以在页面实验一下了!

<el-button type="primary" @click="show">Primary</el-button>

import { ElMessage } from 'element-plus'

setup() {
  function show() {
    ElMessage('王佳伟,你好棒啊!')
  }
  return { show }
}

安装 Vuex

安装 vuex 的话也是,只需要一句命令就可以了。

npm install vuex@4.0.0-rc.2

安装完成开始配置!

在 src 文件夹下,创建 store 文件夹,在 store 文件夹下创建 action.js、state.js、getters.js、mutations.js、index.js 五个文件。

然后嘞,在这五个文件中写点代码。

  • state.js 文件
// state.js 文件
let state = {}
export default state
  • getters.js 文件
// getters.js 文件
let getters = {}
export default getters
  • mutations.js 文件
// mutations.js 文件
let mutations = {}
export default mutations
  • actions.js 文件
// actions.js 文件
let actions = {}
export default actions
  • index.js 文件
// index.js 文件
import { createStore } from 'vuex'
import state from './state'
import getters from './getters'
import mutations from './mutations'
import actions from './actions'

export default createStore({
    state,
    getters,
    mutations,
    actions
})

然后呢,还是在 main.js 文件中引入一下。

import store from './store'
const app = createApp(App)
app.use(store)
app.mount('#app')

好了,按道理说这个地方已经完成了,然后可以测试一下。

在 state.js 文件里面添加一条数据:

let state = {
    username: '我是ed.';
}

然后找个页面,写一个按钮,点击按钮获取这个 username,使用 elementPlus 消息弹窗提示。

下面是主要代码:

<el-button type="primary" @click="show">Primary</el-button>

<script>
  import { ElMessage } from 'element-plus'
  import { useStore } from 'vuex'
  export default {
    setup() {
      const store = useStore()
      function show() {
        ElMessage(store.state.username)
      }
      return { show }
    }
  }
</script>

安装 Axios

安装 Axios 其实超级超级超级简单,啊哈哈哈哈哈~~

一条命令完事:

npm install axios

安装完成了之后,需要配置 Axios,首先在 src 文件夹下创建两个文件夹,分别是 api 和 utils 文件夹。

在 api 文件夹下创建 login.js 文件,在 utils 文件夹下创建 request.js 文件。

request.js 文件内容就下面代码,没怎么封装,所以说呢,里面具体封装成啥样完全看业务需求,我没做。

import axios from 'axios'

const service = axios.create({
  baseURL: '/',
  timeout: 9000, // 请求超时时间
})

export default service

login.js 文件下面写个接口。

import request from '/@/utils/request'

let login = {};
systemInfo.login = function (data) {
  return request({
    url: '/ed/login',
    data,
    method: 'post'
  })
}

export default login

好了,完成了,基本就这些了。

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 基于vue实现分页组件的示例代码

    基于vue实现分页组件的示例代码

    分页组件是一种用户界面元素,用于在长列表或数据集中分割内容,分页组件是每个开发人员必须掌握的一个组件,广泛应用在各个场所,用以用户方便阅读等,本文就给大家介绍一下如何基于vue写出的分页组件,需要的朋友可以参考下
    2023-08-08
  • Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)

    Vue中Table组件行内右键菜单实现方法(基于 vue + AntDesign)

    这篇文章主要介绍了Vue中Table组件行内右键菜单实现方法,该项目是基于 vue + AntDesign的,具体实例代码给大家介绍的非常详细 ,需要的朋友可以参考下
    2019-11-11
  • Vue组织架构树图组件vue-org-tree的使用解析

    Vue组织架构树图组件vue-org-tree的使用解析

    这篇文章主要介绍了Vue组织架构树图组件vue-org-tree的使用解析,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-08-08
  • 详解vue 组件之间使用eventbus传值

    详解vue 组件之间使用eventbus传值

    本篇文章主要介绍了vue 组件之间使用eventbus传值。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-10-10
  • vuex页面刷新数据丢失解决方法详解

    vuex页面刷新数据丢失解决方法详解

    这篇文章主要为大家介绍了vuex页面刷新数据丢失解决方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • 通过vue如何设置header

    通过vue如何设置header

    这篇文章主要介绍了通过vue如何设置header,每个项目都有头部但是内容不一样;这种情况我们可以考虑在app.vue中创建公共头部,那么怎么配置公共头部header,下面小编通过实例代码详细讲解,需要的朋友可以参考下
    2023-02-02
  • 解决antd 下拉框 input [defaultValue] 的值的问题

    解决antd 下拉框 input [defaultValue] 的值的问题

    这篇文章主要介绍了解决antd 下拉框 input [defaultValue] 的值的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • 基于Vue2实现数字纵向滚动效果

    基于Vue2实现数字纵向滚动效果

    这篇文章主要为大家详细介绍了如何基于Vue2实现数字纵向滚动效果,从而达到显示计时器滚动效果,感兴趣的小伙伴可以跟随小编一起学习一下
    2024-03-03
  • vue中上传视频或图片或图片和文字一起到后端的解决方法

    vue中上传视频或图片或图片和文字一起到后端的解决方法

    这篇文章主要介绍了vue中上传视频或图片或图片和文字一起到后端的解决方法,需要的朋友可以参考一下
    2019-12-12
  • Vue3自定义drag指令详解

    Vue3自定义drag指令详解

    这篇文章主要为大家详细介绍了Vue3自定义drag指令的相关知识,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的小伙伴可以跟随小编一起学习一下
    2023-12-12

最新评论