搭vue项目(初级版)

news2025/1/16 16:06:14

 这个项目只有 会员管理和直播管理两个模块。创建两个模块是为了验证一下路由跳转。

 下载项目: 可以到我的资源中下载压缩包 或者 

git clone 前端项目搭建: 前端搭建的项目,仅供学习使用

 1.安装vue-cli,全局只需要安装一次,如果安装过一次,就不用在安装了。

创建项目

vue create hello-world

1. 创建好项目之后我们就可以开始修改一些配置,修改的文件是 vue.config.js

修改配置的介绍可以到官网学习一下vue-cli配置参考

'use strict'
const path = require('path')

function resolve(dir) {
  // 生成路径  `${__dirname/${dir}}`
  return path.join(__dirname, dir)
}
process.env.VUE_APP_VERSION = require("./package.json").version;
module.exports = {
  // 基本 url
  publicPath: process.env.VUE_APP_BASE_URL || '/',

  // 打包时生成的文件目录
  outputDir: 'dist',

  // 打包之后放置生成的静态资源(js、css、img、fonts)
  assetsDir: 'static',

  // 每次保存时,设置为 true 或 'warning' 时,eslint-loader 会将 lint 错误输出为编译警告。
  // 默认情况下,警告仅仅会被输出到命令行,且不会使得编译失败。
  // lintOnSave: process.env.NODE_ENV === 'development',  // 在开发环境下只提示不会导致编译失败
  // 如果你不需要生产环境的 source map,可以将其设置为 false 以加速生产环境构建。
  productionSourceMap: false,

  // webpack-dev-server 相关配置
  devServer: {
    host: 'localhost',    // 可以运行
    port: '8023',
    // 自动打开浏览器
    open: true,
    // 为接口前端自己加一个前缀,但不会传给后端
    proxy: {
      ['/api']: {
        target: process.env.VUE_APP_BASE_API,
        // target: 'https://demo-api.apipost.cn/api',
        pathRewrite: {
          ['^/api']: '',  // 传给后端时 如果为 /api 则 重写为 空
        }
      }
    },
    // disableHostCheck: true,   // 搭配host: '0.0.0.0',为了其他设备可以访问本地服务
    historyApiFallback: true,
    allowedHosts: 'all',
  },

  css: {
    loaderOptions: {
      sass: {
        // 依次导入的公用的scss变量,公用的scss混入,共用的默认样式
        // 别名配置
        additionalData: `@import "./src/styles/variables.scss";`
      }
    }
  },

  // 该对象将会被 webpack-merge 合并入最终的 webpack 配置。
  configureWebpack: {
    resolve: {
      // 别名配置
      alias: {
        '@': resolve('src')     // 这里的resolve用的上边的函数
      }
    }
  },

  // 定义具名的 loader 规则和具名插件
  chainWebpack(config) {
    // 修复HMR
    config.resolve.symlinks(true)

    // 设置loader
    // https://blog.csdn.net/cai_niao5623/article/details/126424871
  },
}

cconst path = require('path')

path模块是nodejs官方提供的,用来处理路径的模块。

path.join():将多个路径片段拼接成一个完整的路径字符串。

process.env.VUE_APP_VERSION

process.env.VUE_APP_BASE_URL

这些数据来自

 这些配置的使用请去官网学习一下,模式和环境变量 | Vue CLI

2. 安装router,安装store,安装组件element-ui。开始写页面,路由跳转。

安装store: 安装 | Vuex

安装router: 安装 | Vue Router

安装组件:Element - The world's most popular Vue UI framework

安装好后开始在入口文件main.js中引用

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import './styles/element-variables.scss'
import router from "./router"
import store from './store'
import './permission' // permission control



Vue.config.productionTip = false

Vue.use(ElementUI);


new Vue({
  el: '#app',
  router,
  store,
  render: h => h(App),

})

在开发中,每个项目有自己的基本页面框架,这个项目中基本页面框架写在了layout文件夹中。就是第一张图的布局

3. 安装axios,调用接口

安装:axios中文文档|axios中文网 | axios

使用axios

import axios from 'axios';
import errorCode from '@/utils/errorCode';
import { Message } from 'element-ui'

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'

// 创建实例
const service = axios.create({
    baseURL: process.env.NODE_ENV === 'development' ? 'api' : process.env.VUE_APP_BASE_API,
    timeout: 20000,
})

// service.defaults.headers.common['Authorization'] = AUTH_TOKEN;

