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 ...
随机推荐
- PyCharm中HTML页面CSS class名称自动完成功能失效的问题
如果这个HTML页面带有style元素的CSS定义,那class name自动完成功能就失效了 Pycharm Version:5.03
- 阿里Java架构师谈谈架构和如何成为一个Java架构师
架构的定义 我们来看看软件架构的一般定义: 程序和计算系统软件体系结构是指系统的一个或多个结构. 该结构包括软件的构建,构建的外部可见属性以及它们之间的相互关系. 该体系结构不是可操作的软件. 具体来 ...
- Python_文件与文件夹操作
''' os模块除了提供使用操作系统功能和访问文件系统的简便方法之外,还提供了大量文件与文件夹操作的方法. os.path模块提供了大量用于路径判断.切分.连接以及文件夹遍历的方法. shutil模块 ...
- pycharm linux版快捷方式创建
****************************pycharm_linux安装and快捷方式创建******************1.下载好安装包之后解压: tar -xfz 压缩包名 ...
- 非常适用的Sourceinsight插件,提高效率【强力推荐】
转自:http://www.cnblogs.com/heiyue/p/6225975.html 一直使用sourceinsight编辑C/C++代码,sourceinsight是一个非常好用的编辑工具 ...
- Lucene入门案例一
1. 配置开发环境 官方网站:http://lucene.apache.org/ Jdk要求:1.7以上 创建索引库必须的jar包(lucene-core-4.10.3.jar,lucene-anal ...
- BigDecimal.setScale 处理java小数点
BigDecimal.setScale()方法用于格式化小数点setScale(1)表示保留一位小数,默认用四舍五入方式 setScale(1,BigDecimal.ROUND_DOWN)直接删除多余 ...
- SqlSugar 盲点
1.读取数据库连接 private SqlSugarClient GetInstance() { string conmstring = System.Web.Configuration.WebCon ...
- C#温故而知新系列 -- 闭包
闭包的由来 要说闭包的由来就不得不先说下函数式编程了.近几年函数式编程也是比较火热,我们先来看看函数式编程的一些基本的特性这个有助于我们理解闭包的由来. 函数式编程 函数式编程是一种编程模型,他将计算 ...
- C#中DataGridView 对XML文档的使用
窗体就只用添加一个DataGridView控件就可以了.详细解释请参照上一篇中的借鉴曲终人散博客园的文档. XML文档代码如下:test.xml <?xml version="1.0& ...