您好,登錄后才能下訂單哦!
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./vue.js"></script>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
//這里綁定的事件是指的自定義事件
<child @click="handleClick"></child>
</div>
<script type="text/javascript">
Vue.component("child", {
//這里綁定的事件是指的原生的事件
template: "<div @click='handleChildClick'>I am a child</div>",
methods: {
handleChildClick: function() {
alert("childClick");
//想觸發父組件的handleClick必須這樣做:
this.$emit("click")
}
}
});
var vm = new Vue({
el: "#root",
methods: {
handleClick: function() {
//此處不能觸發<child @click="handleClick"></child>綁定的handleClick事件,因為這是自定義事件
alert("fatherClick");
}
}
})
</script>
</body>
</html>
但是,像上面這種寫法太麻煩,有時候就想在child(原生組件)監聽,可以加上.native:
<!DOCTYPE html>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="./vue.js"></script>
<!-- <script src="http://cdn.staticfile.org/vue/2.6.10/vue.common.dev.js"></script> -->
</head>
<body>
<div id="root">
//加了.native可以觸發handleClick <br>
<child @click.native="handleClick"></child>
//不加.native無法觸發handleClick <br>
<child @click="handleClick"></child>
</div>
<script type="text/javascript">
Vue.component("child", {
//這里綁定的事件是指的原生的事件
template: "<div>I am a child</div>",
});
var vm = new Vue({
el: "#root",
methods: {
handleClick: function() {
//此處不能觸發<child @click="handleClick"></child>綁定的handleClick事件,因為這是自定義事件
alert("fatherClick");
}
}
})
</script>
</body>
</html>
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。