App.vue
<template>
<div id="app">
<!-- @btnClick="btnClick" 直接给子组件传入自定义的事件-->
<me href="https://www.baidu.com" title="百度一下" content="百度" @btnClick="btnClick"/>
<me href="https://www.jd.com" title="京东" content="京东商城" @btnClick="btnClick"/>
<me href="https://www.taobao.com" title="淘宝" content="淘宝网" @btnClick="btnClick"/>
</div>
</template>
<script>
import me from './components/Menu'
export default {
name: 'App',
components: {
me
},
methods:{
btnClick(msg){
console.log(msg);
}
},
}
</script>
<style scoped>
</style>
Menu.vue
<template>
<div>
<p>
菜单项:
<a :href="href" :title='title' target="_blank">{{content}}</a>
<button @click="doClick">按钮</button>
</p>
</div>
</template>
<script>
export default {
name: 'mu',
data () {
return {
}
},
methods:{
doClick(){
console.log('do click');
//当父容器是使用@btnClick动态传入的自定义事件(此时props中也无须定义需要接收的事件了),则需要这么调用
//使用编程式方式直接触发事件
this.$emit('btnClick','aaaa');
}
},
//props表示可以从外部(父组件)传入的属性,
// props中定义的属性可以作为元素自身的data和method属性来使用
props:['href','title','content']
}
</script>
<style scoped>
</style>
App.vue
<template>
<div id="app">
<!-- refs编程式绑定自定义事件 -->
<me href="https://www.baidu.com" title="百度一下" content="百度" ref="m1"/>
<me href="https://www.jd.com" title="京东" content="京东商城" ref="m2"/>
<me href="https://www.taobao.com" title="淘宝" content="淘宝网" ref="m3"/>
</div>
</template>
<script>
import me from './components/Menu'
export default {
name: 'App',
components: {
me
},
methods:{
btnClick(msg){
console.log(msg);
}
},
mounted(){
this.$refs.m1.$on('btnClick',this.btnClick);
this.$refs.m2.$on('btnClick',this.btnClick);
this.$refs.m3.$on('btnClick',this.btnClick);
}
}
</script>
<style scoped>
</style>
Menu.vue
template>
<div>
<p>
菜单项:
<a :href="href" :title='title' target="_blank">{{content}}</a>
<button @click="doClick">按钮</button>
</p>
</div>
</template>
<script>
export default {
name: 'mu',
data () {
return {
}
},
methods:{
doClick(){
console.log('do click');
//当父容器是使用@btnClick动态传入的自定义事件(此时props中也无须定义需要接收的事件了),则需要这么调用
//使用编程式方式直接触发事件
this.$emit('btnClick','aaaa');
}
},
//props表示可以从外部(父组件)传入的属性,
// props中定义的属性可以作为元素自身的data和method属性来使用
props:['href','title','content']
}
</script>
<style scoped>
</style>


阅读排行


Copyright © 叮叮声的奶酪 版权所有
备案号:鄂ICP备17018671号-1