Spring Cloud + Vue前后端分离-第4章 使用Vue cli 4搭建管理控台

Spring Cloud + Vue前后端分离-第4章 使用Vue cli 4搭建管理控台

4-1 使用vue cli创建admin项目

Vue 简介

Vue作者尤雨溪在google工作时,最早只想研究angular的数据绑定功能,后面觉得这个小功能很好用,有前景,就再扩展,取名vue并放到github

vue、angular和微信小程序的代码结构很像,学了一个,另外两个上手就比较容易

学习建议:有空时多浏览文档,熟悉vue提供了哪些功能。在实战中遇到各种杨景,再回归文栏寻找解决方案

Vue CLI

使用vue cli新建admin项目

注意:需要提前安装好node.js,可以看这篇文章

如果想要idea终端是bash形式的,可以在设置的Terminal中选择Shell path路径为bash.exe

npm install -g @vue/cli可以用于初始安装,也可以用于升级到最新版本

创建admin项目 

​ 

vuecli初始安装带了babel和eslint插件,bable:javascript编译器;eslint:代码规范检查

点击网址,就可以打开

​ 

package.json类似于pom.xml,里面配置各种js版本依赖

main.js是vue入口文件,用来初始化vue实例并集成所需要的插件

4-2 集成bootstrap后台管理模板ace

响应式设计与bootstrap

Bootstrap中文网

Bootstrap来自Twitter,是目前最受欢迎的响应用框架,它基于html,css,javascript,简单易扩展,因此有很多第三方的模板

栅格系统是bootstrap的布局核心,需要重点掌握

ace admin模板介绍

bootstrap有很多第三方模板,有很多机构或个人通过开发模板收费赚钱。模板种类很多,控台、商城、企业官网、博客等

点击github,下载zip,解压文件夹

admin 增加 ace 模板

复制ace-master文件夹,粘贴到public文件夹下

所有项目中的静态代码,全部放在public目录下

2.index.html中加入ace admin模板所需要的js css 

1.把login.html中<head></head>和引用第三方的js,如图所示,拷贝到index.html中,把<script>放到<head>里的末尾

2.原来index.html中<head></head>里保留一句

是这个index.html

3.第二部保留那句话,是为了我们更好的去模仿

ctrl+r,输入好替换的,然后点击Replace All

批量替换小技巧:找到要批量替换的共同点,可以包含特殊字符,"= 等,替换的时候,也加上这些特殊字符,这样又快又准

Ctrl+Z撤销,Ctrl+Shift+Z重做

双击serve相当于启动命令,启动后点击网址就可以访问了

推荐把Autoscrol to Source和Autoscroll from Source勾选,文件快速定位,左右同步

Autoscroll to Source -> Open Files with Single Click
Autoscroll from Source -> Always Select Opened File

然后把login.html中的main-container拷贝到这里

把不用的先去掉 

然后serve启动

在这里,可能会提示错误,$未定义,但是我们的js已经引入过了,我们需要改一下配置,在rules中加上"no-undef": "off",再次启动,就可以了

eslint,用于检测代码规范。是一把双刃剑,有一些检测没必要,可以通过修改配置禁用掉 

1.简化登录页面代码 

一般后台管理系统不允许注册,需要由管理员来新建用户

App.vue

