v-bind :用来动态绑定标签上的属性的值 简写 ":"
<template>
<div>
<h1>v-bind</h1>
<p>{{ name }}</p>
<img :src="imgSrc" alt="" />
</div>
</template>
<script>
export default {
data() {
return {
name: "尤大大",
imgSrc: "https://inews.gtimg.com/newsapp_bt/0/14841144507/1000",
};
},
};
</script>
v-for :列表渲染,所在标签结构,按照数据数量,循环生成
<li v-for="(value, propName) in list" :key="propName">
<a href="#">{{ value.title }}</a>
</li>
</div>
</template>
<script>
export default {
data() {
return {
obj: { a: 1, b: 2 },
arr: [
{ id: 1, name: "小花" },
{ id: 2, name: "小明" },
],
list: [
{ id: 1, title: "新闻1" },
{ id: 2, title: "新闻2" },
],
};
},
};
</script>
v-text :添加内容,不能识别标签 /v-html:添加内容,可以识别标签
<template>
<div>
<h1>v-text v-html</h1>
<p v-html="str"></p>
<p v-text="str"></p>
</div>
</template>
<script>
export default {
data() {
return {
str: "<i>标签</i>",
};
},
};
</script>
v-show/v-if;v-show:利用cs3样式设置display显示隐藏/v-if:没有生成这个标签,所有不可见
<template>
<div>
<h1>v-if v-show</h1>
<p v-show="isOK">v-show</p>
<p>v-if</p>
</div>
</template>
<script>
export default {
data() {
return {
isOK: false,
};
},
};
</script>
v-if-else:多分支语句
template>
<div>
<h2>v-if-else</h2>
<p v-if="mark > 80">优秀</p>
<p v-else-if="mark >= 60">一般</p>
<p v-else>不及格</p>
</div>
</template>
<script>
export default {
data() {
return {
mark: 60,
};
},
};
</script>
v-on和methods:
v-on 给元素绑定事件 简写@
methods 是一个对象在对象中定义函数
<template>
<div>
<h1>v-on和methods</h1>
<p>num:{{ num }}</p>
<button @click="num = 2">执行少量代码</button>
<button @click="fn">执行methods中的函数</button>
<button @click="fn2(100)">执行methods中的函数,传入实参</button>
<button @click="num *= 2">num * 2</button>
<button @click="fn3">this</button>
</div>
</template>
<script>
export default {
data() {
return {
num: 1,
};
},
methods: {
fn: function () {
console.log("fn");
},
fn2(n) {
console.log(n);
},
fn3(n) {
console.log(this.fn());
},
},
};
</script>
v-on事件对象; vue事件处理函数中, 拿到事件对象
<template>
<div>
<h1>事件对象</h1>
<a @click="fn" href="http://www.baidu.com">无参</a>
<hr />
<a @click="fn1(100, $event)" href="http://www.baidu.com">有参</a>
</div>
</template>
<script>
export default {
methods: {
fn(e) {
e.preventDefault();
},
fn1(n, e) {
e.preventDefault();
},
},
};
</script>
v-on事件修饰符
语法:<标签 @事件名.修饰符="methods里函数" />
.stop 阻止事件冒泡
.prevent 阻止默认行为
.once 程序运行期间,值触发一次事件处理函数
<template>
<div @click="fnFather">
<h1>v-on事件修饰符</h1>
<button @click.stop="fn">阻止冒泡</button>
<hr />
<a @click.prevent="fn" href="http://www.baidu.com">我是啊</a>
<hr />
<button @click.once="fn">只触发一次</button>
</div>
</template>
<script>
export default {
methods: {
fn() {
console.log("按钮点击了");
},
fnFather() {
console.log("父元素 点击了");
},
},
};
</script>
v-on按键修饰符
目标: 给键盘事件, 添加修饰符, 增强能力
@keyup.xxx - 监测按键
<template>
<div>
<h1>v-on按键修饰符</h1>
<input @keyup.enter.shift="fn" type="text" />
<hr />
<input @keyup.esc="fn" type="text" />
</div>
</template>
<script>
export default {
methods: {
fn() {
console.log("键盘抬起了");
},
},
};
</script>
v-model双向绑定
目标:把value属性和vue数据变量,双向绑定在一起
语法:v-model="data数据变量"
<template>
<div>
<h1>v-model双向绑定</h1>
<input v-model="name" type="text" />
<hr />
</div>
</template>
<script>
export default {
data() {
return {
name: "小花",
};
},
};
</script>