vue2-elementUI-初始化启动项目-git

前置基础

资料下载-阿里云盘

  1. vue
  2. axios
  3. element-ui
  4. npm
  5. vscode

初始化项目

1.创建vue2工程

1.1

bash 复制代码
vue create projectName

1.2 选择

1.3 初始化 vue-cli 的核心步骤:

  1. Manually select features
    • (*) Babel
    • ( ) TypeScript
    • ( ) Progressive Web App (PWA) Support
    • (*) Router
    • (*) Vuex
    • (*) CSS Pre-processors
    • (*) Linter / Formatter
    • ( ) Unit Testing
    • ( ) E2E Testing
  2. Choose a version of Vue.js that you want to start the project with (Use arrow keys)
    • 2.x
    • 3.x
  3. Use history mode for router? (Requires proper server setup for index fallback in production) (Y/n)
    • n
  4. Pick a CSS pre-processor (PostCSS, Autoprefixer and CSS Modules are supported by default): (Use arrow keys)
    • Sass/SCSS (with dart-sass)
    • Sass/SCSS (with node-sass)
    • Less
    • Stylus
  5. Pick a linter / formatter config: (Use arrow keys)
    • ESLint + Airbnb config
    • ESLint + Standard config
    • ESLint + Prettier
  6. Pick additional lint features: (Press to select, to toggle all, *to invert selection)
    • (*) Lint on save
    • ( ) Lint and fix on commit*
  7. Where do you prefer placing config for Babel, ESLint, etc.? (Use arrow keys)
    • In dedicated config files
    • In package.json
  8. Save this as a preset for future projects? (y/N)
    • N

1.4 梳理项目结构

为项目开发做准备,把不需要的代码、文件删除掉

1. 重置 src/App.vue 组件中的代码
html 复制代码
<template>
  <div>App 根组件</div>
</template>

<script>
export default {
  name: 'App'
}
</script>

<style lang="less" scoped></style>
2. 重置 src/router/index.js 路由模块中的代码
js 复制代码
import Vue from 'vue'
import VueRouter from 'vue-router'

Vue.use(VueRouter)

const routes = []

const router = new VueRouter({
  routes
})

export default router
3. 清空 src/components 目录和 src/views 目录还有路由相关的。
4.把图片素材目录下的 images 文件夹(项目中需要用到的图片),复制粘贴到 src/assets 目录下。
5.把global.less放到src/views 目录下
6.并把global.less 引入到main.js 资料下载在前面
js 复制代码
import '@/assets/global.less' // 全局初始化样式

1.5 ESLint代码检查

1.在VSCode中, 下载这个插件
2. 非常非常非常重要

一定要把脚手架工程, 作为vscode根目录 , 因为vscode+eslint插件要使用配置文件.eslintrc, 按照这个的规则检查你的代码

3.一定要配置插件监测的时机, 修改ESLint插件配置


js 复制代码
"eslint.run": "onType",
"editor.codeActionsOnSave": {
	"source.fixAll.eslint": true
}

1.6 安装element-ui

npm 复制代码
npm install element-ui
1.封装新建src/elementUI/index.js, 在这里进行组件引入和注册
js 复制代码
import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)
2.在main.js中引入, 使其参与到webpack打包并在网页生效
js 复制代码
import '@/elementUI' // 注册elementUI组件

1.5 封装请求库

核心思想: 分层架构

在任意组件, 调用封装的接口方法, 接口方法调用统一的axios函数告诉他请求的参数, 它去请求数据

我(任意组件) -> 秘书(接口函数) -> 车(axios) -> 数据(后台返回)

1. 安装axios
bash 复制代码
npm install axios
2. 新建src/utils/request.js项目核心请求方法的模块文件
js 复制代码
import axios from 'axios'

// 创建一个自定的axios方法(比原axios多了个基地址)
// axios函数请求的url地址前面会被拼接基地址, 然后axios请求baseURL+url后台完整地址
const myAxios = axios.create({
  baseURL: 'http://big-event-vue-api-t.itheima.net'
})

// 导出自定义的axios方法, 供外面调用传参发请求
export default myAxios
3. 新建src/api/index.js项目接口方法统一管理模块文件
js 复制代码
import request from '@/utils/request'

// 导出接口方法
export const registerAPI = () => {
  // 这里先用这个接口测试下, 如果url以http开头会忽略baseURL, axios直接请求此地址
  return request({
    // 原地是一个Promise对象,内部包含了ajax请求
    // return 这个Promise对象到逻辑界面,丢到那边对Promise对象提取结果
    url: '/api/reg',
    method: 'POST',
    data: {
      username: 'lidongxu123',
      password: '111111',
      repassword: '111111'
    }
  })
}
4.在任意组件src/App.vue中, 引入接口请求方法, 并请求数据
js 复制代码
<template>
  <div>App根组件</div>
</template>

<script>
import { registerAPI } from '@/api'
export default {
  async created () {
    const res = await registerAPI()
    console.log(res)
  }
}
</script>

<style></style>

这种分层架构思想, 可以更好的统一管理项目中所有接口, 并也方便统一给axios方法添加拦截器和修改基地址

相关推荐
kejizhentan2 小时前
前端技术(七)——less 教程
前端·css·less
牧码岛2 小时前
物联网之ESP32与微信小程序实现指示灯、转向灯
前端·嵌入式硬件·物联网·微信小程序·web·web前端
Jiaberrr2 小时前
微信小程序中巧妙使用 wx:if 和 catchtouchmove 实现弹窗禁止页面滑动功能
前端·javascript·微信小程序·小程序·uni-app
Jiaberrr2 小时前
如何在微信小程序中实现WebSocket连接
前端·javascript·websocket·微信小程序·小程序
战族狼魂4 小时前
使用vue2+axios+chart.js画折线图 ,出现 RangeError: Maximum call stack size exceeded 错误
前端·javascript·vue.js
Beam0074 小时前
NPM私库搭建-verdaccio(Linux)
linux·前端·npm
mottte5 小时前
sqli-labs Basic Challenge Less_1 通关指南
前端·mysql·安全
周bro6 小时前
vue3使用panolens.js实现全景,带有上一个下一个,全屏功能
开发语言·javascript·ecmascript
NiNg_1_2346 小时前
后端id设置long类型时,传到前端,超过19位最后两位为00
前端
小白小白从不日白7 小时前
react 事件处理
前端·react.js