是的,这里有很全的vue指令使用~
1.简单的vue应用
vue作为一个mvvm框架,想想为什么叫做mvvm?
Model是负责数据的存储,
View负责页面的展示
Model View
负责业务逻辑处理,对数据加工后视图展示
MVVM的作用是业务逻辑代码与视图代码完全分离,各自的职责更加清晰~
<body>
<!--mvvm里面的v-->
<div id="app">
{{val}}
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'你好'
}
})
</script> </body
2.v-text
<div id="app" v-text="val">
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'你好'
}
})
</script>
视图:
这里的v-text是偏向于文本的,如果你将 val:'你好'改成val:'<p style="color:red">你好</p>'
视图是
所以接下来就是介绍v-html
3.v-html
<body>
<!--mvvm里面的v-->
<div id="app" v-html="val">
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'<p style="color:red">你好</p>'
}
})
</script>
</body>
视图:
v-text是把所有的都以文本的形式展现,而v-html能够解析里面的标签~
4 v-cloak
平常我们的数据都是用{{}}渲染出来的,那么这样的渲染与v-html和v-text有什么区别呢?
在网络不行的情况下,我们用{{}}的形式渲染会出现闪现{{}},再出现数据,所以将这个指令放在要渲染的标签的父元素上就可以,还要记得写样式display:none当然你可以放在刚开始vue定义的范围的标签上
<style>
[v-cloak]{
display: none
}
</style>
</head>
<body>
<!--mvvm里面的v-->
<div id="app" v-cloak>
{{val}}
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'你好'
}
})
</script> </body>
5.v-for
<div id="app">
<div v-for="(el,index) in dataList">
<p>名字:{{el.name}}</p>
<p>年龄:{{el.age}}</p>
</div>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
//这是mvvm里面的vm
var vm = new Vue({
el: '#app',
//这是mvvm里面的m
data: {
val: '你好',
dataList:[
{
name:'jack',
age:
},
{
name:'rose',
age:
}
]
}
})
</script>
这里要注意的是:
一般都加上:
<div v-for="(el,index) in dataList" :key="index" >
<p>名字:{{el.name}}</p>
<p>年龄:{{el.age}}</p>
</div>
:key="index" 或者如果el里面有id 的话可以写:key="el.id" 这样来区分每一个list,因为在渲染的时候都是整个list渲染的,加上这个就只用替换,或者说是局部的变化
6.v-on
<div id="app">
<button type="button" v-on:click="clickMe()">爱我你就点点我</button>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'你好'
},
methods:{
clickMe(){
alert(this.val)
} }
})
</script>
v-on:click="clickMe()" 简写:click="clickMe()"就可以了
这里的this代表的就是vm啦,你直接用vm.val也是一样的
视图:
7.v-if
<body>
<!--mvvm里面的v-->
<div id="app">
<p v-if="val=='你好'">
Good boy
</p>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script >
//这是mvvm里面的vm
var vm=new Vue({
el:'#app',
//这是mvvm里面的m
data:{
val:'你好'
}
})
</script> </body>
视图:
v-if和v-show的区别,v-show只是hidden,v-if是直接元素消失......