感觉这种做法跟插入组件很相似
原理:创建一个实例,并挂载到一个元素上
官网上也有相关的描述
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no" />
<title>利用$mount插入节点的方法</title>
</head>
<body>
<div id="vueBox">
<p>感觉这种做法跟插入组件很相似</p>
<div id="here"> </div>
</div>
<script src="https://cdn.bootcss.com/vue/2.5.16/vue.min.js"></script>
<script type="text/javascript">
"use strict";
var vu = new Vue({
el: "#vueBox",
data: {
//数据
},
methods: {
//方法
funA: function() {
console.log("father funA")
},
addDom: function() {
var _this = this;
var Profile = Vue.extend({
template: '<div class="btn" @click="funA(\'TB\')">{{name}}</div>',
data: function() {
return {
name: "click me",
}
},
methods: {
funA: function(_who) {
console.log("son funA")
_this.funA(_who)
}
}
})
new Profile().$mount("#here")
}
},
created: function() {
//创建
},
mounted: function() {
//安装
var _this = this
_this.addDom()
},
});
</script>
</body>
</html>