Vue+Element UI 生鲜管理系统简介及项目搭建,页面布局(一)

news2024/11/20 2:39:02

文章目录

  • 浅谈
  • 一、背景
  • 二、搭建
    • 创建vue项目
    • vue项目结构简介
    • 安装Element UI库
    • 安装axios
    • 安装querystring
    • 安装normalize.css
    • 安装echarts
    • 运行
    • 删除无用组件
    • 基础css样式导入
  • 三、页面布局
    • 配置路由
    • 布局
      • flex布局(弹性盒子)
      • 固定布局
      • 固定布局配置路由

浅谈

自从入了这家公司,就没分配过前端的工作了,在上一家还能前后端都写写,现在真是对vue的代码真是望尘莫及哇,前几天跟前端朋友交流前端知识的时候,发现自己脑子里面的前端代码好像被偷了一样,赶紧找个项目练练,虽然现在是java,以后还是想要做全栈呢()(哈哈哈还在努力勿喷),一下就是对代码及知识点的笔记哦,想学习的小伙伴快学起来!!!这个项目和公司的还是比较类似的。

一、背景

简单的后台管理,项目类型不重要,能做到里面技术点都熟悉就好。
在这里插入图片描述

在公司一般二开比较多,这个系统从头搭建的,为的就是多多了解嘛。因为我有点vue基础,所以可能有些东西简单就略过,不懂得大家都可以发起讨论哈。

二、搭建

创建vue项目

vue create vue-project
因为我的版本低,create命令无法使用:

在这里插入图片描述

笑了,好久没用版本都跟不上了,那就顺便更新下吧,
npm uninstall -g vue-cli
npm install -g @vue/cli

没有这个问题的可直接跳过。我创建的是vue的项目。

vue项目结构简介

在这里插入图片描述

package.json 项目所需要的各种配置文件,类似java中的pom文件。

package-lock.json 这个文件是在执行在npm install的时候自动生成,用以记录当前状态下实际安装的各个依赖包的具体来源和版本号以及这个模块又依赖了哪些依赖。你可以简单的理解为对 package.json 里 dependencies 和 devDependencies 的精确描述。

babel.config.js babel作为转译工具使我们的 JavaScript 代码正常运行在旧的或不支持新语法和api的环境。而这个文件就是用来进行 babel 配置的,通常我们不会过于细节的对目标环境会涉及的哪些语法进行转换而进行一一配置,而是通过@babel/preset-env这个包进行“智能”预设。

src src目录包含的算是我们真正的“源代码”了,也是我们开发的主战场即项目涉及到的页面、样式、脚本都集中在此编写。

src下的文件:
main.js:默认为整个项目的入口文件。
App.vue:是项目的主组件,页面的入口文件。
assets:静态资源存放目录,和 public 目录不同的是这个目录会被打包处理,需要使用相对路径进行引用。
components:组件存放目录,项目的公共组件可以存放在此供其他地方使用。

public 任何放置在 public 文件夹的静态资源都会被简单的复制,而不经过 webpack(vue-cli依赖的打包工具)。你需要通过绝对路径来引用它们。

通常,我们只需要关注public/index.html这个文件,它会在构建过程中被注入处理后的 JavaScript 和 CSS 等的资源链接。同时,它也提供了 Vue 实例挂载的目标。

node_modules 之前提到过,当前项目所需依赖的保存目录。

安装Element UI库

项目创建完成后进入文件,安装:
vue add element
按需引入,在element官网也有介绍:
在这里插入图片描述
npm install babel-plugin-component -D
这个其实无所谓,全导入也行。

安装axios

npm i axios -S

安装querystring

npm i querystring -S

安装normalize.css

npm i normalize.css -S

安装echarts

npm i echarts -S

运行

运行下试试呐,npm run serve
在这里插入图片描述
老铁没毛病。

删除无用组件

在这里插入图片描述
helloword.vue删除

app.vue清除demo数据,留个架子。
在这里插入图片描述

基础css样式导入

在这里插入图片描述
base.css为新建的文件,样式我就是随便写几个:

