接上一批,小结(二)。

三、导航内容(含左侧导航及顶部面包屑导航)

  其实导航条主要根据element-ui的教程进行编写,官网:http://element-ui.cn/#/zh-CN/component。左侧导航为NaveMenu导航菜单,地址:http://element-ui.cn/#/zh-CN/component/menu,顶部为面包屑导航,地址:http://element-ui.cn/#/zh-CN/component/breadcrumb。多掌握组件的写法吧,简单上手,但是真的精通还是需要下很多功夫研究的,根据示例写好后,主要就是改样式到符合要求的格式。这里可以选择很多新的CSS预处理器,sass、less还有stylus这几种,其实主要就是方便编写CSS样式,用最基础的CSS也可。布局可以通过el-col的方式布局,完成后为响应式布局,根据窗口缩放。

  左侧导航如果完全根据ui组件来做,实际上不难。但是如果不根据ui组件来做,就需要自己采用v-for循环将导航内容全部显示出来,上面可以定义二级菜单展开关闭及路由跳转等事件,ui组件其实封装了这一块,所以如果导航菜单不是很多的时候建议可以采用ui组件来做的,代码也显得清楚易懂些。

  面包屑导航,主要是el-breadcrumb-item,里面的内容第一条to表示可以点击跳转到该路由,第二条为面包屑导航的后面内容。第二个div中为顶部导航栏右侧内容,根据实际需要情况改变,我这里主要是回到首页和退出登录两个事件按钮,还有一个是欢迎语。

 <template>
<div class="header">
<el-breadcrumb separator="/">
<el-breadcrumb-item :to="{ path: '/main' }">INFO首页</el-breadcrumb-item>
<el-breadcrumb-item v-for="(item, index) in $route.meta" :key="index">{{item}}</el-breadcrumb-item>
</el-breadcrumb>
<div style="margin-right:20px">
<span>Welcome, {{userName}}!</span>
<el-button type="text" @click="home">[回到首页]</el-button>
<el-button type="text" @click="logout">[退出登录]</el-button>
</div>
</div>
</template>

  这里说到路由,路由就是单页面应用的前面的主网址后面添加的不同名称的地址即不同的页面。直接上代码:

 import Vue from 'vue'
import Router from 'vue-router'
Vue.use(Router) const login = resolve => require(["@/page/login/login"], resolve); const main = resolve => require(["@/page/main/main"], resolve);
const home = resolve => require(["@/page/home/home"], resolve);
const weather = resolve => require(["@/page/weather/weather"], resolve);
const tableOperation = resolve => require(["@/page/tableManager/tableOperation"], resolve);
const quillEditor = resolve => require(["@/page/tableManager/quillEditor"], resolve);
const starNews = resolve => require(["@/page/allNews/starNews"], resolve);
const explain = resolve => require(["@/page/explain/explain"], resolve); export default new Router({
routes: [
{
path: '/',
component: login
},
{
path: '/main',
component: main,
children: [{
path: '',
component: home,
meta: [],
}, {
path: '/weather',
component: weather,
meta: ['天气预报', '实时天气'],
},
{
path: '/tableOperation',
component: tableOperation,
meta: ['数据管理', '表格操作'],
},
{
path: '/quillEditor',
component: quillEditor,
meta: ['数据管理', '文本编辑'],
},
{
path: '/starNews',
component: starNews,
meta: ['新闻资讯', '明星八卦'],
},
{
path: '/explain',
component: explain,
meta: ['说明', '说明'],
}, ]
}
]
})

  要引入并使用vue-router模块,然后是根据路径来定义路径的组件名const main = resolve => require(["@/page/main/main"], resolve),最后在routes里面添加组件名,其中meta为面包屑导航需要的字段,代表了一种层级关系,children为在主视图下的二级路由视图,这点其实蛮有用的,路由视图就是<router-view></router-view>标签代表的内容。第一个路由视图在APP.vue里面,代表后面所有的内容,第二个在主文件里再次二次视图,代表左侧导航和顶部导航都不用重新加载。

四、其他。

  其实写了这些有点不知道些什么下去了,过程中遇到的问题肯定是很多,学习是一个痛苦和快乐的过程,查不到解决方法时候的痛苦,做出来之后的喜悦。项目里难度最大的应该属于表格操作页了,增删改查,提交更改上传文件等等功能都有实现,借助了很多ui组件封装好的功能,部分也需要自己写逻辑。最困难的地方就是多条件查询了吧,实在是琢磨了好久,在网上找了好久,最后是用filter方法进行过滤表格数据完成的,需要弄清楚的是filter方法返回的是参数里值为真的数据,抓住这个重点就好了。

     search(searchForm) {
this.results = this.list.filter(item => {
let MatchBusiness = true;
let MatchDep = true;
let MatchMajor = true;
let MatchSystemType = true;
let MatchStatus = true; if (searchForm.depName) {
MatchDep = item.depName == searchForm.depName;
}
if (searchForm.majorName) {
MatchMajor = item.majorName == searchForm.majorName;
}
if (searchForm.status) {
MatchStatus = item.status == searchForm.status;
} if (searchForm.busiSystem) {
// 模糊搜索;
let key = searchForm.busiSystem.trim();
MatchBusiness = item.busiSystem.indexOf(key.trim()) != -1;
}
if (searchForm.systemType) {
// 模糊搜索;
let key = searchForm.systemType.trim();
MatchSystemType = item.systemType.indexOf(key.trim()) != -1;
}
return (
MatchBusiness &&
MatchDep &&
MatchMajor &&
MatchSystemType &&
MatchStatus
);
});
},

  然后其他增删改就简单很多,利用js的push和splice方法完成,splice可删可改,删除就是讲当前索引下的数据替换为无this.tableData.splice(i, 1),修改则是新的数据替换