<template><div class="main-container"><div class="main-content"><div class="row"><div class="col-sm-10 col-sm-offset-1"><div class="login-container"><div class="center"><h1><i class="ace-icon fa fa-leaf green"></i><span class="">控台登录</span></h1></div><div class="space-6"></div><div class="position-relative"><div id="login-box" class="login-box visible widget-box no-border"><div class="widget-body"><div class="widget-main"><h4 class="header blue lighter bigger"><i class="ace-icon fa fa-coffee green"></i>请输入用户名密码</h4><div class="space-6"></div><form><fieldset><label class="block clearfix"><span class="block input-icon input-icon-right"><input type="text" class="form-control" placeholder="Username" /><i class="ace-icon fa fa-user"></i></span></label><label class="block clearfix"><span class="block input-icon input-icon-right"><input type="password" class="form-control" placeholder="Password" /><i class="ace-icon fa fa-lock"></i></span></label><div class="space"></div><div class="clearfix"><label class="inline"><input type="checkbox" class="ace" /><span class="lbl"> 记住我</span></label><button type="button" class="width-35 pull-right btn btn-sm btn-primary"><i class="ace-icon fa fa-key"></i><span class="bigger-110">登录</span></button></div><div class="space-4"></div></fieldset></form></div><!-- /.widget-main --></div><!-- /.widget-body --></div><!-- /.login-box --></div><!-- /.position-relative --></div></div><!-- /.col --></div><!-- /.row --></div><!-- /.main-content --></div><!-- /.main-container -->
</template><script>
$('body').attr('class', 'login-layout light-login');
export default {name: 'App',
}
</script>

4-3 集成路由vue-router

会生成2个文件

别人拉取我的代码到本地后,运行“npm install”会去下载package.json里配置的所有依赖的js,这时vue-router可能下载到的版本是3.6.6或其他版本

这样下载到的版本肯定是3.6.5

login.vue里面的内容就是原来app里面的内容 


angular也有这两种url展现形式,一般选择history,美观

router-view是路由嵌套标签,一般配合父子路由使用

app.vue

<template><div id="app"><router-view/></div>
</template>

main.js

import Vue from 'vue'
import App from './app.vue'
import router from './router'
Vue.config.productionTip = false;new Vue({router,render: h => h(App),
}).$mount('#app')

即便我在网址上面输入其他内容

回车之后,依然是/login

根据需求可以将这些改成2,看起来更加紧凑好看

Ctr+AIt+L格式化代码,就可以看到效果了

制作admin页面

1.增加admin页面

 2.增加路由配置,访问/admin时,加载admin组件

登录还有点问题,之后会继续改进 

login页面和admin页面跳转 

1.增加login页面登录按钮点击事件,跳转到admin页面

点击登录,就会跳转到admin页面

4-4 控台欢迎页面开发

mouted的使用

vue组件生命周期中有很多钩子函数,mounted和created都是vue的初始化函数。

参考Vue 实例 — Vue.js

1.使用mounted解决组件初始化样式的问题

现在,再次刷新,就是都正常的了 

结论:组件每次加载,mounted都会再次执行

使用router-view增加welcome子组件

1.增加welcome子组件,增加/admin/welcome子路由

router-view 一般配合子路由使用

注意:子路由的配置不要”/"开头 

eslint实在是每次都要检查,我干脆把它卸载掉,并且把相关的配置都删除掉,就不会再检查报错 

 

{"name": "admin","version": "0.1.0","private": true,"scripts": {"serve": "vue-cli-service serve","build": "vue-cli-service build","lint": "vue-cli-service lint"},"dependencies": {"core-js": "^3.8.3","vue": "^2.6.14","vue-router": "^3.6.5"},"devDependencies": {"@babel/core": "^7.12.16","@vue/cli-plugin-babel": "~5.0.0","@vue/cli-service": "~5.0.0","vue-template-compiler": "^2.6.14"},"browserslist": ["> 1%","> 1%","last 2 versions","not dead"]
}

 控台页面元素修改

响应式设计的一个体现:根据不同屏幕分辨率不同,弹窗显示在不同的位置

Ctrl+Y:删除当前选中的行,只要某一行有部分被选中,这一行就会全部删除

structure窗口,显示当前文件的代码层级结构

1.将面包屑导航、搜索、设置删除

1.增加js依赖,解决navbar中,三个菜单的点击弹窗效果。

js从ace/index.htmI复制

data-toggle:用于按钮和模态框(弹出层)的事件绑定

ace/blank页面引入js,只到这个位置,从ace/index页面中再复制下面的js库

放到public/index.html

2.使用相对路径解决头像路径问题 

把其他的地方也进行替换

1.侧边栏去掉无用的菜单

2.底部文案修改

