vue 实现tab切换动态加载不同的组件

使用vue中的is特性来加载不同的组件。具体看如下代码;这个功能对于vue比较复杂的页面可以使用上,可以把一个页面的功能拆分出来,使代码更简单。使用方式具体看如下代码:

主页面代码如下,分别导入了child1.vue, child2.vue, child3.vue 3个小模块,当点击页面某一项的时候去加载不同的组件。

<style>

</style>
<template>
<div>
<h2>vue 动态组件实现tab切换加载不同的小模块</h2>
<div>
<a href="javascript:void(0)" @click="tabChange(child1)">第一项</a>
<a href="javascript:void(0)" @click="tabChange(child2)">第二项</a>
<a href="javascript:void(0)" @click="tabChange(child3)">第三项</a>
</div>
<!--
动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载点,并动态切换。
-->
<div :is="currentView"></div>
</div>
</template> <script>
// 导入子组件
import child1 from '@/components/child1';
import child2 from '@/components/child2';
import child3 from '@/components/child3'; export default {
data () {
return {
child1: 'child1',
child2: 'child2',
child3: 'child3',
currentView: 'child1' // 默认选中第一项
};
},
methods: {
tabChange(tabItem) {
this.currentView = tabItem;
}
},
components: {
child1,
child2,
child3
}
};
</script>

子组件child1.vue代码如下:

<style>

</style>

<template>
<div>我是第一个子组件</div>
</template> <script>
export default {
data() {
return {
}
}
}
</script>

子组件child2.vue代码如下:

<style>

</style>

<template>
<div>我是第二个子组件</div>
</template> <script>
export default {
data() {
return {
}
}
}
</script>

子组件child3.vue 代码如下:

<style>

</style>

<template>
<div>我是第三个子组件</div>
</template> <script>
export default {
data() {
return {
}
}
}
</script>

查看github上的源码

vue 实现tab切换动态加载不同的组件的更多相关文章

  1. Vue – 基础学习(5):动态加载和注册组件

    // var myComponent =() => import(`./../../components/custom_panel/${t_url}.vue`);// //var myCompo ...

  2. Vue Router根据后台数据加载不同的组件(思考->实现->不止于实现)

    实际项目中遇到的需求 同一个链接需要加载不同的页面组件.根据用户所购买服务的不同,有不同的页面展现. 有一些不好的实现方式 直接把这几个组件写在同一个组件下,通过v-if去判断.如果这么做的话,甚至可 ...

  3. vue问题八:动态加载loading、浏览器图标

    全局动态加载loading: 参考文档:https://blog.csdn.net/qq_34825875/article/details/79570301 在main.js或者index.js引用  ...

  4. WPF 界面实现多语言支持 中英文切换 动态加载资源字典

    1.使用资源字典,首先新建两个字典文件en-us.xaml.zh-cn.xaml.定义中英文的字符串在这里面[注意:添加xmlns:s="clr-namespace:System;assem ...

  5. Ext选项卡tabpanel切换动态加载数据

    鸣人不说暗话,来张图: 代码开始:(使用Ext,ajax加载数据,如果你们有好的方法也可以多多交流)var tabxsk = new Object(); //初始化 tabxsk.init = fun ...

  6. vue动态加载不同的组件(分内部和外部组件)

    <!DOCTYPE html> <html> <head> <title> hello world vue </title> <met ...

  7. Vue完成页面切换中加载数据

    created() { // 拿到路由传递来的car主键 let pk = this.$route.query.pk || this.$route.params.pk; // 主键不存在,就直接结束方 ...

  8. Ext JS学习第十天 Ext基础之动态加载JS文件(补充)

    此文用来记录学习笔记: •Ext4.x版本提供的一大亮点就是Ext.Loader这个类的动态加载机制!只要遵循路径规范,即可动态加载js文件,方便把自己扩展组件动态加载进来,并且减轻浏览器的压力. • ...

  9. Adroid动态加载Apk-插件化技术框架(动态代理方案)

    技术:Android + java +动态加载+插件化   概述 为什么要使用插件化?在开发中,一个项目只会越做越大.初始版本可能是单一功能,后续可能加上各种风马牛不相及的功能.所以我认为插件化可以使 ...

随机推荐

  1. 站在DevOps肩膀上的TestOps(二)

    一十一 发表于 2018-03-14 16:40:22 TestOps   摘要: TestOps模型旨在将整个团队的注意力集中在质量上,因此TestOps确实需要无缝且可靠. 一个简单的例子是任何测 ...

  2. webpack2利用插件clean-webpack-plugin来清除dist文件夹中重复的文件

    配置文件如下 /** * Created by oufeng on 2017/5/6. */ const webpack = require('webpack'); const path = requ ...

  3. 【读书笔记】iOS-更改布局行为

    View---->Assistant Editor---->查看可用的布局. 参考资料:<Xcode实战开发>  

  4. 关于input的焦点事件

    关于input的焦点事件 $(".scanf_integral").focus(function(){//获取焦点//获取焦点后触发的事件 }) $(".scanf_in ...

  5. Apex 的 Trigger 类简介

    Apex Triggers Apex 触发器(Apex Triggers)是一种特殊的 Apex 类.它的主要作用是在一条记录被插入.修改.删除之前或之后自动执行一系列的操作.每一个 Trigger ...

  6. python练习:http协议介绍

    一.HTTP协议 HTTP是Hyper Text Transfer Protocol(超文本传输协议)的缩写.它的发展是万维网协会(World Wide Web Consortium)和Interne ...

  7. JavaScript长时间未操作自动退出登录

    主要是通过mouseover 来监听有没有进行当前页面操作,通过未操作时间和设定退出的时间做比较,从而退出登录. var oldTime = new Date().getTime(); var new ...

  8. Android基础之内容提供者的实现

    内容提供者可以实现应用间查询数据库的需求 一.在提供数据库访问的应用设置内容提供者 public class AccountProvider extends ContentProvider { sta ...

  9. 【Java入门提高篇】Day32 Java容器类详解(十四)ArrayDeque详解

    今天来介绍一个不太常见也不太常用的类——ArrayDeque,这是一个很不错的容器类,如果对它还不了解的话,那么就好好看看这篇文章吧. 看完本篇,你将会了解到: 1.ArrayDeque是什么? 2. ...

  10. python pip 使用时错误: Patal error in launcher:Unable to create process using '"'

    当前我的电脑配置是64位, 装有python2.7 和python 3.6 两个版本 在使用pip install mysqlclient 的时候,出现了  Patal error in launch ...