// 添加请求拦截器
service.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么

    // 是否需要设置 token
    // const isToken = (config.headers || {}).isToken === false
    // if (getToken() && !isToken) {
    //     config.headers = window.CONFIG.headers // 让每个请求携带自定义token 请根据实际情况自行修改
    // }
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
})

// 添加响应拦截器
service.interceptors.response.use(function (res) {
    // 对响应数据做点什么
    // console.log("请求接口--success", res);
    const code = res.data.code || 200;
    const msg = errorCode[code] || res.data.msg || errorCode['default'];
    if (code === 200) {
        return res.data;
    } else {
        Message({
            message: msg,
            type: 'error'
        })
        return Promise.reject(res.data)
    }
}, function (error) {
    // console.log("请求接口--error");
    let { message: msg, response, config } = error
    if (msg === 'Network Error') {
        msg = '后端接口连接异常'
    } else if (msg.includes('timeout')) {
        msg = '系统接口请求超时'
    } else if (response) {
        let status = response.status
        msg = '系统接口:' + status + '异常'
    }
    Message({
        message: `${msg}:${config.url}`,
        type: 'error',
        duration: 5 * 1000
    })
    return Promise.reject(error);
})

export default service

在api文件夹中引入使用

import request from '@/utils/request';

export function getRouters(params) {
    return request({
        url: 'https://console-mock.apipost.cn/app/mock/project/d098023d-15c4-49cd-a1d6-d4e1124f3e56//api/demo/getRouters',
        method: 'get',
        params
    })
}

到这一步,简易版的项目需要安装的内容已经安装结束了。

接下来,开始画页面,调用接口获取菜单配置

省略画页面的过程......

画好了面包屑,需要将调用接口获取的菜单配置在store中保存起来。

后边的内容需要看每个开发团队的开发习惯了,可以前往下载我的项目代码简单了解一下,自行消化一下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/117294.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MyBatisPlus ---- 入门案例

MyBatisPlus ---- 入门案例1. 开发环境2. 创建数据库及表a>创建表b>添加数据3. 创建SpringBoot工程a>初始化工程b>引入依赖c>idea中安装lombok插件4. 编写代码a>配置application.ymlb>启动类c>添加实体d>添加mappere>测试f>添加日志1. 开发环…

了解 Oracle 中单引号与双引号的用法,一篇文章教会你!

无论测试或者开发,对数据库的增删改查都是家常便饭。但有些小知识是经常被忽略,却又不能不去了解的,例如单引号和双引号的用法和区别,看完这一篇,你肯定会有收获。 首先我们要区别一个概念,即单引号(‘)和双…

docker应用部署示例

Docker 应用部署 一、部署MySQL 搜索mysql镜像 docker search mysql拉取mysql镜像 docker pull mysql:5.6创建容器,设置端口映射、目录映射 # 在/root目录下创建mysql目录用于存储mysql数据信息 mkdir ~/mysql cd ~/mysqldocker run -id \ -p 3307:3306 \ --na…

如何通过文档管理控制合同管理

如何通过文档管理控制合同管理 如果您的公司处理的合同比以往任何时候都多,那么您并不孤单。这种指数级增长的原因包括日益增长的监管要求、供应链问题以及全球化带来的业务关系的复杂性。此外,员工更频繁地换工作,因此,需要管理更…

Unity实用小工具—以对象形式操作Sqlite

一、介绍 1.1、版本说明:使用的Unity版本为个人版2020.3.39,数据库为Sqlite(一个轻量级跨平台数据库),Sqlite的查看管理工具可以在网上下载https://dbeaver.io/download/,可以直接保存下来使用。 1.2、数…

微服务(四)——统一网关

目录1. 概念2. 实现网关1. 实现流程2. 小结3. 断言工厂4. 过滤器工厂1. GatewayFilter2. GlobalFilter3. 过滤器的执行顺序5. 解决跨域问题1. 概念 网关的作用: 认证、鉴权服务路由、负载均衡请求限流 网关的实现: gateway 基于Spring5中提供的WebFlu…

linux 设置登录提示语

勿以恶小而为之,勿以善小而不为---- 刘备 /etc/motd 文件里面 保存的是 登录后提示语 vim /etc/motd可以放置自定义的 文字信息 -------------------- 每天都要加油努力噢,岳泽霖!!! -------------------登录之后,就会展示信息: 参考链接: …

【Linux】Linux命令行git的使用

