vue+element-ui项目搭建实战

本文详细介绍如何使用vueui创建Vue项目,配置Element-UI、VSCode,添加vue.config.js,安装axios,并创建HelloPage与BookList视图,实现与后端API的数据交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.使用vue ui创建vue工程

利用vue-cli提供的图形化工具快速搭建vue工程:
命令行运行:vue ui
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

工程结构说明

build:项目构建webpack(打包器)相关代码
config:配置目录,包括端口号等
node_modules:npm加载的项目依赖模块
src:主要代码开发目录:
|----assets:放置一些图片
|----components:放置组建文件
|----App.vue:项目入口文件
|----main.js:项目的js核心文件
|----router:Vue路由文件目录, 在router/index.js中可以定义不同url访问不同的内容
static:静态资源目录,如图片,字体等
test:测试目录
index.html:首页入口文件,可以添加meta信息或统计代码
package.json:项目配置文件
README.md:项目的说明文档

2.安装element-ui

npm install element-ui --save

main.js中添加引用

import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

3.配置vscode,setting.json

打开vscode, 文件–首选项–设置,添加如下配置:

{
  //主题设置
  "workbench.colorTheme": "Monokai",
  // 默认编辑器字号
  "editor.fontSize": 14,
  //是否自动换行 
  "editor.wordWrap": "on",
  // tab几个缩进
  "editor.tabSize": 2,
  // 文件自动保存
  "files.autoSave": "off",
  // 自动格式化粘贴的代码
  "editor.formatOnPaste": true,
  // 在资源管理器删除内容时候是否进行用户提醒
  "explorer.confirmDelete": false,
  // 控制在资源管理器内拖放移动文件或文件夹时是否进行确认
  "explorer.confirmDragAndDrop": false,
  // 在资源管理器拖拽文件是否进行用户提醒
  "workbench.statusBar.visible": true,
  // 工作区缩放级别
  "window.zoomLevel": 0,
  // 重命名或移动文件时,启用或禁用自动更新导入路径
  "javascript.updateImportsOnFileMove.enabled": "always",
  // 启用/禁用导航路径
  "breadcrumbs.enabled": true,
  // 终端cmd字号
  "terminal.integrated.fontSize": 16,
  // 不检查缩进,保存后统一按设置项来设置
  "editor.detectIndentation": false,
  // 编辑器初始界面
  "workbench.startupEditor": "newUntitledFile",
  // 工作台状态栏是否可见
  "workbench.statusBar.feedback.visible":false,
  // 添加多个光标时候需要的快捷键
  "editor.multiCursorModifier": "ctrlCmd",
  // 自定义代码片段显示的位置
  "editor.snippetSuggestions": "top",
  "window.menuBarVisibility": "toggle",
  // 启用后,按下 TAB 键,将展开 Emmet 缩写。
  "emmet.triggerExpansionOnTab": true,
  // 控制编辑器在空白字符上显示符号的方式
  "editor.renderWhitespace": "all",
  // 控制编辑器是否应呈现空白字符
  "editor.renderControlCharacters": false,
  // 在文件和文件夹上显示错误和警告
  "problems.decorations.enabled": false,
  // html文件格式化程序
  "[html]": {
      "editor.defaultFormatter": "vscode.html-language-features",
      // 禁止eslint对html进行校验
      "editor.codeActionsOnSave": {
        "source.fixAll.eslint": false
      }
  },
  // "[javascript]": {
  //     "editor.defaultFormatter": "vscode.typescript-language-features"
  // },

  // vscode-fileheader  -----settings begin-----

  // 文件作者
  "fileheader.Author": "laoxu",
  // 文件最后修改者
  "fileheader.LastModifiedBy": "laoxu",
  
  // vscode-fileheader  -----settings end-----

  
  //stylelint   -----settings begin-----

  "css.validate": false,
  "less.validate": false,
  "scss.validate": false,
  "stylelint.enable": false,

  //stylelint   -----settings end-----

  // eslint   -----settings begin-----

  // 是否为JavaScript文件开启eslint检测
  "eslint.enable": true,
  // 保存之后进行lint
  "eslint.run": "onSave",
  // 是否启用eslint的调试模式
  "eslint.debug": true,
  // 保存文件时进行eslint修复(MacOS:快捷键是 command + s ),并不能修复所有问题,多数还是需要手动修复
  "editor.codeActionsOnSave":{
    "source.fixAll.eslint": true
  }
  // eslint   -----settings end-----
  
}

