点击vue路由视图中的一个按钮,怎么拿到包含路由视图的那个dom结构

<template>
    <section ref="page">
        <router-view></router-view>
    </section>
</template>

当路由视图为a.vue时,怎么才能点击a.vue中的一个按钮后取到this.$refs.page

阅读 2.8k
4 个回答

谢邀!
通过props就可以!简单给您做了一个demo:

<template>
  <div class="hello" ref="page">
    <router-view :target="'page'"></router-view>
    <router-link to="/hello">跳转到HelloWorld</router-link>
  </div>
</template>

<script>
import '../assets/css/style.scss'
export default {
  name: 'Index'
}
</script>

clipboard.png

<template>
  <div>
    Hello Wolrd
  </div>
</template>

<script>
export default {
  props: [
    'target'
  ],
  mounted () {
    console.log(this.$parent.$refs[this.target])
  }
}
</script>

clipboard.png
结果如下:

clipboard.png

父子组件交互

用全局变量 可以绑定到Vue实例上 this.$el = this.$refs 子组件console.log(this.$el)
或者用vuex

this.$el.parentNode这就完了。
$el本身就是当前组件dom,直接取parentNode

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题