首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何从其他组件加载vuejs动态组件

如何从其他组件加载vuejs动态组件
EN

Stack Overflow用户
提问于 2017-04-25 09:53:12
回答 1查看 2.6K关注 0票数 1

我使用的是laravel和vuejs2,如您所知,我们可以使用动态组件和当前视图变量加载组件

现在我用这个方法加载了一个组件,现在我想从这个我加载的组件中加载另一个组件(这个组件将被移除,另一个组件将被替换)

我该怎么做呢?

代码语言:javascript
复制
import example from './components/Example.vue';
import example2 from './components/Example2.vue';
import login from './components/Login.vue';

Vue.component('example', example);
Vue.component('example2', example2);
Vue.component('login', login);



const app = new Vue({
el: '#content',
data: {
    currentView: '',
    show: true
},
methods:{
    example1: function(){ this.currentView =  'login'; },
    example2: function(){ this.currentView =  'example2'; },
    noview: function(){ this.currentView =  ''; }
}
});

代码语言:javascript
复制
<component :is='currentView'>   </component>
EN

回答 1

Stack Overflow用户

发布于 2017-04-25 10:21:32

从组件发出一个事件,指示要加载的组件,并在Vue中侦听该事件。

假设以下组件是您要导入到主文件中的组件。请注意单击按钮时的$emit

代码语言:javascript
复制
const Example1 = {
  template:`
    <div>
      <h1>Example One</h1>
      <button @click="$emit('change-component', 'example 2')">Load Example Two</button>
    </div>
  `
}

const Example2 = {
  template:`
    <div>
      <h1>Example Two</h1>
      <button @click="$emit('change-component', 'example 1')">Load Example One</button>
    </div>
  `
}

然后,在您的Vue模板中,侦听change-component事件。

代码语言:javascript
复制
<component :is='currentView' 
         @change-component="onChangeComponent">
</component>

在你的Vue中,处理事件并更改currentView

代码语言:javascript
复制
new Vue({
  el:"#content",
  data: {
      currentView: Example1,
      show: true
  },
  methods:{
    onChangeComponent(comp){
      if (comp === "example 1")
        this.currentView = Example1
      if (comp === "example 2")
        this.currentView = Example2
    }
  }
})

Example

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43600324

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档