created:在模板渲染成html前调用,即通常初始化某些属性值,然后再渲染成视图。
mounted:在模板渲染成html后调用,通常是初始化页面完成后,再对html的dom节点进行一些需要的操作。
其实两者比较好理解,通常created使用的次数多,而mounted通常是在一些插件的使用或者组件的使用中进行操作,比如插件chart.js的使用: var ctx = document.getElementById(ID);通常会有这一步,而如果你写入组件中,你会发现在created中无法对chart进行一些初始化配置,一定要等这个html渲染完后才可以进行,那么mounted就是不二之选。
下面看一个例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<title></title>
<script src="https://cdn.bootcss.com/vue/2.6.10/vue.js"></script>
</head>
<body>
<div id="wat">
<Demo/>
</div>
<script>
Vue.component("demo", {
data: function() {
return {
name: "",
age: "",
city: ""
}
},
template: `<ul>
<li id='name'>{{name}}</li>
<li>{{age}}</li>
<li>{{city}}</li>
</ul>`,
created: function() { // 钩子中初始化数据
this.name = "吹牛逼大王"
this.age = "25"
this.city = "广州"
var x = document.getElementById("name")
console.log(x.innerHTML); // 控制台打印错误
},
mounted: function() {
var x = document.getElementById("name")
console.log(x.innerHTML); // 控制台打印预期结果
}
});
var vm = new Vue({
el: "#wat"
})
</script>
</body>
</html>
留言与评论(共有 0 条评论) |