Vue学习之品牌案例部分代码小结(二)
品牌案例的增删查和其他部分效果:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
<title>Document</title>
<script src="./lib/vue.js"></script>
<link rel="stylesheet" href="./lib/bootstrap.min.css" />
<!-- 需要用到Jquery吗???其实不需要的jq主要是用Js进行查询、操作DOM元素的,而VUE是用于免除操作DOM的过程,所以不需要加载的 -->
</head>
<body>
<div id="app">
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">添加品牌</h3>
</div>
<div class="panel-body form-inline">
<label>
Id:
<input type="text" class="form-control" v-model="id" />
</label>
<label>
Name:
<input
type="text"
class="form-control"
v-model="name"
@keyup.f2="add"
/>
</label> <!-- 在VUE使用事件绑定机制,为元素指定处理函数时,如 果加()就可以传参数了 -->
<input
type="button"
value="添加"
class="btn btn-primrary"
@click="add"
/>
<label>
搜索名称关键字:
<input
type="text"
class="form-control"
v-model="keywords"
id="search"
v-focus
v-color="'red'"
/>
</label>
</div>
</div> <table class="table table-bordered table-hover table-striped">
<thead>
<tr>
<th>Id</th>
<th>Name</th>
<th>Ctime</th>
<th>Opertion</th>
</tr>
</thead>
<tbody>
<tr v-for="item in search(keywords)" :key="item.id">
<td>{{ item.id }}</td>
<td v-text="item.name"></td>
<td>{{ item.ctime | dateFormat(' ')}}</td>
<td>
<a href="" @click.prevent="del(item.id)">删除</a>
</td>
</tr>
</tbody>
</table>
</div>
<script>
//全局的过滤器,进行时间的格式化
Vue.filter("dateFormat", function(dateStr, pattern = "") {
//根据给定的时间字符串,得到特定的时间
var dt = new Date(dateStr); var y = dt.getFullYear();
//后面加的padStart是ES6新用法,自动补全的,长度为2,用0补充!目的是让个位数改成0两位数!
var m = (dt.getMonth() + 1).toString().padStart(2, "0");
var d = dt
.getDate()
.toString()
.padStart(2, "0"); if (pattern.toLowerCase() === "yyyy-mm-dd") {
return `${y}-${m}-${d}`;
} else {
var hh = dt
.getHours()
.toString()
.padStart(2, "0");
var mm = dt
.getMinutes()
.toString()
.padStart(2, "0");
var ss = dt
.getSeconds()
.toString()
.padStart(2, "0"); return `${y}-${m}-${d} ${hh}:${mm}:${ss}`;
}
}); //自定义全局按键修饰符:新系统自动生成的按键也就几种,这个数字是其按键对应的键值!为避免难以记忆先声明定义下!
Vue.config.keyCodes.f2 = 113;
//获取焦点的--使页面刷新就在搜索框内能点取
Vue.directive("focus", {
bind: function(el) {},
inserted: function(el) {
el.focus();
},
update: function(el) {}
});
//获取焦点的字体颜色变成指定的颜色!
Vue.directive("color", {
bind: function(el, binding) {
el.style.color = binding.value;
}
});
//创建Vue实例
var vm = new Vue({
el: "#app",
data: {
id: "",
name: "",
keywords: "",
list: [
{ id: 1, name: "奔驰", ctime: new Date() },
{ id: 2, name: "宝马", ctime: new Date() }
]
},
methods: {
add() {
// 从data上获取id name,组织个对象,用数组的方法进行添加
var car = { id: this.id, name: this.name, ctime: new Date() };
this.list.push(car);
this.id = this.name = "";
},
del(id) {
//根据id删除数据--找到索引,调用数组的splice方法
this.list.some((item, i) => {
if (item.id == id) {
this.list.splice(i, 1);
//在数组的some方法中,如果return true,就会立即终止这个数组的后续循环
return true;
}
});
//第二种方法--专门查找索引
// var index=this.list.findIndex(item =>{
// if(item.id==id) {
// return true;
// }
// })
// this.list.splice(index,1)
},
search(keywords) {
//根据关键字,进行数据的搜索
// var newList=[]
// this. list.forEach(item=>{
// if(item.name.indexof(keywords) !=-1){
// newList.push(item)
// }
// })
// return newList
// forEach some filter findIndex这些都是数组的新方法,都会对数组中的每一项,进行遍历,执行相关的操作
return this.list.filter(item => {
//在ES6中,为字符串提供一种新方法,叫String.prototype.includes('要包含的字符串') 相当于contain
if (item.name.includes(keywords)) {
return item;
}
});
}
}
});
</script>
</body>
</html>
Vue学习之品牌案例部分代码小结(二)的更多相关文章
- Vue学习之基础及部分指令小结(一)
一.理解MVC和MVVM的关系: MVC:Model View Controller (模型 视图 控制器) 分别为:业务逻辑.界面.用来调度View和Model层 MVVM:Model View V ...
- Vue学习之全局和私有组件小结(七)
一.组件: 组件的出现,就是为了拆分Vue实例的代码量的,能够让我们以不同的组件,来划分不同的功能模块,将来我们需要什么样的功能,就可以去调用相应的组件即可. 二.组件和模块: 1.模块化:是从代码逻 ...
- Vue学习之过滤器和自定义指令小结(三)
过滤器: 过滤是一个数据经过了这个过滤之后出来另一样东西,可以是从中取得你想要的,或者给那个数据添加点什么装饰.过滤器就是过滤用的工具.渲染数据用的!!! 我们需要知道的是: 1.Vue中的过滤器不能 ...
- 1.使用Vue.js实现品牌案例添加功能
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Vue学习之路之登录注册实例代码
Vue学习之路之登录注册实例代码:https://www.jb51.net/article/118003.htm vue项目中路由验证和相应拦截的使用:https://blog.csdn.net/wa ...
- vue学习笔记2
Vue.js - Day2 品牌管理案例 添加新品牌 删除品牌 根据条件筛选品牌 1.x 版本中的filterBy指令,在2.x中已经被废除: filterBy - 指令 <tr v-for=& ...
- vue学习(2)
node.js介绍与npm操作 1.node就是JavaScript的一个运行环境(平台),他不是一门语言,也不是JavaScript框架,可以用来开发服务器端应用程序,web系统,其特点是体积小.快 ...
- Vue学习【第一篇】:Vue初识与指令
什么是Vue 什么是Vue Vue.js是一个渐进式JavaScript框架它是构建用户界面的JavaScript框架(让它自动生成js,css,html等) 渐进式:vue从小到控制页面中的一个变量 ...
- vue学习笔记(八)组件校验&通信
前言 在上一章博客的内容中vue学习笔记(七)组件我们初步的认识了组件,并学会了如何定义局部组件和全局组件,上一篇内容仅仅只是对组件一个简单的入门,并没有深入的了解组件当中的其它机制,本篇博客将会带大 ...
随机推荐
- 14-cmake语法-循环
循环: foreach set(VAR a b c) foreach(f ${VAR}) message(${f}) endforeach() while set(VAR 5) while(${VAR ...
- ActiveMQ传输协议
ActiveMQ默认的传输协议是TCP 在activemq的配置文件 /conf/activemq.xml可对配置文件进行修改和查看
- 回溯法 | 图的m着色问题
学习链接:算法 图的M着色问题 虽然今早9点才醒来,10点才来教室,但是coding得很高效.吃个早餐,拉个粑粑的时间,就把算法书上的[图的m着色]问题看明白了,大脑里也形成了解决问题的框架. 其实这 ...
- C函数之readlink
函数原型; #include<unistd.h> ssize_t readlink(const char *path, char *buf, size_t bufsiz); 函数说明: r ...
- 从最近的比赛学习CTR/CVR
https://zhuanlan.zhihu.com/p/35046241 包大人 深度学习炼丹劝退师 278 人赞同了该文章 从最近的比赛学习CTR/CVR 最近在玩kaggle的talking d ...
- cocos:C++ 导出到lua, cocos2dx_extension.ini修改
cocos:C++ 导出到lua, cocos2dx_extension.ini修改 [zq] //zq section, 需要和genbindings.py中的配置相同 # the prefix t ...
- Android Studio 之 Navigation【2.数据的传递】
Android Studio 之 Navigation[2.数据的传递和过渡动画] 在资源navigation资源的xml文件中,在[目标界面] detialFragment中点击,在右边 Argum ...
- spring学习-ApplicationContext-spring上下文深入理解
4月份开始复习一遍spring相关知识.让自己巩固一下spring大法的深奥益处,所以就看了大佬的博客,转载留下来日后继续研读.认为重点的标记为红色 以下文章内容转载自:http://www.cnbl ...
- MySql查询数据令某字段显示固定值
我们用SQL查询数据时后,基于某些原因不想看到某字段的值,比如密码,我们可以通过创建视图,忽略某一字段的值. 同时我们也可以直接通过SQL语句来让其显示某个固定值: (1)一般查询语句: SELECT ...
- 重置jenkins用户名密码
忘记用户名密码(如图)不管是忘记用户名密码还是误删jenkins目录下的users文件都可以使用下面的方式找回密码,我的版本是Jenkins 2.134 1. 进入jenkins安装目录,我的 ...