前进才是唯一的方向 文章目录一、git是什么?二、gitee仓库创建1.新建仓库2.复制仓库链接3.克隆远端仓库到本地来三、git提交代码1.下载git2. 配置用户名和邮箱(否则git commit无法正常使用)3. git提交代码三板斧3.1 git add(将代…

git merge合并开发分支到上线分支遇到的问题,提示 no new changes

git merge 后 push 到 Gerrit 失败,提示 no new changes 解决思路: 分析:no new changes 的意思,是说,这个合并,是个线性的合并。而合并的那些历史的 commit 节点,在 gerrit 上都已经评审过了&…

在Linux中安装ShowDoc

在Linux中,有两种方式安装ShowDoc。第一种是自动脚本安装,第二种是手动安装。官方推荐使用自动脚本安装ShowDoc。如果自动脚本安装ShowDoc失败,可以考虑手动安装ShowDoc。 自动脚本安装ShowDoc 自动脚本利用docker来安装运行环境&#xff0…

酒鬼私定,只是酒鬼酒一次破圈营销?

围坐红泥小火炉,煮酒谈今夕。 过去一年多时间,经历了业绩向上,股市向下的反差时期后,越来越多人意识到白酒行业已步入存量时代。 2022年前三季度,中国规模以上白酒行业实现总产量487.9万千升,同比减少2.5…

proxychains for Windows

proxychains for Windows背景介绍项目地址使用scoop安装proxychains for windows验证命令行能否调用proxychains配置代理使用为Windows终端配置proxy--适用于cmd为Windows终端配置proxy--适用于PowerShellpowershell配置变量背景介绍 有时候Windows下的一些命令行程序想要挂代…

正大国际期货:外盘德指期货交易应该怎么做?

作为一个期货交易者,想要在市场上生存下来,就必须针对各种可能性都有所准备。比如,如果你强烈看涨,就必须准备好应对市场打你个冷不防的可能。相反,如果你对眼前的涨势高度怀疑,也不能彻底排除上演一场黑天…

ElasticSearch安装和部署和整合springboot

因为项目每次用到,每次重新搭都踩坑,特此记录一些坑,防止花费大量时间在搭建和整合上面安装 准备好压缩包elasticsearch-6.2.4解压 在config文件夹下配置文件elasticsearch.yml,可更改自行喜欢的端口和配置账号密码安装中文分词器…

git笔记

coderwhy听课笔记 什么是集中式 分布式 集中式是将整个仓库放到服务器;分布式是每台电脑上都有对应的仓库,可以在本地提交,之后把本地的仓库同步到服务器的仓库里 git安装 除了能使用git命令,还安装了git bash,git GUI git ba…

mysql数据库有关教程

我们打开Navicat 我使用的是16版本的,我们选择连接,我们新建连接 这里会有菜单栏目,比如说常规,高级,数据,SSL,SSH HTTP 其他的我们先不看,后期有机会我会解释的,先看常规 连接名字,就是你可以自己命名一个名字,也可以不写,比如说连接名字 studentdemo1 主机默认是localhos…

NetInside网络攻击分析帮您轻松发现可疑主机

分析概要 分析概要从以下三点做介绍。 分析内容 NetInside网络流量分析设备采集的流量。 分析时间 报告分析时间范围为:2020-09-28 07:58:00-11:58:00,时长共计3小时。 分析目的 本报告主要分析目的:查找和定位存在可疑现象的主机、查…

SHELL脚本学习 --- 第二天作业

SHELL脚本学习 — 第二天作业 思路: 这四道题都有条件判断的过程,可以使用if,也可以使用与运算。 linux的shell脚本中,与运算前一个命令执行成功,则执行后一个命令,反之则不执行,因此可以起到类…

cdb.exe的利用

cdb.exe的利用 0x01 简介 cdb 是安装 windows debugging tools 时自带的一个命令行调试工具,由微软签发证书。 0x02 cdb.exe加载shellcode ​ cdb.exe是调试工具,可以用来调试指定进程,并且可以在指定进程里分配RWX属性内存并写入shellcod…

临近年底,如何提高软件项目开发效率和开发速度?

1、任务自动分配功能 提高开发效率 为了提高团队的整个任务分配效率,CoCode自主研发任务“自动规划”功能,会根据当前任务属性以及人员技能登记等信息,实现迭代计划的一键规划,为项目经理智能规划出最优的项目计划以及人员工作安排…