vue-数据绑定
<template>
<div class="container">
{{message}}
{{arr}}
<div v-text="innerText"></div>
<div v-html="innerHtml"></div>
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
export default {
name:"container",
data() {
return {
message:"我是vue",
arr:[1,2,3,4],
innerText: "我是文本",
innerHtml: "<b>我是加粗的</b>",
}
}
}
</script>
vue-属性绑定
<template>
<div class="container">
<button v-bind:title="title">按钮</button>
<button :title="title">按钮</button>
<div :class="banner"></div>
<div :class="{'add':true,'addcolor':isadd,'removecolor':!isadd}"></div>
<div :class="{'add':true,'addcolor':!isadd,'removecolor':isadd}"></div>
<div :style="{'border':'solid 1px #000','width':'100px','height':'100px'}"></div>
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
export default {
name:"container",
data() {
return {
title:"我是按钮",
banner:"banner",
isadd:true,
}
}
}
</script>
<style>
.banner{
width:100px;
height: 100px;
border:solid 1px red;
}
.add{
width: 100px;
height: 100px;
border: solid 1px #000;
}
.addcolor{
background-color: blue;
}
.removecolor{
background-color: red;
}
</style>
vue-循环渲染数据
<template>
<div class="container">
<ul>
<li v-for="(value,index) in person" :key="index">
<b>编号:{{index}}</b>
<b>姓名:{{value.name}}</b>
<b>年龄:{{value.age}}</b>
<b>姓名:{{value.sex}}</b>
</li>
</ul>
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
export default {
name:"container",
data() {
return {
person:[
{
name:"Lucy",
age:"15",
sex:"male"
},
{
name:"Linda",
age:"15",
sex:"female"
},
{
name:"Bob",
age:"15",
sex:"male"
}
}
}
}
</script>
vue-事件绑定
<template>
<div class="container">
<button v-on:click="clickbtn1">按钮1</button>
<button @click="clickbtn2">按钮2</button>
<div class="menu" @click.prevent="pipeclick">
<button @click.stop="pipeclick">冒泡</button>
</div>
<button @click="getThis">事件里面的this</button>
<button @click="getEvent">事件的event</button>
<ul @click="navmethod">
<li>我是第一个li</li>
<li>我是第二个li</li>
<li>我是第三个li</li>
</ul>
<ul>
<li @click.self="fun">
<span>我是里面的li</span>
</li>
</ul>
<div class="b1" @click.capture="funmeth(1)">
<div class="b2" @click.capture="funmeth(2)">
<div class="b3" @click.capture="funmeth(3)"></div>
</div>
</div>
<button @click.once="getchange">once</button>
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
export default {
name:"container",
data() {
return {
person:[
{
name:"Lucy",
age:"15",
sex:"male"
},
{
name:"Linda",
age:"15",
sex:"female"
},
{
name:"Bob",
age:"15",
sex:"male"
}
},
methods: {
clickbtn1() {
console.log("点击我");
},
clickbtn2() {
console.log("事件绑定的简写");
},
pipeclick() {
console.log("冒泡");
},
getThis() {
console.log(this);
},
getEvent(e) {
console.log(e);
console.log(e.target);
console.log(e.srcElement);
},
navmethod(e) {
let node = e.target;
if (node.nodeName.toLowerCase() == "li") {
console.log(node);
}
},
fun(e) {
console.log(e.target);
},
}
</script>
<style>
.menu {
width: 200px;
height: 200px;
border: 1px solid red;
}
.b1 {
width: 300px;
height: 300px;
border: 1px solid red;
}
.b2 {
width: 200px;
height: 200px;
border: 1px solid blue;
}
.b3 {
width: 100px;
height: 100px;
border: 1px solid green;
}
</style>
vue-数据双向
<template>
<div class="container">
<input type="text" @change="changeName" v-model="username" />
<input type="text" @change="changeName" :value="username" />
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
export default {
name:"container",
data() {
return {
username:"阿七",
}
},
method(){
changeName() {
console.log(this.username);
},
}
}
</script>
vue-ref 获取虚拟dom
<template>
<div class="container">
<button @click="getDom">获取dom元素操作</button>
<div ref="refele"></div>
</div>
</template>
// 当前模板的js
// name 指当前组件的名称
//data 函数里面带返回值 当前组件的数据源
<script>
import $ from "jquery";
export default {
name:"container",
data() {
return {
username:"阿七",
}
},
method(){
getDom() {
let refs = this.$refs.refele;
refs.innerHTML = "<b>获取dom</b>";
console.log(refs);
console.log($(refs));
$(refs).css({
width: 300,
height: 300,
border: "1px solid red"
});
}
}
</script>