VUE 切换子组件元素可见性

Posted

技术标签:

【中文标题】VUE 切换子组件元素可见性【英文标题】:VUE Toggle child component element visibility 【发布时间】:2021-01-19 04:15:00 【问题描述】:

我正在尝试在子组件中使用 v-if 切换 span 元素的可见性。我基本上是在尝试将@click 切换(Vuetify)与 $refs 一起使用。对代码不是很精通,但我的研究没有找到解决方案。

家长

<v-switch label="hide manufacturer" @click="$refs.childComponent.hideManf()"></v-switch>

<child-component ref="childComponent" />


  components: 
    childComponent

子组件

<span v-if="spanManf">Name to Hide</span>

data() 
    return 
        spanManf: true
    ;
,
methods: 
        hideManf () 
        this.spanManf = !this.spanManf;
    

【问题讨论】:

【参考方案1】:

你应该在你的子组件中使用一个道具,并像这样从父组件传递数据。

<span v-if="visible">Name to Hide</span>

props: 
   visible:  type: Boolean, required: true 

然后在你的父母身上

<child-compoent :visible="spanManf" />

<v-switch label="hide manufacturer" @click="spanManf = !spanManf" />

data() 
   return 
      spanManf: true,
   

【讨论】:

我将 v-if="spanManf" 从您的代码更改为 v-if="visible" ,然后您的解决方案就起作用了。谢谢!

以上是关于VUE 切换子组件元素可见性的主要内容,如果未能解决你的问题,请参考以下文章

如何切换 VueJs 组件的可见性?

切换元素 onblur 和 onclick 的可见性

根据验证结果切换元素可见性

在 Visual C++ 中切换子进程窗口可见性而不重新启动子进程

动态切换表行的可见性 - bootstrap-vue

子组件如何在子组件初始化时控制父组件中自身的可见性?