Vue基础,数据绑定,事件绑定
<template><div id="app">
<!-- 1.{{msg}}绑定数据-->
<h2>你好vue--{{msg}}</h2>
<br />
这是一个根组件
<br />
<h3>{{obj.name}}</h3>
<br />
<hr />
<!--2.数组循环遍历-->
<ul>
<li v-for="(item,index) in list">
<!-- index获取索引值-->
{{index}}--{{item}}
</li>
</ul>
<!--2.1数组嵌套遍历-->
<ul>
<li v-for="item in list1">
{{item.cate}}
<ol>
<li v-for="cars in item.list">{{cars.title}}</li>
</ol>
</li>
</ul>
<br />
<hr />
<!--3.条件判断-->
<p v-if="no">现在你看到我了</p>
<p v-if="true">现在你看到我了</p>
<p v-if="ok">现在你看到我了</p>
<br />
<hr />
<!--4.数据绑定-->
<div v-bind:title="title">鼠标瞄上可以显示</div>
<img src="//www.baidu.com/img/xinshouyedong_4f93b2577f07c164ae8efa0412dd6808.gif" alt />
<img :src="src" alt />
<!--4.数据绑定v-bind:可以简写为:-->
<br />
<hr />
<!--5.html绑定-->
<div v-html="h"></div> <!--解析成html输出-->
<br />
<hr />
<!--6.class绑定-->
<div v-bind:class="{\'blue\':ok}">我是一个div :class控制</div>
<!--6.1.class绑定-->
<ul>
<li v-for="(item,index) in list" :class="{\'blue\':index==0}">
<!-- index获取索引值-->
{{index}}--{{item}}
</li>
</ul>
<br />
<hr />
<!--7.style对象绑定--> <!--也可以是内联样式-->
<div v-bind:style="styleObject">我是一个div :style控制</div>
<br />
<hr />
<!--8.双向数据绑定及事件绑定 -->
<h2>{{msg}}</h2>
<input type="text" v-model="msg" /> <!--input和h2里的msg值同时变化-->
<button v-on:click="getMsg()">获取表单里面的数据get</button> <!--v-on:可以简写为@-->
<button @click="setMsg()">设置表单的数据set</button>
<br />
<input type="text" ref="userinfo" />
<br />
<div ref="box">我是一个box</div>
<br />
<button v-on:click="getInputValue()">获取第二个表单里面的数据</button>
<br /> <br />
<button @click=\'requestData()\'>请求数据</button>
<p>--------------------------------</p>
<ul>
<li v-for="item in list0"> <!--点击请求数据,在li里出现-->
{{item}}
</li>
</ul>
<button @click="deleteData(111)">执行方法传值111</button> <!--可添加事件及按键修饰符:@click.stop ... -->
<button data-aid="自定义的属性" @click="event($event)">事件对象</button>
<br>
<hr>
<!-- 9.todoLis待办事项t添加删除修改状态--> <!--用双向数据绑定-->
<input type="text" v-model="todo" @keydown="doAdd($event)"> <!--事件对象对enter键执行doAdd事件-->
<button @click="doAdd()">+增加</button>
<br>---------------------------------
<h2>进行中</h2>
<ul>
<li v-for="(item,index) in list3" v-if="!item.checked">
<input type="checkbox" v-model="item.checked"> {{item.title}}-- <button @click="doRemove(index)">-删除</button>
</li>
</ul>
<h2>已完成</h2>
<ul>
<li v-for="(item,index) in list3" v-if="item.checked">
<input type="checkbox" v-model="item.checked"> {{item.title}}-- <button @click="doRemove(index)">-删除</button>
</li>
</ul>
</div>
</template>
<script>
export default {
name: "app",
data() {
//业务逻辑里面定义的数据,可以是属性,对象,数组。。。
return {
ok: true,
no: false,
msg: "你好vue",
obj: {
name: "Jack"
},
list: ["111", "222", "333"],
list1: [
{
cate: "汽车品牌",
list: [{ title: "大众" }, { title: "奥迪" }]
},
{
cate: "汽车品牌",
list: [{ title: "大众" }, { title: "奥迪" }]
}
],
title: "我是一个title",
src:
"//www.baidu.com/img/xinshouyedong_4f93b2577f07c164ae8efa0412dd6808.gif",
h: "<h2>我是h2</h2>",
styleObject: {
color: "red",
fontSize: "22px"
},
list0:[],
todo:\'\',
list3:[{
title:\'学习vue\',
checked:false,
}],
};
},
methods: {
/*放方法的地方*/
getMsg() {
// alert(\'vue方法执行了\');
//方法里面获取data里面的数据
alert(this.msg);
},
setMsg() {
this.msg = "我是改变后的数据";
},
getInputValue() {
console.log(this.$refs.userinfo);
this.$refs.box.style.background = "red";
//获取ref定义的dom节点
alert(this.$refs.userinfo.value);
},
requestData(){
for(var i=0;i<=4;i++){
this.list0.push(\'我是第\'+i+\'条数据。\');
}
},
deleteData(d){
alert(d);
},
event(e){
// e.srcElement 获取dom节点
e.srcElement.style.background=\'red\';
alert(e.srcElement.dataset.aid); //打印自定义属性的值
},
doAdd(){
//获取文本框输入的值 再把文本框的值push到list3 用对象来判断改变状态
this.list3.push({
title:this.todo,
checked:false
});
//push完之后初始化todo的值
this.todo=\'\';
},
doAdd(e){
if(e.keyCode==13){
this.list3.push({
title:this.todo,
checked:false
});
//push完之后初始化todo的值
this.todo=\'\';
}
},
doRemove(index){
// alert(index)
this.list3.splice(index,1);
},
}
};
</script>
<style lang="css">
.blue {
color: blue;
color: red;
}
*{
list-style: none;
}
</style>
以上是 Vue基础,数据绑定,事件绑定 的全部内容, 来源链接: utcz.com/z/376530.html