方法一:一层层的调用。
Vue父组件:
<router-view :table_list_all="table_list_all" @get_all_order="get_all_order"></router-view> // 获取所有的菜单属性 get_all_order () { console.log('get_all_order') })
Vue子组件
<modal @get_all_order="get_all_order" @close="closeModal" ></modal> get_all_order () { # 调用父组件的get_all_order, 加上return是返回,让子子组件调用 return this.$emit('get_all_order') },
Vue子子组件:
# 调用父组件的get_all_order this.$emit('get_all_order')
方法二:使用provide/inject组件:
父组件
provide () { return { reload: this.reload } }, methods: { reload () { this.isRouterAlive = false this.$nextTick(function () { this.isRouterAlive = true }) } },
子组件,或者孙子组件都可以:
export default { name: 'order_assessor', inject: ['reload'], data () { return { tableData: [] } }, methods: { delete_assessor (index, row) { this.reload() } } }