将Vue组件包装到另一个Vue组件中

问题描述 投票:0回答:1

我有一个补充工具栏组件,我想使用两次,但是其中包含其他组件。

我真的很想这样工作:

<template>
  <Sidebar class="left-0">
    <ExampleComponentA/>
  </Sidebar>
  <Content/>
  <Sidebar class="right-0">
    <ExampleComponentB/>
  </Sidebar>
</template>

Vue是否有可能,或者我真的需要一个SidebarLeft和一个SidebarRight组件吗?

<template>
  <SidebarLeft class="left-0"/> <!-- <ExampleComponentA/> is in this Component -->
  <Content/>
  <SidebarRight class="right-0"/> <!-- <ExampleComponentB/> is in this Component -->
</template>

我为什么要那样做?

嗯,我的补充工具栏的设置是相同的,只是content不同。因此,我不需要重复孔补充工具栏。

javascript vue.js components
1个回答
1
投票
这里是一个沙箱示例:link

尝试使用slots实现相同的效果。

// App.vue (Parent component) <template> <div id="app"> <HelloWorld msg="Hello Vue in CodeSandbox!"> <random slot="random"/> // Component 2 being called inside Component 1 </HelloWorld> </div> </template> <script> import random from "./components/random"; import HelloWorld from "./components/HelloWorld"; export default { name: "App", components: { HelloWorld, random } }; </script> // HelloWorld.vue (Component 1) <template> <div class="hello"> <h1>{{ msg }}</h1> <slot name="random"></slot> </div> </template> <script> export default { name: "HelloWorld", props: { msg: String } }; </script> // random.vue (Component 2) <template> <div>I am random</div> </template>

© www.soinside.com 2019 - 2024. All rights reserved.