Vue-Cli全局更改对象值

时间:2018-11-19 19:39:59

标签: vue.js

我在文件app.vue中有此代码:

<template>
  <div id="app">
  <button v-on:click="component = 'login'">aa</button>
  <component v-bind:is="component"></component>
  </div>
</template>

<script>

import acceuil from './components/acceuil.vue'
import login from './components/login.vue'
export default {
  name: 'app',
  components: {
    acceuil,
    login
  },
   data(){
    return {
      component: 'acceuil'
    }
  }
}

</script>

如何在其他vue文件的组件的acceuil /登录之间切换?

1 个答案:

答案 0 :(得分:0)

您需要将导入的依赖项(对象或组件的名称作为字符串)传递给v-bind:is。您可以通过将其返回到计算函数中并将其传递给计算属性,然后在模板中使用它来实现。

<template>
  <div id="app">
    <button v-on:click="isLogin = true">Show Login</button>
    <component v-bind:is="currentComponent"></component>
  </div>
</template>

<script>
import acceuil from './components/acceuil.vue';
import login from './components/login.vue';

export default {
  name: 'app',
  data () {
    return {
      isLogin: false
    };
  },
  computed: {
    currentComponent () {
       return this.isLogin ? login : acceuil;
    }
  },
};
</script>

另请参见the official docs中动态组件的文档。