h1,h2,h3,h4,p,ul,li {
    margin: 0;
    padding: 0;
}
ul {
    list-style: none;
}
a {
    /* 下划线 */
    text-decoration: none; 
}
img {
    /* 垂直方向居中 */
    vertical-align: middle;
}
body {
    font-size: 14px;
    font-family:'微软雅黑', 'Arial Narrow', Arial, sans-serif;
}

引入阿里巴巴矢量图标库
在这里插入图片描述
在这里插入图片描述
测试图标可用性
在这里插入图片描述

icon-icon_baitian-taiyang
在这里插入图片描述
重启项目
在这里插入图片描述
ok我的太阳出来了,问题不大。

三、页面布局

配置路由

我创建项目的时候是没有选择vue-router的 所以我加下:
安装最新vue-router:npm install vue-router -S
注意:

vue2搭配vue-router3
vue3搭配vue-router4

我一开始 装错了版本报错,所以要注意下,以及卸载命令

卸载这个不兼容的路由版本,重新安装对应的版本:
npm uninstall vue-router
安装3版本:
npm install vue-router@3.5.2

在这里插入图片描述

新建文件夹router

index.js

import Vue from 'vue'
import VueRouter from 'vue-router'
import Layout from '@/views/layout/index.vue' 
import Login from '@/views/login/index.vue'

Vue.use(VueRouter)

const routes = [
    {
        path:'/',
        component:Layout
    },{
        path:'/login',
        name:'login',
        component:Login
    }
]


const router = new VueRouter({
    mode: 'history',
    //base: process.env.BASE.URL,
    routes
})

export default router

main.js加入
在这里插入图片描述
在路由中配置了基本的登录页面和布局页面:

在这里插入图片描述

在App.vue加上路由出口,因为默认是进入app.vue页面,加上router-view之后会跳转到所配置的路由的/页面

跑下:
可能会有报名称不规范的错误情况
在这里插入图片描述
这是因为新版对文件名监测比较严格:
可以在package.json加入

“no-unused-vars”: “off”, // 当存在定义而未使用的变量时,关闭报错
“vue/multi-word-component-names”: “off”, //文件名不规范关闭报错
“vue/no-unused-components”: “off” // 当存在定义而未使用的组件时,关闭报错

在这里插入图片描述

重新运行

注意:
配置路由时
在这里插入图片描述
访问/product/list如果带/是从根路径开始寻找,所以list不能带/

布局

按照这个格式进行布局
在这里插入图片描述

安装less
npm install -D less-loader@6.x
也要注意版本问题

在layout中新建几个页面,用来作为布局的组件
在这里插入图片描述

flex布局(弹性盒子)

在layout的index中进行布局:

<template>
  <div class="layout">
      <div class="menu">
      <Menu></Menu>
    </div>
    <div class="content">
      <Content></Content>
    </div>
  </div>
  
</template>

<script>
import Menu from './menu/index.vue'
import Content from './content/index.vue'
export default {
    components:{
      Menu,
      Content
    }
}
</script>
<style lang="less" scoped>
  .layout{
    display: flex;
    .menu {
      width: 200px; //左边200px
      background: gainsboro;
    }
    .content {
      flex: 1;//占满剩余 
      background: rebeccapurple;
    }
  }
</style>

呈现的效果:
在这里插入图片描述

固定布局

<template>
  <div class="layout">
      <div class="menu">
      <Menu></Menu>
    </div>
    <div class="content">
      <Content></Content>
    </div>
  </div>
  
</template>

<script>
import Menu from './menu/index.vue'
import Content from './content/index.vue'
export default {
    components:{
      Menu,
      Content
    }
}
</script>

<style lang="less" scoped>
  .layout{
    // display: flex;
    .menu {
      width: 200px; //左边200px
      background: gainsboro;
      position: fixed;
      left: 0;
      top: 0;
      bottom: 0;
    }
    .content {
      // flex: 1;//占满剩余 
      background: rebeccapurple;
    }
  }
</style>

在这里插入图片描述

固定布局配置路由

整体捋一遍哈:
在这里插入图片描述

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

这样在访问/路径时,内容区二级路由就只指向home.vue页面:
在这里插入图片描述
后面内容看主页专栏下一篇文章

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

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

相关文章

【Rust】2、实战:文件、网络、时间、进程-线程-容器、内核、信号-中断-异常

