首页 > 其他分享 >vue 组件分享

vue 组件分享

时间:2023-07-14 10:22:41浏览次数:52  
标签:task school analyze name label vue 组件 import 分享

应用场景是tab切换,上方显示五个标题,下方区域显示各模块内容

分享的原因是这个写法简介

父组件如下:

<template>
 <Tabs v-model="selected" @on-click="change_item">
      <TabPane
        v-for="item in list_tab"
        :key="item.name"
        :label="item.label"
        :name="item.name"
      ></TabPane>
    </Tabs>
<div>
<!--    is 对应的组件名称  下面是传值-->
      <component
        :is="selected"  
        :level-year="selectLevelYear"
        :current-level-year="currentLevelYear"
      ></component>
    </div>

</template>
<script>
import { school_list_cyear } from "@/api/cloud_analyze.js";
import analyze_school from "./analyze_school";
import analyze_resource from "./analyze_resource";
import analyze_task from "./analyze_task";
import analyze_classroom from "./analyze_classroom";
import analyze_application from "./analyze_application";
export default {
  components: {
    analyze_school,
    analyze_resource,
    analyze_task,
    analyze_classroom,
    analyze_application
  },
 data() {
    return {
      // 选中学年
      selectLevelYear: null,
      // 当前学年
      currentLevelYear: null,
      selected: "analyze_school",
      list_tab: [
        {
          label: "学校统计",
          name: "analyze_school"
        },
        {
          label: "资源统计",
          name: "analyze_resource"
        },
        {
          label: "作业统计",
          name: "analyze_task"
        },
        {
          label: "课堂统计",
          name: "analyze_classroom"
        },
        {
          label: "应用统计",
          name: "analyze_application"
        }
      ]
    };
  },
 methods: {
    // 统计切换
    change_item(name) {
      this.selected = name;
    }
  }
};
</script>

子组件任意一个

其他都一样,只显示一下传值
<script>
export default {
  props: ["levelYear", "currentLevelYear"]
}
</script>

 

标签:task,school,analyze,name,label,vue,组件,import,分享
From: https://www.cnblogs.com/guozhongbo/p/17552992.html

相关文章

  • 界面控件DevExtreme v23.1新版亮点 - 全新的DateRangeBox组件
    DevExtreme拥有高性能的HTML5/JavaScript小部件集合,使您可以利用现代Web开发堆栈(包括React,Angular,ASP.NETCore,jQuery,Knockout等)构建交互式的Web应用程序。从Angular和Reac,到ASP.NETCore或Vue,DevExtreme包含全面的高性能和响应式UI小部件集合,可在传统Web和下一代移动应用程序中......
  • 【微服务学习-- 组件】 熔断器Hystrix
    一、什么是Hystrix  由于在我们访问页面时,可能会通过服务注册中心,用一个服务去调用另外一个服务,但是可能由于网络原因或者超时访问等情况,导致一个或者一些服务堆积,这样就可能会导致其他服务受到影响甚至崩溃,这种导致服务堆积的现象就被称为雪崩。     为了避免雪崩,N......
  • Vue项目配置Https双向认证
    访问双向认证的Https接口本地运行设置修改webpack配置 jsconstfs=require('fs')constoptions={//客户端密钥key:fs.readFileSync(path.join(__dirname,'../ca/key.pem')),//客户端公钥cert:fs.readFileSync(path.join(__dirname,'../ca......
  • vue配置https
    constpath=require('path');constfs=require('fs');consthttps=require('https');constoptions={key:fs.readFileSync(path.join(__dirname,'./ca/client.key')),cert:fs.readFileSync(path.join(__dirname,......
  • Vue基础
    创建实例<divid="app"><!--这里将来会编写一些用于渲染的代码逻辑-->{{msg}}</div><!--引入的是开发版本包,包含完整的注释和警告--><scriptsrc="https://cdn.jsdelivr.net/npm/[email protected]/dist/vue.js"></script><script>//一旦......
  • 7月13日 今日所学 分享整理
    #define_CRT_SECURE_NO_WARNINGS1#include<string.h>#include<stdio.h>intmain(){ intarr1[10]={1,2,3};//不完全初始化 chararr2[5]={1,2,3,4,5}; chararr3[]={1,2,3,4}; chararr4[5]={1,2,3}; chararr5[3]={'a'......
  • Vue3+Vue-Router+TypeScript+Vite+Element-Plus+Axios+Pinia快速搭建开发框架
    1、环境准备(1)首先你得需要安装node和npm2、环境初始化(1)先随意找个文件夹,初始化vite#安装pnpmnpmi-gpnpm#初始化vitepnpmcreatevite#安装依赖pnpminstall(2)最后我们执行pnpmrundev3、安装插件(1)Eslint校验代码工具安装eslint#安装eslint......
  • vue中视频播放组件的安装
    1.在terminal中输入cnpminstallvue-video-player2.安装完成后在main.js中进行配置 importVueCoreVideoPlayerfrom'vue-core-video-player'Vue.use(VueCoreVideoPlayer,{lang:'zh-CN'})3.后续即可正常使用......
  • Power APP Canvas组件简单控制画布控件
    效果图:图中绿色部分是组件,通过组件控制画布中按钮的点击事件。具体实现:1、组件按钮中赋值一个变量比如左按钮给yyy赋值false右按钮赋值true;2、增加输出属性                          将其赋值为此变量,此处用布尔......
  • 使用vue3、egg和SQLite开发通用管理后台系统
    使用vue3、egg和SQLite开发通用管理后台系统plaform是一个基于RBAC模型开发的后台管理系统,没有多余的功能。本项目是一个以学习为目的的后台项目,旨在让前端也能充分了解RBAC模型是如何设计的,不建议用于线上,因为未经过充分的测试。项目地址:https://github.com/essay-org/platform......