active:当前菜单是激活样式 (高亮,粗体,字体颜色蓝色等)。open :把当前菜单下的子菜单展开

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

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

相关文章

[MySQL] MySQL复合查询(多表查询、子查询)

前面我们学习了MySQL简单的单表查询。但是我们发现&#xff0c;在很多情况下单表查询并不能很好的满足我们的查询需求。本篇文章会重点讲解MySQL中的多表查询、子查询和一些复杂查询。希望本篇文章会对你有所帮助。 文章目录 一、基本查询回顾 二、多表查询 2、1 笛卡尔积 2、2…

教师未来发展前景如何

作为一名教师&#xff0c;我对未来发展的前景也感到有些迷茫。 不过教育行业仍然是一个稳定的职业&#xff0c;但是随着社会的变化和科技的发展&#xff0c;传统的教学模式已经逐渐被在线教育、人工智能等新型教学方式所取代。这使得教师的角色和职责也在发生变化&#xff0c;需…

matplot绘图时图像太大报错但能保存

matplot绘图时&#xff0c;图像太大&#xff0c;可能在jupyter里面报错&#xff0c;但是图像可以保存。 报错&#xff1a;Image size of 12237479x675 pixels is too large. It must be less than 2^16 in each direction. 在这里插入图片描述

SpringIOC第二课,@Bean用法,DI详解,常见面试题Autowired VS Resource

一、回顾 但是我们之前MVC时候&#xff0c;在页面上&#xff0c;为什只用Controller,不用其他的呢&#xff1f; 用其他的好使吗&#xff1f;(我们可以在这里看到&#xff0c;出现404的字样&#xff09; Service ResponseBody public class TestController {RequestMapping(&quo…

kubernetes安装kubesphere

前置默认都安装了k8s&#xff0c;且k8s都正常 1、nfs文件系统 1.1、安装nfs-server # 在每个机器。 yum install -y nfs-utils# 在master 执行以下命令 echo "/nfs/data/ *(insecure,rw,sync,no_root_squash)" > /etc/exports# 执行以下命令&#xff0c;启动 …

数字化和数智化一字之差,究竟有何异同点?

在2023杭州云栖大会的一展台内&#xff0c;桌子上放着一颗番茄和一个蛋糕&#xff0c;一旁的机器人手臂融入“通义千问”大模型技术后&#xff0c;变得会“思考”&#xff1a;不仅能描述“看”到了什么&#xff0c;还能确认抓取的是番茄而不是蛋糕。 “传统的机械臂通常都只能基…

Post Quantum Fuzzy Stealth Signatures and Applications

目录 笔记后续的研究方向摘要引言贡献模块化框架模糊构造实施适用于FIDO Post Quantum Fuzzy Stealth Signatures and Applications CCS 2023 笔记 后续的研究方向 摘要 自比特币问世以来&#xff0c;基于区块链的加密货币中的私人支付一直是学术和工业研究的主题。隐形地址…

cmd命令 常用的命令

网络工作为常年公司里的背锅侠&#xff0c;不得不集齐十八般武艺很难甩锅。像cmd命令这种好用又好上手的技术&#xff0c;就是网络工程师上班常备技能。 只要按下快捷键 winR&#xff0c;输入cmd回车&#xff0c;然后输入cmd命令。 像我自己&#xff0c;我就经常用cmd命令检测…

浪潮信息KeyarchOS——保卫数字未来的安全防御利器

浪潮信息KeyarchOS——保卫数字未来的安全防御利器 前言 众所周知&#xff0c;目前流行的操作系统有10余种&#xff0c;每一款操作系统都有自己的特点。作为使用者&#xff0c;我们该如何选择操作系统。如果你偏重操作系统的安全可信和稳定高效&#xff0c;我推荐你使用浪潮信…

openEuler JDK21 部署 Zookeeper 集群

