VUE 动态组件的应用案例分析


Posted in Javascript onDecember 02, 2019

本文实例讲述了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 只是为了体现这个特性,实际实现不用这种方式。

希望本文所述对大家vue.js程序设计有所帮助。

Javascript 相关文章推荐
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
Oct 19 Javascript
用javascript实现自定义标签
May 08 Javascript
Javascript valueOf 使用方法
Dec 28 Javascript
WordPress 照片lightbox效果的运用几点
Jun 22 Javascript
基于jquery的一行代码轻松实现拖动效果
Dec 28 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
jquery默认校验规则整理
Mar 24 Javascript
JS ES6中setTimeout函数的执行上下文示例
Apr 27 Javascript
vue基于mint-ui实现城市选择三级联动
Jun 30 Javascript
Vue插值、表达式、分隔符、指令知识小结
Oct 12 Javascript
如何在微信小程序中实现Mixins方案
Jun 20 Javascript
Vue快速实现通用表单验证的示例代码
Jan 09 Javascript
VUE 直接通过JS 修改html对象的值导致没有更新到数据中解决方法分析
Dec 02 #Javascript
vue 动态表单开发方法案例详解
Dec 02 #Javascript
vue 开发之路由配置方法详解
Dec 02 #Javascript
vue 开发企业微信整合案例分析
Dec 02 #Javascript
vue 使用外部JS与调用原生API操作示例
Dec 02 #Javascript
node使用mysql获取数据库数据中文乱码问题的解决
Dec 02 #Javascript
vue中上传视频或图片或图片和文字一起到后端的解决方法
Dec 01 #Javascript
You might like
全国FM电台频率大全 - 21 海南省
2020/03/11 无线电
总结的一些PHP开发中的tips(必看篇)
2017/03/24 PHP
基于PHP实现用户登录注册功能的详细教程
2020/08/04 PHP
通过ifame指向的页面高度调整iframe的高度
2006/10/05 Javascript
flash javascript之间的通讯方法小结
2008/12/20 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
微信企业号开发之微信考勤百度地图定位
2015/09/11 Javascript
JavaScript中setTimeout和setInterval函数的传参及调用
2016/03/11 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
浅谈angularjs中响应回车事件
2017/04/24 Javascript
jQuery实现鼠标滑过预览图片大图效果的方法
2017/04/26 jQuery
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
javascript 初学教程及五子棋小程序的简单实现
2017/07/04 Javascript
Vue.js表单标签中的单选按钮、复选按钮和下拉列表的取值问题
2017/11/22 Javascript
jQuery实现模糊查询的方法分析
2018/05/10 jQuery
Node.js 实现简单的无侵入式缓存框架的方法
2019/07/21 Javascript
Vue router安装及使用方法解析
2020/12/02 Vue.js
[05:31]DOTA2上海特级锦标赛主赛事第三日RECAP
2016/03/05 DOTA
详解Python中time()方法的使用的教程
2015/05/22 Python
python之PyMongo使用总结
2017/05/26 Python
Windows下Anaconda2安装NLTK教程
2018/09/19 Python
Python中的list与tuple集合区别解析
2019/10/12 Python
Python imread、newaxis用法详解
2019/11/04 Python
python之列表推导式的用法
2019/11/29 Python
使用python-pptx包批量修改ppt格式的实现
2020/02/14 Python
HTML5 Plus 实现手机APP拍照或相册选择图片上传功能
2016/07/13 HTML / CSS
BIBLOO波兰:捷克的一家在线服装店
2018/03/09 全球购物
奥地利婴儿用品和玩具购物网站:baby-markt.at
2020/01/26 全球购物
C#如何调用Word并打开一个Word文档
2013/05/08 面试题
工厂厂长的职责
2013/12/12 职场文书
法律六进活动方案
2014/03/13 职场文书
教师党员承诺书
2014/03/25 职场文书
先进教师个人主要事迹材料
2015/11/03 职场文书
解决go在函数退出后子协程的退出问题
2021/04/30 Golang
MySQL查询学习之基础查询操作
2021/05/08 MySQL
JavaScript实现一键复制内容剪贴板
2022/07/23 Javascript