1.v-model的作用是?请使用v-model写出一个demo
作用
在表单 <input>、<textarea> 及 <select> 元素上创建双向数据绑定。它会根据控件类型自动选取正确的方法来更新元素。尽管有些神奇,但 v-model 本质上不过是语法糖。它负责监听用户的输入事件以更新数据,并对一些极端场景进行一些特殊处理。
<input type="text" v-model="msg"/> {{msg}}
2.使用v-for循环写出一个demo
v-for当需要将一个数组遍历或枚举一个对象属性时使用该指令
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<ul>
<li v-for="tips in foods">{{tips.name}}</li>
</ul>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'#app',
data:{
//每个对象对应一个li
foods:[
{name:'fruit'},
{name:'vegetable'},
{name:'dessert'}
]
}
})
</script>
</body>
</html>
3.使用v-bind,v-on写出一个demo
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.box{
height: 100px;
width: 100px;
margin: 20px;
background-color: rgb(243, 42, 86);
}
.blueBtn{
background-color: rgb(42, 136, 243);
}
</style>
</head>
<body>
<div id="wrap">
<p>点击下方色块会切换成蓝色</p>
<div id="app" class=box :class="{blueBtn:isBlue}" @click="changeBackground">
</div>
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
var app = new Vue({
el:'#app',
data:{
isBlue:false
},
methods:{
changeBackground:function(){
this.isBlue = !this.isBlue
}
}
})
</script>
</body>
</html>
4.v-if,v-else,v-show,v-text,v-html,v-on,v-bind,v-once,v-cloak的作用分别是什么?
v-if: 根据表达式的值的真假条件渲染元素。在切换时元素及它的数据绑定 / 组件被销毁并重建。如果元素是 <template> ,将提出它的内容作为条件块。当条件变化时该指令触发过渡效果。当和 v-if 一起使用时,v-for 的优先级比 v-if 更高,只渲染变化的元素。
提供key值可以决定是否复用该元素
v-else: 否则v-else 元素必须紧跟在带 v-if 或者 v-else-if 的元素的后面,否则它将不会被识别。
v-show: 根据条件展示元素,不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS 属性 display。
注意:v-show 不支持 <template> 元素,也不支持 v-else
v-text: 解析文本 和{{ }} 作用一样
v-html: 解析html
v-on: 它用来绑定事件监听器
v-bind: 基本用途是动态更新 HTML 元素上的属性,比如 id 、class 等
v-once: 只渲染元素和组件一次。随后的重新渲染,元素/组件及其所有的子节点将被视为静态内容并跳过。这可以用于优化更新性能。
v-cloak: 解决初始化慢导致的页面闪动。[v-cloak] { display: none }一起用,这个指令可以隐藏未编译的 Mustache 标签直到实例准备完毕。