zookeeper-jdk21 操作系统&#xff1a;openEuler JDK&#xff1a;21 主机名IP地址spark01192.168.171.101spark02192.168.171.102spark03192.168.171.103 安装 1. 升级内核和软件 yum -y update2. 安装常用软件 yum -y install gcc gcc-c autoconf automake cmake make \zl…

E: 无法获得锁 /var/lib/dpkg/lock-frontend。锁正由进程 6253(apt-get)持有

问题 解决方案 sudo rm /var/lib/dpkg/lock-frontend接着&#xff0c;继续安装。

【复杂网络建模】——基于Graph Convolutional Networks (GCN)进行链接预测

目录 一、复杂网络建模 二、图嵌入方法&#xff08;Graph Convolutional Networks (GCN) &#xff09; 1. 图表示&#xff1a; 2. 邻接矩阵&#xff08;Adjacency Matrix&#xff09;&#xff1a; 3. 图卷积层&#xff08;Graph Convolutional Layer&#xff09;&#xff…

【C语言】7-32 刮刮彩票 分数 20

7-32 刮刮彩票 分数 20 全屏浏览题目 切换布局 作者 DAI, Longao 单位 杭州百腾教育科技有限公司 “刮刮彩票”是一款网络游戏里面的一个小游戏。如图所示&#xff1a; 每次游戏玩家会拿到一张彩票&#xff0c;上面会有 9 个数字&#xff0c;分别为数字 1 到数字 9&#xf…

排序-插入排序与希尔排序

文章目录 一、插入排序二、希尔排序 一、插入排序 思路&#xff1a; 当插入第i(i>1)个元素时&#xff0c;前面的array[0],array[1],…,array[i-1]已经排好序&#xff0c;此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较&#xff0c;找到插入位置即将…

基于Springboot+mybatis+mysql+jsp招聘网站

基于Springbootmybatismysqljsp招聘网站 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java EE项目 项目名称&#xff1a;基于SPringBoot的照片网站 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 前端技术&…

Swagger Array 逐步解密:带你简化开发工作

Swagger 允许开发者定义 API 的路径、请求参数、响应和其他相关信息&#xff0c;以便生成可读性较高的文档和自动生成客户端代码。而 Array &#xff08;数组&#xff09;是一种常见的数据结构&#xff0c;用于存储和组织多个相同类型的数据元素。数组可以有不同的维度和大小&a…

轨道电流检测IC——FP355,助力蓄电池充电器、SPS(适配器)、电池管理系统、多口快充充电器的优雅升级

目录 一、FP355概述 二、FP355特点 三、FP355应用 随着移动设备的普及和人们对电力需求的不断增长&#xff0c;充电器的安全性和充电效率成为了重要的关注点。 作为一种能够精确检测电流的集成电路&#xff0c;轨道电流检测IC——FP355是个不错的选择。它不仅广泛应用于蓄电…

SpringBoot集成Spring Security+jwt+kaptcha验证(简单实现,可根据实际修改逻辑)

参考文章 【全网最细致】SpringBoot整合Spring Security JWT实现用户认证 需求 结合jwt实现登录功能&#xff0c;采用自带/login接口实现权限控制 熟悉下SpringSecurity SpringSecurity 采用的是责任链的设计模式&#xff0c;是一堆过滤器链的组合&#xff0c;它有一条很…

03_W5500TCP_Client

上一节我们完成了W5500网络的初始化过程&#xff0c;这节我们进行TCP通信&#xff0c;w5500作为TCP客户端与电脑端的TCP_Server进行通信。 目录 1.TCP通信流程图&#xff1a; tcp的三次握手&#xff1a; tcp四次挥手&#xff1a; 2.代码分析&#xff1a; 3.测试&#xff1a…

Python游戏测试工具自动化遍历游戏中所有关卡

场景 游戏里有很多关卡&#xff08;可能有几百个了&#xff09;&#xff0c;理论上每次发布到外网前都要遍历各关卡看看会不会有异常&#xff0c;上次就有玩家在打某个关卡时卡住不动了&#xff0c;如果每个关卡要人工遍历这样做会非常的耗时&#xff0c;所以考虑用自动化的方…