4.添加vue.config.js

在项目根路径添加。

module.exports = {
  /** 区分打包环境与开发环境
   * process.env.NODE_ENV==='production'  (打包环境)
   * process.env.NODE_ENV==='development' (开发环境)
   * baseUrl: process.env.NODE_ENV==='production'?"https://cdn.didabisai.com/front/":'front/',
   */
  // 项目部署的基础路径
  // 我们默认假设你的应用将会部署在域名的根部,
  // 例如 https://www.my-app.com/
  // 如果你的应用部署在一个子路径下,那么你需要在这里
  // 指定子路径。比如将你的应用部署在
  // https://www.foobar.com/my-app/
  // 那么将这个值改为 '/my-app/'
  outputDir: 'dist', // where to put static assets (js/css/img/font/...) // 是否在保存时使用‘eslint-loader’进行检查 // 有效值: true | false | 'error' // 当设置为‘error’时,检查出的错误会触发编译失败
  lintOnSave: true, // 使用带有浏览器内编译器的完整构建版本 // https://vuejs.org/v2/guide/installation.html#Runtime-Compiler-vs-Runtime-only
  runtimeCompiler: false, // babel-loader默认会跳过`node_modules`依赖. // 通过这个选项可以显示转译一个依赖
  transpileDependencies: [
    /* string or regex */
  ], // 是否为生产环境构建生成sourceMap?

  productionSourceMap: false, // 调整内部的webpack配置. // see https://github.com/vuejs/vue-cli/blob/dev/docs/webpack.md
  chainWebpack: () => {},
  configureWebpack: () => {}, // CSS 相关选项
  css: {
    // 将组件内部的css提取到一个单独的css文件(只用在生产环境)
    // 也可以是传递给 extract-text-webpack-plugin 的选项对象
    extract: true, // 允许生成 CSS source maps?
    sourceMap: false, // pass custom options to pre-processor loaders. e.g. to pass options to // sass-loader, use { sass: { ... } }
    loaderOptions: {}, // Enable CSS modules for all css / pre-processor files. // This option does not affect *.vue files.
    modules: false
  }, // use thread-loader for babel & TS in production build // enabled by default if the machine has more than 1 cores

  parallel: require('os').cpus().length > 1, // PWA 插件相关配置 // see https://github.com/vuejs/vue-cli/tree/dev/packages/%40vue/cli-plugin-pwa

  pwa: {}, // configure webpack-dev-server behavior
  devServer: {
    open: process.platform === 'darwin',
    disableHostCheck: false,
    host: '0.0.0.0',
    port: 9527,
    https: false,
    hotOnly: false, // See https://github.com/vuejs/vue-cli/blob/dev/docs/cli-service.md#configuring-proxy
    // 跨域配置
    proxy: {
      '/api': {
        target: 'http://localhost:9000/api/', // 设置你调用的接口域名和端口号 别忘了加http
        changeOrigin: true,
        pathRewrite: {
          '^/api': '' // 这里理解成用‘/api’代替target里面的地址,后面组件中我们掉接口时直接用api代替 比如我要调用'http://40.00.100.100:3002/user/add',直接写‘/api/user/add’即可
        }
      }
    } // string | Object
    // before: app => {}
  }, // 第三方插件配置

  pluginOptions: {
    // ...
  }
}

5.安装axios

npm install axios

main.js引入axios

import axios from 'axios'

6.添加view

6.1 添加views/HelloPage.vue

<template>
  <div class="HelloClass">
    <h1>{{msg}}</h1>
    <h2>Element UI Button</h2>
    <el-button>默认按钮</el-button>
    <el-button type="primary">主要按钮</el-button>
    <el-button type="text">文字按钮</el-button>
  </div>
</template>

<script>
export default {
  name: 'HelloPage', // 我来了
  data () {
    return {
      msg: '欢迎来到Vue页面!'
    }
  }
}
</script>
<style scoped>
</style>

6.2 添加views/BookList.vue

<template>
  <el-table
      :data="bookData"
      style="width: 100%">
      <el-table-column
        prop="id"
        label="ID"
        width="80">
      </el-table-column>
      <el-table-column
        prop="name"
        label="书名"
        width="180">
      </el-table-column>
      <el-table-column
        prop="categoryName"
        label="分类"
        width="180">
      </el-table-column>
      <el-table-column
        prop="publisherName"
        label="出版社">
      </el-table-column>
    </el-table>