文章目录 七、文件和存储7.2 serde 与 bincode 序列化7.3 实现一个 hexdump7.4 操作文件7.4.1 打开文件7.4.2 用 std::fs::Path 交互 7.5 基于 append 模式实现 kv数据库7.5.1 kv 模型7.5.2 命令行接口 7.6 前端代码7.6.1 用条件编译定制要编译的内容 7.7 核心&#xff1a;LIBA…

【Java高级语法】(十五)lambda表达式:给你一颗语法糖Lambda,解析函数式编程的杰作~

Java高级语法详解之lambda表达式 1️⃣ 概念2️⃣ 优势和缺点3️⃣ 使用3.1 语法结构3.2 案例3.2.1 无参Lambda3.2.2 带有一个参数3.2.3 带有多个参数3.2.4 方法引用的简化形式 4️⃣ 应用场景5️⃣ 优化技巧6️⃣ 原理7️⃣ 注意性能问题&#x1f33e; 总结 1️⃣ 概念 Java …

架构设计第十一讲:架构之高并发:限流

架构设计第十一讲&#xff1a;架构之高并发&#xff1a;限流 每个系统都有服务的上线&#xff0c;所以当流量超过服务极限能力时&#xff0c;系统可能会出现卡死、崩溃的情况&#xff0c;所以就有了降级和限流。限流其实就是&#xff1a;当高并发或者瞬时高并发时&#xff0c;为…

rabbitmq第三课-RabbitMQ高级功能详解以及常用插件实战

一、选择合适的队列. 实际上是可以选择三种队列类型的&#xff0c;classic经典队列&#xff0c;Quorum仲裁队列&#xff0c;Stream流式队列。 后面这两种队列也是RabbitMQ在最近的几个大的版本中推出的新的队列类型。3.8.x推出了Quorum仲裁队列&#xff0c;3.9.x推出了Stream流…

MyBatis何时使用一级缓存,何时使用二级缓存?

Mybatis设计2级缓存来提升数据检索效率&#xff0c;避免每次都查询数据库。 一、一级缓存 一级缓存 Mybatis 的一级缓存是指 SQLSession&#xff0c;一级缓存的作用域是 SQlSession , Mabits 默认开启一级缓存。 在同一个SqlSession中&#xff0c;执行相同的SQL查询时&#x…

基于STM32CUBEMX驱动TOF模块VL6180与VL6180X(2)----修改测量范围

概述 当使用VL6180传感器进行测距时&#xff0c;可以通过修改缩放因子来改变可测量的距离范围。VL6180是一种基于飞行时间原理的传感器&#xff0c;通过测量光信号的往返时间来确定物体与传感器之间的距离。 默认情况下&#xff0c;VL6180传感器的测距范围约为0至200毫米。然…

显卡检测工具:GPU-Z

今天小编为大家测试了一款轻量级的GPU显卡的测试工具&#xff0c;可以查看GPU的详细信息&#xff0c;以供各位同学们学习。 一、简单介绍 GPU-Z是一款方便实用的软件工具&#xff0c;专门为用户提供视频卡和GPU的详尽信息。它具有轻巧的特点&#xff0c;不需要安装即可使用&am…

2023版智慧高速智慧公路总体建设方案,售前人员必备方案

导读&#xff1a;原文《智慧高速智慧公路总体建设方案》共83页PPT&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 如需获取完整的电子版内容参考学习 您可以关注评论…

【雷达原理】基本雷达方程的推导

基本雷达方程 一、研究目的二、推导过程1、基本雷达方程常用的表达形式2、计算案例3、仿真代码 参考文献 一、研究目的 雷达方程定量地描述了作用距离与雷达参数及目标特性之间的关系。 研究雷达方程主要有以下作用&#xff1a; &#xff08;1&#xff09;根据雷达参数来估算雷…

慕课:笔记

课程链接&#xff1a;直面JavaScript中的30个疑难杂症_JavaScript面试题-慕课网 第二章&#xff1a;数据类型 数据类型是每门编程语言的必修之课&#xff0c;你是否对JavaScript的数据类型和检测存在困惑&#xff0c;本章节将为你揭晓其中的奥秘&#xff0c;让你对数据类型有…

