Vue学习小结(二)
接上一批,小结(二)。
三、导航内容(含左侧导航及顶部面包屑导航)
其实导航条主要根据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),修改则是新的数据替换
Vue学习小结(二)的更多相关文章
- python --- 字符编码学习小结(二)
距离上一篇的python --- 字符编码学习小结(一)已经过去2年了,2年的时间里,确实也遇到了各种各样的字符编码问题,也能解决,但是每次都是把所有的方法都试一遍,然后终于正常.这种方法显然是不科学 ...
- vue学习【二】vue结合axios动态引用echarts
大家好,我是一叶,本篇是vue学习的第二篇,本篇将要讲述vue结合axios动态引用echarts. 在vue中,异步刷新使用的是axios,类似于大家常用的ajax,其实axios已经是vue的第二 ...
- Vue学习小结(一)安装依赖与数据来源
不多说啥了,生活中都是各种阵痛与惊喜.最近在学习vue框架,刚写完一个小型的后台管理系统(https://github.com/michaelzhengzm/info-manager-systerm_ ...
- vue学习笔记(二)vue的生命周期和钩子函数
前言 通过上一章的学习,我们已经初步的了解了vue到底是什么东西,可以干什么,而这一篇博客主要介绍vue的生命周期和它常用的钩子函数,如果有学过java的园友可能有接触到在学习servlet的时候学过 ...
- vue学习之二ECMAScript6标准
一.ECMAScript6标准简述 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了.它的目标,是使得 JavaScr ...
- vue学习(二)Vue常用指令
2 Vue常用指令 1. vue的使用要从创建Vue对象开始 var vm = new Vue(); 2. 创建vue对象的时候,需要传递参数,是json对象,json对象对象必须至少有两个属性成员 ...
- Vue学习笔记二:v-cloak,v-text,v-html的使用
目录 v-cloak:解决插值表达式闪烁问题 安装插件Live Server 右键以HTTP形式运行HTML v-text:以属性方式使用插值表达式 v-cloak和v-text的区别 v-html: ...
- VUE 学习笔记 二 生命周期
1.除了数据属性,Vue 实例还暴露了一些有用的实例属性与方法.它们都有前缀 $,以便与用户定义的属性区分开来 var data = { a: 1 } var vm = new Vue({ el: ' ...
- Vue学习小结
ES6 let完全可以取代var const声明一个只读的常量 箭头函数:可以绑定this对象,大大减少了显式绑定this对象的写法(call.apply.bind) 函数绑定(function bi ...
随机推荐
- 【读书笔记】C++Primer---第二章
1.C++基本数据类型:字符型.整型.浮点型等: 2.算术类型如下表,下表只是表示C++要求的最小储存空间,但是一般编译器使用的都比所要求的储存空间大,以前类型所能表示的最大值也因机器的不同而有不同的 ...
- 14 Live CDs for Penetration Testing (Pen Test) and Forensic
http://www.ivizsecurity.com/blog/penetration-testing/live-cd-penetration-testing-pen/ Yesterday I wa ...
- 第一次作业 orm环境构建(hibernate)及基本的demo
一.数据库 1.创建数据库hibernate01-1514010311 2.创建表 customer CREATE TABLE customer( id int(11) not null auto_i ...
- android点击返回键,如何做到不destory当前activity,只是stop。重新返回该activity的 时候可以直接使用,不需要创建新的activity实例
问题描述,如题目: android点击返回键,顺序执行 pause,stop,destory. 以至于想重新进入这个activity的时候还要重新执行onCreate()方法,那么如何解决不再重新执行 ...
- tomcat 绑定ipv4端口
在<tomcat>/bin目录打开catalina.sh,然后添加如下内容: JAVA_OPTS="$JAVA_OPTS -Djava.net.preferIPv4Stack=t ...
- Java的精确整数计算-Bigdecimal学习总结和工具类
随笔:随着最近工作需要,回首需要涉及到一些精确的数据计算,就需要用到Bigdecimal,索性就趁着闲暇之余整理收集一下关于Bigdecimal的使用方法,由于时间的原因,整理的并不是特别详细,但相信 ...
- Install and Configure Apache Kafka on Ubuntu 16.04
https://devops.profitbricks.com/tutorials/install-and-configure-apache-kafka-on-ubuntu-1604-1/ by hi ...
- hi-nginx-javascript vs node.js
hi-nginx-1.4.9已经支持javascript,这意味着把javascript应用于后端开发,将不再只有nodejs这唯一的途径和方法.由于java本身对javascript的极好支持,使得 ...
- msql索引
从网上找了两种解决方案: 最近要给一个表加一个联合唯一索引,但是表中的两个联合健有重复值,导致无法创建: 解决方案一:ignore(会删除重复的记录(重复记录只保留一条,其他的删除),然后建立唯一索引 ...
- vue技术分享-你可能不知道的7个秘密
前言 本文是vue源码贡献值Chris Fritz在公共场合的一场分享,觉得分享里面有不少东西值得借鉴,虽然有些内容我在工作中也是这么做的,还是把大神的ppt在这里翻译一下,希望给朋友带来一些帮助. ...