1:概念
这是一款渐进式框架,几乎消除了DOM操作。
mvvm是前端视图层的开发思想,主要把页面分成了M,V,VM,其中VM是MVVM思想的核心,因为VM是M和V之间的调度着
这里的M保存的是每个页面中单独的数据 ,V就是每个页面中的html结构,VM是一个调度着,分割了M和V,每当V层想要获取和保存数据的时候,都要VM做中间的处理。
前端页面中使用MVVM的思想主要是为了让我们开发更加方便,因为MVVM 提供了数据的双向绑定;
注意:数据的双向绑定是我们的VM提供的
优点:
vue用来开发单页面应用效率是比较高的,速度快,减小服务器压力。
缺点:
初次加载时间比一般页面稍微长一点点,不利于SEO(搜索引擎优化)。
2.内容
el:表示当前我们new的这个vue 实例,要控制也页面上的哪个区域,例如:el:’#id’表示我们选择id为“id”的html元素。
data: data属性中存放的el中要用到的数据,通过vue提供的指令,很方便的把数据渲染到页面中(即渲染差值表达式
中的内容)。
methods:这里面可以定义方法。
3.一些指令
v-cloak:可以解决差值表达式中的闪烁问题。
v-text:无闪烁内容,但会覆盖元素中原本的内容。
v-html:可以存放元素,不会被覆盖。
v-on:事件绑定机制,简写为@。
一个实用性代码:跑马灯效果
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<div id="app">
<input type="button" id="" value="浪起来" @click="lang"/>
<input type="button" id="" value="冷静" @click="stop"/>
<h4>{{msg}}</h4>
</div>
<script src="../js/vue2.0.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript">
new Vue({
el:'#app',
data:{
msg:'猥琐发育,别浪!!!',
jishi:null
},
methods:{
lang(){
if(this.jishi!=null)return;
this.jishi =setInterval(() =>{
var start = this.msg.substring(0,1)
var end = this.msg.substring(1)
this.msg = end+start
},400)
},
stop(){
clearInterval(this.jishi),
this.jishi=null
}
}
})
</script>
</body>
</html>
第一天总结:
当我们在new出的VUE实例中。如果想要获取data上的数据,或者调用methods中方法,必须通过this.数据属性或this.方法名来进行访问,并且会监听自己身上data中所有数据的改变,只要数据一发生变化,就会自动把最新的数据,从data上同步到页面中去,好处就是程序员只需要关心数据,不需要考虑如何重新渲染DOM。