vue注意项
1.通过官方vue生命周期图,总结其中的几个钩子函数
var vm = new Vue({
el: '#app',
data: {
},
beforeCreate() {
alert('组件刚刚被创建,但是没有赋予任何属性,和方法');
},
created() {
alert('我是在创建对象之后调用');
},
// beforeCompile和compiled这两个生命钩子函数在2.0之后被created函数代替
/* beforeCompile() {
alert('我是在编译之前调用的');
},
compiled() {
alert('我是在编译之后调用的');
},*/
beforeMount() {
alert('我是挂载之前');
},
// ready()函数被替换成了mounted
mounted() {
this.$nextTick(function () {
alert('节点完全插入到了dom元素中');
})
},
beforeDestroy() {
alert('对象销毁之前调用');
},
beforeUpdate(){
alert('组件更新之前')
},
updated(){
alert('组件更新完毕');
},
destroyed() {
alert('对象销毁');
}
})
2.计算属性
计算属性根据字面意思就是一种属性,而写法看起来却像是一个函数,这个会给人一种误导,所以这一点需要注意,这个属性只是根据返回结果来的。注意计算属性一定要有return
计算属性对象中,有两个函数get(),set(),一般默认的直接返回是调用了其中的get()函数
<script>
var vm = new Vue({
el: '#app',
data: {
beforeAge: 10
},
computed: {
/*age:function() {
return this.beforeAge+1
}*/
//ES6写法
/*age(){
return this.beforeAge+1;
}*/
age: {
get() {
return this.beforeAge + 1;
},
set() {
// 这样是改变不了自己的,因为在get()中返回值是依赖于beforeAge属性的
return 20;
}
}
}
})
</script>
3.在moutend生命钩子加载之前,可能由于网络原因,页面渲染的时候,会出现花括号,这种给人的体验就是非常糟糕的,vue中提供了一种解决这个的方法,就是在挂载点中加一个属性v-cloak
<!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>
[v-cloak] {
display: none;
}
</style>
</head>
<body>
<div id="app" v-cloak>
<p>{{beforeAge}}</p>
<p>{{age}}</p>
</div>
</body>
....
3.vue简单实例方法
<script>
var vm = new Vue({
// el: '#app',
data: {
age: 10
},
say(){
alert('我是自定义方法');
}
})
vm.$mount('#app'); //这个是手动将vue实例化后的对象挂载到dom中
console.log(vm.$el) //这个是获取挂载点元素
console.log(vm.$data) //这个是获取整个对象中的数据
vm.$options.say(); //这个是调用vue中自定义方法,而不是methods中的方法,也可以调用自定义属性
</script>
4.在旧的版本中,v-for循环如果不加:key时,重复数据不让添加,但在目前最新版本中,已经解决这个问题,可以直接使用v-for

浙公网安备 33010602011771号