- 在new出来的vue对象里,如果想要获取data上的数据,或者调用methods中的方法,必须通过this.进行访问,this表示new出来的实例对象。
- 实例会监听自己身上data中所有数据的改变,只有数据一发生变化,就会自动把新数据从data同步到页面上。减少重新渲染,减少dom操作
- 箭头函数 =》,内部的this总是和外部的this同步
<div id="app"> <p v-cloak>{{ msg }}</p> <input type="button" value ='动一动' v-on:click='start'> <input type="button" value="停停停" v-on:click='stop'> </div> <script > var vm = new Vue({ el:'#app', data:{ msg:'来~呀~快~活~呀~~!!', interval:null }, methods:{ start(){ if (this.interval!=null) {return;}//防止多次点击动一动导致的变速问题 this.interval=setInterval(() => { var begin=this.msg.substring(0,1); //剪切字符串,首尾拼接 var end=this.msg.substring(1); this.msg=end+begin; },400) }, stop(){ clearInterval(this.interval); //清除计时器,重置null this.interval=null; } } }) </script>
总结
- this问题,vm中的data数据必须通过this访问
- function(){}和箭头函数的this不同
-
var interval=setInterval(function(){},400),clearInterval(interval);句式
- string.substring(1,2),substring(start,end)方法用于提取字符串中介于两个指定下标之间的字符,子串包括 start 处的字符,但不包括 stop 处的字符。如果参数 start 与 stop 相等,那么该方法返回的就是一个空串(即长度为 0 的字符串)。如果 start 比 stop 大,那么该方法在提取子串之前会先交换这两个参数。start和end不接受负数。