Javascript - Vue - 请求
本地增删查的一个例子

<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="obj.id" />
</label>
<label>
name:<input type="text" class="form-control" v-model="obj.name" />
</label>
<input type="button" value="add" class="btn btn-primary" @click="add" />
<label>
search:<input type="text" class="form-control" v-model="keyWords"/>
</label>
</div>
</div>
<table class="table table-striped table-bordered table-hover table-condensed">
<tr><th>id</th><th>name</th><th>createTime</th><th>opration</th></tr>
<!--//呈现的数据由vue对象内部维护的search函数提供,当在搜索框输入数据后,vue对象内部数据keyWords发生变化,则会自动调用search进行数据过滤-->
<tr v-for="obj in search(keyWords)" :key="obj.id"><td>{{obj.id}}</td><td>{{obj.name}}</td><td>{{obj.time}}</td><td><a href="#" @click.prevent="del(obj.id)">删除</a></td></tr>
</table>
</div>
el: "#box",
data: {
keyWords: "",
obj: { id: null, name: "", time: null },
list: [
{ id: 1, name: "sam",time:new Date() },
{ id: 2, name: "leo", time: new Date() },
{ id: 3, name: "korn", time: new Date() }
]
},
methods: {
add: function () {
var id = this.obj.id;
var name = this.obj.name;
this.list.push({ id: id, name: name,time:new Date() });
},
del: function (id) {
var index=this.list.findIndex((item) => {
if (item.id == id) return true;
});
this.list.splice(index, 1);
},
search: function (keyWords) {
return this.list.filter((item,index) => {
if (item.name.includes(keyWords)) {
return item;
}
});
}
}
});
向服务端发起请求
axios
这是官方推荐的新的插件,用于客户端向服务端发送请求。可在axios下载。
{{msg}}
<button @click="sendGet">GetInfo</button>
}
},
methods: {
sendGet: function () {
var self=this;
var getObj=axios.get("http://localhost:53385/Handler.ashx", {
params: self.sendData
});
var endObj= getObj.then(function (response) {
self.msg = response.data;
});
endObj.catch(function (error) {
self.msg = error.status + error.statusText;
});
},
sendPost: function () {
var self = this;
var postObj = axios.post("http://localhost:53385/Handler.ashx", self.sendData);
var endObj=postObj.then(function (response) {
self.msg = response.data;
});
endObj.catch(function (error) {
self.msg = error.status + error.statusText;
});
}
}
});
</script>
服务端
{
public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
context.Response.Write("OK");
context.Response.End();
}
}

增删改查实例
<div class="panel panel-primary">
<div class="panel-heading">
<h3 class="panel-title">添加</h3>
</div>
<div class="panel-body form-inline">
<label>
name:<input type="text" class="form-control" v-model="name" />
</label>
<input type="button" value="新增" class="btn btn-primary" @click="add" />
</div>
</div>
<table class="table table-bordered table-hover table-striped">
<tr>
<th>ID</th>
<th>Name</th>
<th>Date</th>
<th>Operation</th>
</tr>
<tr v-for="obj in list" :key="obj.ID">
<td>
{{obj.ID}}
</td>
<td>
{{obj.Name}}
</td>
<td>
{{obj.Date}}
</td>
<td>
<a href="#" :id="obj.ID">编辑</a>
</td>
</tr>
</table>
</div>
服务端需要创建一个模拟数据库存储数据的在内存中可以保持全局唯一的数据对象以便可以在这个对象列表里持续添加数据
{
public int ID { get; set; }
public string Name { get; set; }
public DateTime Date { get; set; }
public static List<Employee> GlobalList { get; set; } //全局唯一的员工列表
static Employee()
{
GlobalList= new List<Employee>
{
new Employee
{
ID = 1,
Date = new DateTime(),
Name = "寒食"
},
new Employee
{
ID = 2,
Date = new DateTime(),
Name = "山魈"
},
new Employee
{
ID = 3,
Date = new DateTime(),
Name = "李隼"
}
};
}
}
查询
客户端代码
el: "#box",
data: {
name:null,
list: [
{ ID: 1, Name: "sam", Date: new Date() }
]
},
methods: {
getServerData: function () {
var self = this;
axios.get("http://localhost:53385/getAllList.ashx").then(function (response) {
self.list = response.data;
});
}
},
created: function () { //vue对象创建完成后开启查询
this.getServerData();
}
});
服务端代码
{
context.Response.ContentType = "text/plain";
string listStr = JsonConvert.SerializeObject(Employee.GlobalList);
context.Response.Write( listStr);
context.Response.End();
}
新增
客户端代码
el: "#box",
data: {
name:null,
list: [
{ ID: 1, Name: "sam", Date: new Date() }
]
},
methods: {
add: function () {
var self = this;
axios.post("http://localhost:53385/addData.ashx", { name: this.name }).then(function (response) {
self.list = response.data;
});
}
}
});
服务端代码
{
context.Response.ContentType = "text/plain";
//客户端axios对象的post方法模拟了post提交方式,但它提交的是json格式的数据,不能用request.form[]来获取数据
//以下通过读取流数据来获取客户端提交的json数据
context.Response.Cache.SetCacheability(HttpCacheability.NoCache);
using (var reader = new System.IO.StreamReader(context.Request.InputStream))
{
String jsonData = reader.ReadToEnd();
var em = new Employee { Date = new DateTime(), Name = JsonConvert.DeserializeObject<Employee>(jsonData).Name };
var list = Employee.GlobalList;
list.Add(em);
var message = string.IsNullOrEmpty(jsonData) ? "error" : JsonConvert.SerializeObject(list);
context.Response.Write(message);
context.Response.End();
}
}

