watch异步操作
异步操作:
1.ajax,
2.定时器
3.点击事件
4.数据库操作
特点:代码不等待,后续代码会继续执行。
watch:{
//watch作用监测已经存在的数据 newVal 新值,oldVal 旧值
searchName(newVal,oldVal){
axios.get("http://localhost:3001/brands?name_like="+newVal).then((res) => {
const { status, data } = res;
if (status === 200) {
this.list = data;
}
});
}
},
======================全部代码-如果不是异步操作数据库也可以通过集合中的filter进行过滤搜索=====================================
<template>
<div id="HelloWorld">
<div class="add">
品牌名称:
<input type="text" v-model="itemName" />
<input type="button" @click="addItem" value="添加" />
</div>
<div class="add">
品牌名称:
<input type="text" placeholder="请输入搜索条件" v-model="searchName" /> <table class="tb">
<tr>
<th>编号</th>
<th>品牌名称</th>
<th>创立时间</th>
<th>操作</th>
</tr>
<tr v-for="(v, i) in list">
<td>{{ v.id }}</td>
<td>{{ v.name }}</td>
<td>{{ v.date | timeFormat }}</td>
<td><a href="#" @click.prevent="deleItem(v.id)">删除</a></td>
</tr> <tr>
<td v-if="list.length === 0" colspan="4">没有品牌数据</td>
</tr>
</table>
</div>
</div>
</template> <script>
// var list=[{
// name:"TCL",
// date:new Date()
// },
// {
// name:"娃娃",
// date:new Date()
// },{
// name:"cc",
// date:new Date()
// }
// ]
// var list=[]
import axios from "axios"; export default {
name: "HelloWorld", data() {
return { list: [],
itemName: "",
searchName: "",
};
},
mounted() {
this.getAllBrands();
},
methods: {
//获取数据
getAllBrands() {
axios.get("http://localhost:3001/brands").then((res) => {
const { status, data } = res;
if (status === 200) {
this.list = data;
}
});
},
addItem() {
axios
.post("http://localhost:3001/brands", {
name: this.itemName,
date: new Date(),
})
.then((res) => {
const { status, data } = res;
if (status === 201) {
this.getAllBrands();
this.itemName='';
}
});
}, //删除
deleItem(index) {
if (confirm("是否要删除数据?")) {
//this.list.splice(index,1);
axios.delete("http://localhost:3001/brands/" + index).then((res) => {
const { status, data } = res;
if (status === 200) {
this.getAllBrands();
}
});
}
},
},
watch:{
//watch作用监测已经存在的数据 newVal 新值,oldVal 旧值
searchName(newVal,oldVal){
axios.get("http://localhost:3001/brands?name_like="+newVal).then((res) => {
const { status, data } = res;
if (status === 200) {
this.list = data;
}
});
}
},
computed: {
//过滤,从页面过滤或者从数据库返回结果{{如果不改查询结果的集合是可以查询到模糊查询的数据的。}},异步操作的结果 // fileterList() {
// let { searchName, list } = this;
// let arr = [...list];
// if (searchName.trim()) {
// arr = list.filter((p) => p.name.indexOf(searchName) !== -1);
// }
// return arr;
// },
},
};
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
#HelloWorld {
width: 600px;
margin: 10px auto;
}
.tb {
border-collapse: collapse;
width: 100%;
}
.tb th {
background-color: #0094ff;
color: white;
}
.tb td,
.tb th {
padding: 5px;
border: 1px solid black;
text-align: center;
}
.add {
padding: 5px;
border: 1px solid black;
margin-bottom: 10px;
}
</style>
watch异步操作的更多相关文章
- C#执行异步操作的几种方式比较和总结
C#执行异步操作的几种方式比较和总结 0x00 引言 之前写程序的时候在遇到一些比较花时间的操作例如HTTP请求时,总是会new一个Thread处理.对XxxxxAsync()之类的方法也没去了解过, ...
- [C#] 走进异步编程的世界 - 在 GUI 中执行异步操作
走进异步编程的世界 - 在 GUI 中执行异步操作 [博主]反骨仔 [原文地址]http://www.cnblogs.com/liqingwen/p/5877042.html 序 这是继<开始接 ...
- 【C#进阶系列】27 I/O限制的异步操作
上一章讲到了用线程池,任务,并行类的函数,PLINQ等各种方式进行基于线程池的计算限制异步操作. 而本章讲的是如何异步执行I/O限制操作,允许将任务交给硬件设备来处理,期间完全不占用线程和CPU资源. ...
- C#客户端的异步操作
上篇博客[用Asp.net写自己的服务框架] 我讲述了如何实现自己的服务框架,但我想很多人应该用过WebService这类服务框架,相比起来,似乎还缺少什么东西, 是的,我也感觉到了.比如:我可以很容 ...
- C# 异步操作 async await
在编程的过程中,我们会遇到很多需要异步操作的场景.比如要下载一个文件,如果使用同步的方式进行下载,那么UI操作就会被卡住,这时最好能够使用异步的方式进行下载.在C#中,很早就开始支持异步的操作了,只不 ...
- 【C#进阶系列】26 计算限制的异步操作
什么是计算限制的异步操作,当线程在要使用CPU进行计算的时候,那么就叫计算限制. 而对应的IO限制就是线程交给IO设备(键鼠,网络,文件等). 第25章线程基础讲了用专用的线程进行计算限制的操作,但是 ...
- uart启示2_异步操作的bug
发现代码中的隐藏bug真的是一件令人振奋的事情,当然也会疲倦那么一下午! 这个bug只有在一种在一个2604计数周期的一种情况下发生,所以即使是大量的仿真,未必也会发现的了,只有在以后的设计过程中,遇 ...
- C#与Swift异步操作的差异
作为一个从C#转到Swift的小菜鸡...最近做一个简单的请求API解析Json数据的小程序上碰到一堆小问题.尤其是在异步请求的时候,用惯了C#的async/await写法,在写Swift的时候也按着 ...
- Android开发学习之路-使用AsyncTask进行异步操作
通常情况下,我们要实现异步操作,也就是在子线程进行耗时操作比如下载或者加载图片等,然后在UI(主)线程中更新UI,使用的是Handler和Message来进行异步的实现,但是,谷歌官方在Android ...
- 异步委托(APM)使用Func异步操作,处理耗时操作
使用委托进行异步操作,处理一些耗时操作,防止主线程阻塞 使用例子: using System; using System.Collections.Generic; using System.Linq; ...
随机推荐
- NOI2016区间bzoj4653(线段树,尺取法,区间离散化)
题目描述 在数轴上有 \(N\) 个闭区间 \([l_1,r_1],[l_2,r_2],...,[l_n,r_n]\) .现在要从中选出 \(M\) 个区间,使得这 \(M\) 个区间共同包含至少一个 ...
- C 标准库函数手册摘要
<stdlib.h> int abs( int value ); long int labs( long int value ); 返回参数的绝对值 int rand( void ); v ...
- Apache Shiro漏洞绕过waf小tips
看了篇文章觉得不错记录下以免以后找不到,原理是通过base64解码特性导致waf不能成功解码绕过waf检测从而进行攻击 解码情况: payload php python openresty java ...
- spark 解决错误java.io.InvalidClassException
今天遇到一个现场问题,任务报错java.io.InvalidClassException.在开发环境是没有报错的,正式环境报错.大概类似于下面这样(非报错原文,摘自网上同类博客) java.io.In ...
- HCIP-RSTP
端口角色 根端口(RP): 非根桥收到最优的BPDU配置信息的端口为根端口,(到根桥开销最小的端口),根桥没有根端口. 指定端口(DP): 两非根交换机之间连接的两个端口必有一个为指定端口,比较两个非 ...
- Coursera Deep Learning笔记 改善深层神经网络:优化算法
笔记:Andrew Ng's Deeping Learning视频 摘抄:https://xienaoban.github.io/posts/58457.html 本章介绍了优化算法,让神经网络运行的 ...
- 2021.7.21考试总结[NOIP模拟22]
终于碾压小熠了乐死了 T1 d 小贪心一波直接出正解,没啥好说的(bushi 好像可以主席树暴力找,但我怎么可能会呢?好像可以堆优化简单找,但我怎么可能想得到呢? 那怎么办?昨天两道单调指针加桶,我直 ...
- 用python检查矩阵的计算
鉴于最近复习线性代数计算量较大,且1800答案常常忽略一些逆阵.行列式的计算答案,故用Python写出矩阵的简单计算程序,便于检查出错的步骤. 1.行列式 可自行更改阶数 from numpy imp ...
- 动手个性化设置自己的 IntelliJ IDEA
前言 IDEA 是一个智能开发工具,每个开发者的使用习惯不同,如何个性化自己的IDEA? 我们可以通过 Settings 功能来设置. Settings文件是 IDEA 的配置文件,通过它可以设置主题 ...
- 基于 OSPF 路由的邻居邻接关系发现实践
1.实验目的 理解 OSPF 邻居关系和 OSPF 邻接关系的含义及差别 观察 OSPF 邻居邻接关系的建立过程 观察 OSPF 链路状态数据库的同步过程 2.实验原理 OSPF 网络中,路由器在发送 ...