Vue.js 入坑笔记
Vue.js 入坑笔记
Part1
//阻止事件冒泡 也可使用@click.stop="show($event)"
new Vue({
el: '#box',
data:{},
methods:{
show:function(ev){
alert(ev.clientX); //事件对象
ev.cancelBubble = true;
},
show2:function(){
alert(2)
}
}
})
//键盘事件 @keydown="show" @keyup
//ev.keyCode
//判断按键 @keyup.13="show()" @keyup.enter="show()"
//默认行为 禁用右键
@contextmenu="show($event)"
show:function(ev){
ev.preventDefault();
}
//@contextmenu.prevent="show()"
vue交互(vue-resource.js)
new Vue({
el:'body',
data:{
},
methods:{
get:function(){
this.$http.post('a.txt',{
a:1,
b:2
},{
emulateJSON:true
}).then(function(res){
alert(res.data);
},function(res){
alert(res.data);
});
}
}
});
属性绑定 v-bind:
v-for="(k,v) in json"
渲染一次 {{*msg}}
不转义标签 {{{msg}}}
过滤器 {{12|currency '¥'}}
vue.js留言板(基于1.0.21)
<!DOCTYPE HTML>
<html lang="en-US">
<head>
<meta charset="UTF-8">
<title>VUE1.0 留言板</title>
<link rel="stylesheet" href="lib/bootstrap.min.css">
<script
src="https://code.jquery.com/jquery-1.12.4.min.js"
integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ="
crossorigin="anonymous"></script>
<script src="https://cdn.bootcss.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="http://libs.cdnjs.net/vue/1.0.21/vue.min.js"></script>
</head>
<body>
<div class="container" id="box">
<form role="form">
<div class="form-group">
<label for="name">用户名</label>
<input type="text" class="form-control" id="name" v-model="name">
</div>
<div class="form-group">
<label for="age">年龄</label>
<input type="text" class="form-control" id="age" v-model="age">
</div>
<div class="form-group">
<input type="button" value="添加" class="btn btn-primary" id="age" @click="add()">
<input type="reset" value="重置" class="btn btn-danger">
</div>
</form>
<hr>
<table class="table table-bordered table-hover">
<caption class="h3 text-info">信息表</caption>
<tr class="text-danger">
<th class="text-center">序号</th>
<th class="text-center">名字</th>
<th class="text-center">年龄</th>
<th class="text-center">操作</th>
</tr>
<tr class="text-center" v-for="item in lists">
<td>{{$index+1}}</td>
<td>{{item.name}}</td>
<td>{{item.age}}</td>
<td>
<button class="btn btn-primary btn-sm" data-toggle="modal" data-target="#layer" @click="nowIndex=$index">删除</button>
</td>
</tr>
<tr v-show="lists.length!=0">
<td colspan="4" class="text-right">
<button class="btn btn-danger btn-sm" @click="nowIndex=-2" data-toggle="modal" data-target="#layer">删除全部</button>
</td>
</tr>
<tr v-show="lists.length==0">
<td colspan="4" class="text-center text-muted">
<p>暂无数据</p>
</td>
</tr>
</table>
<div role="dialog" class="modal fade bs-example-modal-sm" id="layer">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">
<span>×</span>
</button>
<h4 class="modal-title">确认<span v-show="nowIndex==-2">全部</span>删除么?</h4>
</div>
<div class="modal-body text-right">
<button data-dismiss="modal" class="btn btn-primary btn-sm">取消</button>
<button data-dismiss="modal" class="btn btn-danger btn-sm" @click="del(nowIndex)">确认</button>
</div>
</div>
</div>
</div>
</div>
<script type="text/javascript">
window.onload = function(){
new Vue({
el:'#box',
data:{
lists:[{name:'11', age:11},{name:'22', age:22}],
name:'',
age:'',
isAll:0,
nowIndex:-1
},
methods:{
add:function(){
this.lists.push({
name:this.name,
age:this.age
});
this.name='';
this.age='';
},
del:function(n){
if(n==-2){
this.lists = [];
}else{
this.lists.splice(n, 1);
}
}
}
})
}
</script>
</body>
</html>