删改略……
Javascript - Vue - 请求的更多相关文章
- Javascript异步请求你能捕获到异常吗?
Javascript异步请求你能捕获到异常吗? 异常处理是程序发布之前必须要解决的问题,不经过异常处理的应用会让用户对产品失去信心.在异常处理中,我们一贯的做法是按照函数调用的次序,将异常从数据访问层 ...
- 一个vue请求接口渲染页面的例子
new Vue({ el:'#bodylist', data: { list: [ { "type_id": "1", "type_name" ...
- JavaScript获取请求参数
<script type="text/javascript"> //获取请求参数 function paramsMap() { var url = window.loc ...
- Javascript - Vue - vue对象
vue提供了一整套前端解决方案,可以提升企业开发效率 vue的处理过程 app.js 项目入口,所有请求最先进入此模块进行处理 route.js 由app.js调用,处理路由的分发 controlle ...
- Javascript - Vue - 在vscode里使用webpack
cnpm(node package manager)和webpack模块 npm是运行在node.js环境下的包管理工具,使用npm可以很快速的安装前端文件里需要依赖的那些项目文件,比如js.css文 ...
- Javascript - Vue - 路由
vue router.js 下载:vue-router.js, 该文件依赖于vue.js <script src="Scripts/vue-2.4.0.js">< ...
- Javascript - Vue - webpack + vue-cil
cnpm(node package manager)和webpack模块 npm是运行在node.js环境下的包管理工具(先安装node.js,再通过命令 npm install npm -g 安装n ...
- Javascript - Vue - webpack中的组件、路由和动画
引入vue.js 1.cnpm i vue -S 2.在mian.js中引入vue文件 import Vue from "vue"//在main.js中使用这种方式引用vue文件时 ...
- VUE请求本地数据的配置json-server
VUE开发请求本地数据的配置,早期的vue-lic下面有dev-server.js和dev-client.js两文件,请求本地数据在dev-server.js里配置,最新的vue-webpack-te ...
随机推荐
- BugPhobia准备篇章:Scrum Meeting工作分析篇
特别说明:此博客不计入正式开发过程的Scrum Meeting篇章,只是工作的基础分析 前端 王鹿鸣.钱林琛撰写初稿 能否前端完成一个页面后就能在本地跑起来进行测试? 能否在前端和后端完成对接后单页面 ...
- Python正则表达式使用
Python正则表达式使用 参考资料: Python正则表达式| 菜鸟教程 Python正则表达式详解 - 我当道士那儿些年 - 博客园 前言 由于遇到一个提取字符串某个子串的问题,刚开始使用了暴力方 ...
- C# 7中函数多值返回_转自InfoQ
本文要点 应遵循<.NET设计规范:.NET约定惯用法与模式>一书.和十年前第一版出版时一样,书中给出的原则在当前依然有指导意义. API设计是最重要的.设计不好的API会在极大地增加软件 ...
- CMake系列之一:概念
不同的make工具遵循不同的规范和标准,因此针对不同的标准需要不同的Makefile文件.CMake利用一种平台无关的CMakeList.txt文件定制编译流程,根据目标用户的平台生成本地化的Make ...
- PAT 1017 A除以B
https://pintia.cn/problem-sets/994805260223102976/problems/994805305181847552 本题要求计算A/B,其中A是不超过1000位 ...
- Prometheus 和 Grafana的简单学习
1. 下载 暂时不采用 docker化部署 prometheus下载地址 https://github.com/prometheus/prometheus/releases/ prometheus的e ...
- 查看iOS应用crash日志
基本操作: 1.电脑安装好Xcode,连接好手机设备 2.打开Xcode,点击Window-Devices and Simulators 3.选中手机设备,点击View Device Logs,即可查 ...
- 用jq获取元素内文本,但不包括其子元素内的文本值的方法
<li id="listItem"> This is some text <span id="firstSpan">First span ...
- SP4487 GSS6 - Can you answer these queries VI
题目大意 给出一个由N个整数组成的序列A,你需要应用M个操作: I p x 在 p 处插入插入一个元素 x D p 删除 p 处的一个元素 R p x 修改 p 处元素的值为 x Q l r 查询一 ...
- Asp.net MVC3 CSS 模板
http://www.cnblogs.com/huyq2002/archive/2011/12/16/2289795.html Asp.net MVC3 CSS 模板 如果你现在正在用asp.net ...