this.tableData.splice(index, 1, data)。
  其他文件的上传、提交、表单验证等方法在ui组件的教程里都能找到就不多说什么了。
  
  其他主要注意基本格式根据需求或者设计图来吧,其实后台管理系统类的项目对样式需求不大,毕竟是管理系统,需要一种干净清爽的风格,所以一般的格式也就是背景色、字体大小、图标颜色、边框色等,再就是自适应、响应式这些了。这些都需要多去学习,还有就是CSS预处理器的使用,可以提高效率。
 
  好了,就总结到这里了,还是需要不断学习才行的。

Vue学习小结(二)的更多相关文章

  1. python --- 字符编码学习小结(二)

    距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...

  2. vue学习【二】vue结合axios动态引用echarts

    大家好,我是一叶,本篇是vue学习的第二篇,本篇将要讲述vue结合axios动态引用echarts. 在vue中,异步刷新使用的是axios,类似于大家常用的ajax,其实axios已经是vue的第二 ...

  3. Vue学习小结(一)安装依赖与数据来源

    不多说啥了,生活中都是各种阵痛与惊喜.最近在学习vue框架,刚写完一个小型的后台管理系统(https://github.com/michaelzhengzm/info-manager-systerm_ ...

  4. vue学习笔记(二)vue的生命周期和钩子函数

    前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...

  5. vue学习之二ECMAScript6标准

    一.ECMAScript6标准简述 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScr ...

  6. vue学习(二)Vue常用指令

    2 Vue常用指令 1. vue的使用要从创建Vue对象开始 var vm = new Vue(); 2. 创建vue对象的时候,需要传递参数,是json对象,json对象对象必须至少有两个属性成员 ...

  7. Vue学习笔记二:v-cloak,v-text,v-html的使用

    目录 v-cloak:解决插值表达式闪烁问题 安装插件Live Server 右键以HTTP形式运行HTML v-text:以属性方式使用插值表达式 v-cloak和v-text的区别 v-html: ...

  8. VUE 学习笔记 二 生命周期

    1.除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来 var data = { a: 1 } var vm = new Vue({ el: ' ...

  9. Vue学习小结

    ES6 let完全可以取代var const声明一个只读的常量 箭头函数:可以绑定this对象,大大减少了显式绑定this对象的写法(call.apply.bind) 函数绑定(function bi ...

随机推荐

  1. PHP基础(一)--字符串函数大盘点(基础篇)

    参考地址http://php.net/manual/zh/ref.strings.php addcslashes - 以 C 语言风格使用反斜线转义字符串中的字符    string addcslas ...

  2. MVC-AOP(面向切面编程)思想-Filter之IExceptionFilter-异常处理

    HandleErrorAttribute MVC中的基本异常分类: Action异常      T view异常 T, service异常     T, 控制器异常      F(异常get不到), ...

  3. java基本数据类型及其包装类

    1.String类 String s1 = "hello world"; String s2 = "hello world"; String s3 = s1 + ...

  4. 第三方支付设计——自有账户支付

    笔者在上一篇blog<<第三方支付架构设计之-帐户体系>>中已经稍微全面的阐述了第三方支付架构设计中的账户体系,在该体系中,其实涉及了各种各样的账户:银行侧账户(包括用户在银行 ...

  5. Visual Studio 和 c# 正则表达式

    今天集中说说VS生产环境下的正则. Visual Sturdio 2012以上版本查找替换 对于VS的正则,准确说,是VS2012之后的IDE下VS的正则. VS的查找和替换功能支持基础的正则表达式, ...

  6. 关于loadrunner使用web_add_header添加HTTP信息头(比如Content-Type,token等)和使用

    关于loadrunner使用web_add_header添加HTTP信息头(比如Content-Type,token等)和使用 1.web_add_header添加HTTP信息头(比如Content- ...

  7. 13.git的简单使用

    安装 https://git-scm.com/downloads 一直点下一步就可以,安装完后打开方法:‘开始菜单’-->'Git'-->''Git Bash 安装完成后设置名字和电子邮件 ...

  8. DDD实战进阶第一波(十):开发一般业务的大健康行业直销系统(实现经销商登录仓储与逻辑)

    上一篇文章主要讲了经销商注册的仓储和领域逻辑的实现,我们先把应用服务协调完成经销商注册这部分暂停一下,后面文章统一讲. 这篇文章主要讲讲经销商登录的仓储和相关逻辑的实现. 在现代应用程序前后端分离的实 ...

  9. 学习Layui 第一天

    Layui 官网说这是款经典模块化前端框架 个人觉得Layui很好用,容易上手. 在学习Layui的之前.先去官网下载必要的文件 将这些文件放入项目当中 然后可以到官网看一下示例. 可以做一个简单的表 ...

  10. Python_csv电子表格

    import csv with open('test.csv','w',newline='')as fp: test_writer=csv.writer(fp,delimiter=' ',quotec ...