自定义事件绑定 使用$emit回调事件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>组件命名规范</title>
<script src="https://cdn.bootcss.com/vue/2.6.6/vue.min.js"></script>
</head>
<body>
<div id="App">
<button-counter v-on:even-text="mybutton" :title="props[0].title"></button-counter>
</div>
</body>
<script>
//传入字符串
Vue.component("button-counter",
{
props:["title"],
template:`
<button style="color: red" @click="$emit('even-text')">{{title}}</button>
`
})
new Vue({
el:"#App"
,data:function () {
return{
props:[
{
id:1,
title:"你的烂借口"
},
{
id:2,
title:"蜡笔没了小新"
}
],
count:1
}
},
methods:{
mybutton:function () {
console.log("自定义动态事件绑定")
}
}
})
</script>
</html>
组件数据双向绑定:v-model
-
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>组件命名规范</title> <script src="https://cdn.bootcss.com/vue/2.6.6/vue.min.js"></script> </head> <body> <div id="App"> <h2>{{checked}}</h2> <base-checkbox v-model="checked"></base-checkbox> </div> </body> <script> Vue.component('base-checkbox', { model: { prop: 'checked', event: 'change' }, props: { checked: Boolean }, template: ` <input type="checkbox" v-bind:checked="checked" v-on:change="$emit('change', $event.target.checked)" > ` }) var app = new Vue({ el: "#App" , data: function () { return { props: [ { id: 1, title: "你的烂借口" }, { id: 2, title: "蜡笔没了小新" }, ], count: 1, checked: true } }, methods: { mybutton: function () { console.log("自定义动态事件绑定") } } }) </script> </html>