Vue.js中使用动态组件的方法


当前第2页 返回上一页

如果仅在模板中指定了Test 1元素,这正是您将获得的响应。 为了使组件具有动态性,我们可以使用v-bind指令将其绑定到set属性。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<template>

  <div id="app">

    <img alt="Vue logo" src="./assets/logo.png">

    <component v-bind:is="component" />

  </div>

</template>

<script>

import Test from './components/Test.vue'

import Test2 from './components/Test2.vue'

export default {

  name: 'app',

  components: {

    Test, Test2

  },

  data (){

    return {

      component:"Test"

    }

  }

}

</script>

您的组件现在与数据中的组件属性绑定。如果您将组件切换到Test2,它将自动挂载Test2组件。

在浏览器上测试一下。

添加方法调用

您可以添加方法调用来控制组件动态显示的逻辑。组件元素允许您访问Vue实例中的每个构造。

下面是一个切换这两个组件的小方法的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

<template>

  <div id="app">

    <img alt="Vue logo" src="./assets/logo.png">

    <component v-bind:is="component" />

    <button v-on:click="toggle">Toggle</button>

  </div>

</template>

<script>

import Test from './components/Test.vue'

import Test2 from './components/Test2.vue'

export default {

  name: 'app',

  components: {

    Test,

     Test2

  },

  data (){

    return {

      component:"Test2"

    }

  },

  methods: {

    toggle(){

      if (this.component === Test) {

        this.component = Test2;

      } else {

        this.component = Test;

      }

    }

  }

}

</script>

切换时保持数据值有效

在Vue团队构建这个特性时,他们选择扩展它的功能,包括存储每个状态的数据值。

为了存储这些数据,Vue提供了一个名为keep-alive的模板元素。使用keep-alive,您可以确保在从一个组件切换回另一个组件后,您的组件状态保持原样。

例如,如果您单击某个链接或在文本框中输入一个值,然后切换组件,那么keep-alive会将您带回到切换回来时使用的相同链接或文本框。

要启用keep-alive,请转到app.vue文件的模板部分,并使用keep-alive元素包装组件元素:

1

2

3

<keep-alive>

  <component v-bind:is="component" />

</keep-alive>

要查看它是否工作,请将表单元素添加到测试中。vue文件,在模板部分添加如下代码块:

1

2

3

4

5

6

7

8

9

10

<template>

  <div><h1>I am Test 1</h1>

       <form>

         First name:<br>

         <input type="text" name="firstname"><br>

         Last name:<br>

         <input type="text" name="lastname">

       </form>

  </div>

</template>

保存所有项目文件后,再次运行应用程序。在输入框中键入,切换组件,并切换回原始组件。您将注意到在切换组件之前输入的值与之前输入的值完全相同。

1.gif

结论

本文介绍了如何在Vue.js工作流中使用动态组件。您现在还可以通过keep-alive扩展组件元素的能力。

相关推荐:

2020年前端vue面试题大汇总(附答案)

vue教程推荐:2020最新的5个vue.js视频教程精选

更多编程相关知识,请访问:编程入门!!

以上就是Vue.js中使用动态组件的方法的详细内容,更多文章请关注木庄网络博客

返回前面的内容

相关阅读 >>

vue-mobile是什么

vue.js如何安装jq

vue中如何集成css框架?方法介绍

vue.js如何给对象属性赋值呢

vue.js能做pc端吗

vue中怎么对事件进行防抖和节流操作?

vue.js怎样刷新改变数据

react创建组件的三种方式分别是什么

关于vue使用验证器: veevalidate3

vue.js计算属性是什么?(代码示例)

更多相关阅读请进入《vue.js》频道 >>




打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...