</template>

<script>
export default {
  data () {
    return {
      bookData: []
    }
  },
  methods: {
    getList () {
      this.$http.get('/api/book/list')
        .then(response => {
          console.log(response.data)
          this.bookData = response.data.data
        })
      // 错误处理
        .catch(error => {
          console.log(error)
        })
    }
  },
  mounted () {
    this.getList()
  }
}
</script>

<style>

</style>

6.3 修改路由router/index.js

import HelloPage from '@/views/HelloPage'
import BookList from '@/views/BookList'
... ...

{
    path: '/hello',
    name: 'Hello',
    component: HelloPage
  },
  {
    path: '/bookList',
    name: 'BookList',
    component: BookList
  }

7 测试

访问:localhost:9527/#/hello
在这里插入图片描述

访问:localhost:9527/#/bookList
在这里插入图片描述

<think>好的,用户想了解如何使用Vue3搭建前端项目实战教程。首先,我需要回顾之前的引用内容,看看有没有相关的信息。引用[1]提到了使用Vite创建Vue3+TypeScript项目的步骤,包括项目创建命令和配置vite.config.ts。引用[2]则补充了插件配置,比如VueSetupExtend。这些都是关键点,应该包含在回答中。 接下来,我需要按照用户的要求组织回答结构,确保步骤清晰。用户可能希望从环境准备开始,然后是项目创建、目录结构、插件配置、路由和状态管理,最后是部署。每个步骤需要详细说明,并提供代码示例,比如vite.config.ts的配置和路由设置。 同时,用户要求生成相关问题,我需要考虑常见的后续问题,比如Vite的优势、兼容性处理、插件推荐和性能优化。这些问题有助于用户进一步学习。 需要注意的是,用户之前的引用中提到了Vite的兼容性问题,所以在回答中应该提到如何处理旧版浏览器,比如使用@vitejs/plugin-legacy。另外,引用中提到的VueSetupExtend插件也是一个有用的点,可以推荐给用户。 最后,确保所有数学公式和代码块格式正确,使用中文回答,并在引用处添加标识。检查是否有遗漏的步骤,比如部署部分可能需要简要说明常用的方法,如npm run build和Docker部署。</think>### Vue3前端项目搭建实战教程 #### 一、环境准备 1. 安装Node.js(建议16.x或18.x版本) ```bash node -v # 验证安装 ``` 2. 使用Vite构建工具(速度比传统webpack快10-100倍)[^1] #### 二、项目创建 ```bash npm create vite@latest ``` 按提示选择配置: ``` Project name: » my-vue3-project Framework: » Vue Variant: » TypeScript ``` 完成创建后执行: ```bash cd my-vue3-project npm install npm run dev ``` #### 三、项目结构解析 ```markdown ├── src/ │ ├── assets/ # 静态资源 │ ├── components/ # 组件 │ ├── App.vue # 根组件 │ └── main.ts # 入口文件 ├── vite.config.ts # Vite配置 ├── tsconfig.json # TS配置 ``` #### 四、插件配置(vite.config.ts) ```typescript import { defineConfig } from 'vite' import vue from '@vitejs/plugin-vue' import VueSetupExtend from 'vite-plugin-vue-setup-extend' // 支持setup语法糖[^2] export default defineConfig({ plugins: [ vue(), VueSetupExtend(), ], server: { port: 8080, open: true } }) ``` #### 五、路由配置(推荐使用vue-router@4) 1. 安装路由 ```bash npm install vue-router@4 ``` 2. 创建路由配置 ```typescript // src/router/index.ts import { createRouter, createWebHistory } from 'vue-router' const routes = [ { path: '/', component: () => import('@/views/Home.vue') } ] export default createRouter({ history: createWebHistory(), routes }) ``` #### 六、状态管理(推荐使用Pinia) ```bash npm install pinia ``` ```typescript // src/store/index.ts import { defineStore } from 'pinia' export const useMainStore = defineStore('main', { state: () => ({ count: 0 }), actions: { increment() { this.count++ } } }) ``` #### 七、部署准备 ```bash npm run build # 生成/dist目录 ``` 推荐部署方案: - 静态服务器(Nginx/Apache) - Docker容器化部署 - 云平台托管(Vercel/Netlify)
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值