Vue.js 入门
背景
为了学习spring,准备写一个通讯录demo,实现增删改查功能。
前端页面同事推荐用vue.js,因为简单快速,当然前提是基于你对前端的html,css,js有一定的了解
资料
vue.js 官网: https://cn.vuejs.org/
axios: https://www.npmjs.com/package/axios
实例说明
整体思路
items用于页面展示,contact用于新增数据的存储,editContact用于修改数据的存储和展示
新建数据,页面form跟data绑定,存储在data中,axios获取data中的数据,向后端发起请求插入数据库,插入数据成功后,将前端form的数据存在items中用于页面展示;
修改数据,通过页面item.id通过axio向后端获取数据,展示在弹出窗口上,然后弹出窗口绑定了click时间触发后端editContact方法;
删除数据,页面数据通过直接获取item.id直接调用后端的删除接口,然后前端items也删除数据;
查询数据,直接接口
实例Vue,data来存储数据
var vm = new Vue({
el: '#contacts',
data: {
contact: {
id:'',
name: '',
wechat: '',
phone: '',
address: '',
industry: ''
},
editContact:{
id:'',
name: '',
wechat: '',
phone: '',
address: '',
industry: ''
},
items: []
}
数据绑定,将form表单里面的内容跟data中的contact双向绑定,页面填写的数据会保存在data.contact中,可以修改data.contact的数据来控制页面的数据展示
<form role="form" class="form-horizontal" id="contactForm">
<label for="name">Name</label><input type="text" class="form-control" id="name" v-model="contact.name" />
<label for="wechat">Wechat</label><input type="text" class="form-control" id="wechat" v-model="contact.wechat" />
<label for="phone">Phone</label><input type="text" class="form-control" id="phone" v-model="contact.phone" />
<label for="address">Address</label><input type="text" class="form-control" id="address" v-model="contact.address" />
<label for="industry">Industry</label><input type="text" class="form-control" id="industry" v-model="contact.industry" />
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
<button type="button" class="btn btn-primary" v-on:click="insertContact" aria-hidden="true" data-dismiss="modal">保存</button>
</div>
</form>
v-for 遍历数据,列表展示数据,index为列表下标,遍历items里面的数据
<tr v-for="(item,index) in items">
<td>{{item.name}}</td>
<td>{{item.wechat}}</td>
<td>{{item.phone}}</td>
<td>{{item.address}}</td>
<td>{{item.industry}}</td>
<td>
<a class="btn btn-default" v-on:click="getEditContactId(item.id)" href="#modal-container-edit" data-toggle="modal">Edit</a>
<a class="btn btn-default" v-on:click="deleteContact(item.id,index)">Delete</a>
</td>
</tr>
mounted调用methods里面的方法,如mounted调用methods里面的getAllContact方法
mounted: function () {
this.getAllContact();
}
跟后端的交互请求,使用axios,如下get请求
getAllContact: function(){
axios.get('/contact/all')
.then(function (response) {
console.log(response.data);
vm.items=response.data
})
.catch(function (error) {
console.log(error)
});
}
methods里面方法的相互调用,edit完去调用getAllContact方法
editContactInfo: function(){
var editInfo = JSON.stringify(vm.editContact);
var instance = axios.create({
timeout: 1000,
headers: { 'Content-Type': 'application/json' }
});
instance.post('/contact/edit/'+vm.editContact.id,editInfo)
.then(function (response){
console.log(response.data);
vm.getAllContact();
})
.catch(function (error){
console.log(error);
})
}
动作触发,v-on:click="方法名",点击edit触发getEditContactId方法
<a class="btn btn-default" v-on:click="getEditContactId(item.id)" href="#modal-container-edit" data-toggle="modal">Edit</a>
<a class="btn btn-default" v-on:click="deleteContact(item.id,index)">Delete</a>
Vue.js 入门的更多相关文章
- Vue.js 入门教程
Vue.js 入门教程:https://cn.vuejs.org/v2/guide/index.html
- 免费的 Vue.js 入门与进阶视频教程
这是我免费发布的高质量超清「Vue.js 入门与进阶视频教程」. 全网最好的.免费的 Vue.js 视频教程,课程基于 Vue.js 2.0,由浅入深,最后结合实际的项目进行了最棒的技术点讲解,此课程 ...
- Vue.js入门(一)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"/> <meta htt ...
- Vue.js 入门:从零开始做一个极简 To-Do 应用
Vue.js 入门:从零开始做一个极简 To-Do 应用 写作时间:2019-12-10版本信息:Vue.js 2.6.10官网文档:https://cn.vuejs.org/ 前言 学习 Vue ...
- Vue.js入门
之前一直用的是jQuery,jQuery手动操作DOM导致性能不够好,因为DOM修改导致的页面重绘.重新排版!重新排版是用户阻塞的操作,同时,如果频繁重排,CPU使用率也会猛涨! Vue.js是数据驱 ...
- Vue.js 入门指南之“前传”(含sublime text 3 配置)
题记:关注Vue.js 很久了,但就是没有动手写过一行代码,今天准备入手,却发现自己比菜鸟还菜,于是四方寻找大牛指点,才终于找到了入门的“入门”,就算是“入门指南”的“前传”吧.此文献给跟我一样“白痴 ...
- 一个Java程序猿眼中的前后端分离以及Vue.js入门
松哥的书里边,其实有涉及到 Vue,但是并没有详细说过,原因很简单,Vue 的资料都是中文的,把 Vue.js 官网的资料从头到尾浏览一遍该懂的基本就懂了,个人感觉这个是最好的 Vue.js 学习资料 ...
- vue.js 入门学习
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...
- [转]Vue.js 入门教程
本文转自:http://www.runoob.com/w3cnote/vue-js-quickstart.html 什么是 Vue.js? Vue.js 是用于构建交互式的 Web 界面的库. Vu ...
- Vue.js入门系列(一)
Vue官网: https://cn.vuejs.org/v2/guide/forms.html#基础用法 [入门系列] (一) http://www.cnblogs.com/gdsblog/p/78 ...
随机推荐
- Luogu 1111 修复公路(最小生成树)
Luogu 1111 修复公路(最小生成树) Description A地区在地震过后,连接所有村庄的公路都造成了损坏而无法通车.政府派人修复这些公路. 给出A地区的村庄数N,和公路数M,公路是双向的 ...
- jmeter-Java关于MD5加密方法 以及16位32位互转
MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致.是计算机广泛使用的杂凑算法之一(又译摘要算法.哈希算法),主流编程语言普遍已有MD5实现.将 ...
- 迭代器 Iterator
迭代器 Iterator 2016-5-7 可以这样说,迭代器统一了对容器的访问方式. 考虑这样的情景:原本是对着List编码,但是后来发现需要把相同的代码用于Set.我们需要一种不关心容器类型 而能 ...
- 玩玩微信公众号Java版之五:获取关注用户信息
在关注者与公众号产生消息交互后,公众号可获得关注者的OpenID(加密后的微信号,每个用户对每个公众号的OpenID是唯一的.对于不同公众号,同一用户的openid不同).公众号可通过本接口来根据Op ...
- MD5加密Demo
package com.util; import java.security.MessageDigest; public class MD5 { public final static String ...
- Result Maps collection does not contain value for...
出现上述错误 主要是因为你的select标签内部的resultMap属性指向的不正确 在sql文件中只要有一个resultMap或resultType属性指向错误,则在这个文件中其余正确的语句也不能执 ...
- spring是什么,Spring能帮我们做什么
1. spring是什么? Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发.应用程序是由一组相 ...
- R读取excel文件乱码 read.xlsx() 解决方法
1. 参考[R语言]R读取含中文excel文件,read.xlsx乱码问题 该文章总结得很好,可以直接跳到最后看博主的总结. 2. 如果依旧是乱码那么用read.xlsx2()去读取excel文件, ...
- POJ 2386 Lake Counting (简单深搜)
Description Due to recent rains, water has pooled in various places in Farmer John's field, which is ...
- MVC 网站部署常见问题汇总
一:TGIShare项目是一个MVC5的网站程序,部署在了IIS上,使用的Windows验证方式,并在本机设置了计划任务定时调用某个地址执行命令.问题汇总如下: 1.Window Server 200 ...