矩阵压缩算法

当矩阵中存在着重复元素时&#xff0c;为了节省空间会采用压缩算法&#xff0c;关键在于原矩阵空间与压缩后数据结构的对应&#xff1b; 1.对称压缩&#xff1a;数据沿对角线对称的情况&#xff1b; 将矩阵压缩为一维数组&#xff0c;数组的长度是&#xff1a; 对于num[n][n…

VMware虚拟机暴露端口至公网方法流程详解

目录 需求背景 解决方法 准备工作 虚拟机ip设置方法 需求背景 一台电脑需要连接另一台电脑上的虚拟机的端口&#xff0c;直接ping是无法ping通的&#xff0c;因为本地虚拟机的端口未暴露至公网。 解决方法 虚拟机&#xff1a;CentOS 7 64 Linux 本机&#xff1a;Window…

C专家编程 —— 运行时数据结构

文章目录 代码和数据段代码与可执行文件中对应的位置可执行文件中的段在内存中的布局加入动态链接库的内存空间布局堆栈段的作用过程活动记录函数调用过程记录举例 static和auto关键字 汇编嵌入C代码 代码和数据 代码和数据的区别可以理解为编译时和运行时的分界线。 代码&…

guacamole 纯web rdp预研:相关JAVA基础

文章目录 guacamole 纯web rdp预研:相关JAVA基础1. pom.xml2 scm标签3 application/octet-stream4. tomcat webapps下war包5 maven-assembly-plugin maven assembly插件介绍什么是assembly&#xff1f; 6. Mavenz中的source插件的使用和注意事项。7. Maven私库安装与配置8. 配置…

深度学习之目标检测R-CNN模型算法流程详解说明(超详细理论篇)

1.R-CNN论文背景 2. R-CNN算法流程 3. R-CNN创新点 一、R-CNN论文背景 论文网址https://openaccess.thecvf.com/content_cvpr_2014/papers/Girshick_Rich_Feature_Hierarchies_2014_CVPR_paper.pdf   RCNN&#xff08;Region-based Convolutional Neural Networks&#xff…

牛客网基础语法81~90题

牛客网基础语法81~90题&#x1f618;&#x1f618;&#x1f618; &#x1f4ab;前言&#xff1a;今天是咱们第九期刷牛客网上的题目。 &#x1f4ab;目标&#xff1a;可以循环嵌套使用熟练&#xff0c;数组的变问题&#xff0c;对数学知识掌握更加清晰。 &#x1f4ab;鸡汤&…

Matplotlib---热力图

1. 热力图 imshow 是 Matplotlib 库中一个函数&#xff0c;主要用于在 Python 中显示图像。它的完整参数列表如下&#xff1a; matplotlib.pyplot.imshow(X, cmapNone, normNone, aspectNone, interpolationNone, alphaNone, vminNone, vmaxNone, originNone, extentNone, sh…

管理类联考——逻辑——知识篇——论证推理——三、假设——haimian

假设 考点分析 假设 年度 2012 2013 2014 2015 2016 2017 2018 2019 2020 2021 2022 2023题量1132111 主要问法 上述论述是基于以下哪项假设?基于以下哪项假设能使上述推理成立?上述论证依赖于以下哪项假设?得到这一结论的前提条件是? 解题思路 阅读问题&#xff0c;确…

【TCP/IP】多播 - 定义、原理及编程实现(TTL、多播组、收发信息)

目录 多播 多播的原理 多播的数据传输时的特点 TTL 的概念 TTL 和 多播组的配置方法 多播的编程与实现 发送者 接收者 多播 多播是一种介于单播和广播通信之间的技术方式&#xff0c;可以将发送者所需要发送的数据包分别发送给分散在不同子网中的一组接收者。 多播的原…

分布式软件架构——事务ACID

事务概念 事务处理几乎是每一个信息系统中都会涉及到的问题&#xff0c;它存在的意义就是保证系统中的数据是正确的&#xff0c;不同数据间不会产生矛盾&#xff0c;也就是保证数据状态的一致性&#xff08;Consistency&#xff09; 关于一致性&#xff0c;我们重点关注的是数…