vue 开发系列(九) VUE 动态组件的应用

业务场景

我们在开发表单的过程中会遇到这样的问题,我们选择一个控件进行配置,控件有很多中类型,比如文本框,下来框等,这些配置都不同,因此需要不同的配置组件来实现。

较常规的方法是使用v-if 来实现,这样界面看上去比较复杂,而且需要进行修改主页面。

解决方案

可以使用动态组件来实现,为了体现动态组件的特性,我们简化实现方式,编写两个简单的组件来测试一下这个功能。

文本组件配置:

<template>
  <div>
    我是单行文本框{{config.type}}
  </div>
</template>

<script>
  export default {
    name:"rx-textbox-config",
    props:{
      config:Object
    }
  }
</script>

<style>
</style>

这个组件我统一配置一个config 的对象属性,配置一个type 属性。

多行文本框配置:

<template>
  <div>
    我是多行文本框{{config.name}}
  </div>
</template>

<script>
  export default {
    name:"rx-textarea-config",
    props:{
      config:Object
    }
  }
</script>

<style>
</style>

这里我配置一个 name的属性。

在调用界面做写如下代码,导入组件

export default {
  name: ‘App‘,
  components: {
    rxTextboxConfig,
    rxTextareaConfig,
  }

使用动态组件:

 <component :is="currentConfig" :config="config"></component>

使用代码切换组件

 this.currentConfig=ctlType +"-config";
      if(ctlType=="rx-textbox"){
          this.config.type="VARCHAR";
      }
      if(ctlType=="rx-textarea"){
          this.config.name="我是富文本框";
      }

这里写if 只是为了体现这个特性,实际实现不用这种方式。

原文地址:https://www.cnblogs.com/yg_zhang/p/11956066.html

时间: 2024-08-29 16:17:33

vue 开发系列(九) VUE 动态组件的应用的相关文章

jQuery MiniUI开发系列之:创建组件对象

原文:http://miniui.com/bbs/forum.php?mod=viewthread&tid=20&extra=page%3D1 jQuery MiniUI可以使用Javascript和Html两种方式来创建对象. 1)Javascript创建对象使用JavaScript创建对象,是最基本的方式,有如下几个要点: 1)使用new关键字.如: var grid = new mini.DataGrid(); 2)使用set方法设置属性.如:grid.setUrl("ge

Vue.js 系列教程 2:组件,Props,Slots

原文:intro-to-vue-2-components-props-slots 译者:nzbin 这是关于 JavaScript 框架 Vue.js 五个教程的第二部分.在这一部分,我们将学习组件,Props 以及 Slots.这个系列教程并不是一个完整的用户手册,而是通过基础知识让你快速了解 Vuejs 以及它的用途. 系列文章: 渲染, 指令, 事件 组件, Props, Slots (你在这!) Vue-cli Vuex 动画 组件和传递数据 如果你熟悉 React 或者 Angular

openlayers4 入门开发系列之前端动态渲染克里金插值 kriging 篇(附源码下载)

前言 openlayers4 官网的 api 文档介绍地址 openlayers4 api,里面详细的介绍 openlayers4 各个类的介绍,还有就是在线例子:openlayers4 官网在线例子,这个也是学习 openlayers4 的好素材. openlayers4 入门开发系列的地图服务基于 Geoserver 发布的,关于 Geoserver 方面操作的博客,可以参考以下几篇文章: geoserver 安装部署步骤 geoserver 发布地图服务 WMS geoserver 发布地

【Qt编程】基于Qt的词典开发系列&lt;九&gt;--JSON数据解析

在上一篇文章<用户登录及API调用的实现>中,我通过程序实现了用户登录及API调用的实现,从而能够实现网络查词.添词的操作.但是,从上文中可以看到,调用API后返回的是JSON格式的数据,如下图所示(在QtCreator中的显示): 为了更好的观察JSON格式,我整理后显示如下: 显然,为了显示查词的结果,我们必须在上图中提取有用的信息,并正确的显示出来.上图中每一行内容的意思我已经在文章<调用网络API>中作了解释.我在词典中选择想要显示的内容有:单词本身.单词ID.中文解释.英

sau交流学习社区--songEagle开发系列:Vue.js + Koa.js项目中使用JWT认证

一.前言 JWT(JSON Web Token),是为了在网络环境间传递声明而执行的一种基于JSON的开放标准(RFC 7519). JWT不是一个新鲜的东西,网上相关的介绍已经非常多了.不是很了解的可以在网上搜索一下相关信息. 同步sau交流学习社区:https://www.mwcxs.top/page/454.html 二.源码 Talk is cheap. Show me the code. 三.工作流程 JWT本质来说是一个token.在前后端进行HTTP连接时来进行相应的验证. 1. 

vue 开发系列 路由配置

概要 用Vue.js + vue-router 创建单页应用,是非常简单的.使用Vue.js,我们已经可以通过组合组件来组成应用程序,当你要把vue-router 添加进来,我们需要做的是,将组件(componennts)映射到路由(routes) , 然后告诉vue-router在哪里渲染它们. 实现代码 1.在main.js 中引入 router. //main.js 引入router import router from './router/index' 2.在main.js 中使用rou

Vue开发系列二 熟悉项目结构

初始项目结构如上所示.src:  写代码地方,我们大部分的操作都在此 static :资源目录 static目录下还可以放一些第三方的js库,通用的css等,这样每次打包的时候节省打包时间 原文地址:https://www.cnblogs.com/menchao/p/8425749.html

vue 开发系列(六) 企业微信整合

概述 手机端程序可以和企业微信进行整合,我们也可以使用企业微信JSSDK功能,实现一些原生的功能. 整合步骤 在整合之前需要阅读 整合步骤. http://work.weixin.qq.com/api/doc#10029 1.引入JSSDK npm i -S weixin-js-sdk 这样就引入了微信sdk. 2.通过config接口注入权限验证配置 export function initWxConfig(vm){ var url=_baseUrl + "/initConfig.do&quo

vue 开发系列 企业微信整合

概述 手机端程序可以和企业微信进行整合,我们也可以使用企业微信JSSDK功能,实现一些原生的功能. 整合步骤 在整合之前需要阅读 整合步骤. http://work.weixin.qq.com/api/doc#10029 1.引入JSSDK npm i -S weixin-js-sdk 这样就引入了微信sdk. 2.通过config接口注入权限验证配置 export function initWxConfig(vm){ var url=_baseUrl + "/initConfig.do&quo