vue点击按钮动态创建与删除组件功能


Posted in Javascript onDecember 29, 2019

主要功能需求点:

  1. 点击左侧组件库按钮创建对应的不同的组件,并在右侧区域展示
  2. 点击右侧创建的组件中的删除按钮,删除对应的组件
  3. 删除对应的组件之后,下方的组件位置自动上移

效果图:

vue点击按钮动态创建与删除组件功能

代码:

父组件代码(去除了css样式代码):

<template>
 <div class="home">
  <div class="container">
   <div class="addZujian">
    <div>
     <span>组件库</span>
     <span style="color:#bbb;margin-left:10px;font-size:14px;">点击使用</span>
    </div>
    <div class="zujianBtn" @click="zujian">添加组件1</div>
    <div class="zujianBtn" @click="zujian2">添加组件2</div>
   </div>
   <div class="zujianContent">
    <div>组件展示区</div>
    <!-- Vue提供了 component ,来展示对应名称的组件 -->
    <!-- component 是一个占位符, :is 属性,可以用来指定要展示的组件的名称 -->
    <component
     v-for="(item,index) in comName"
     :is="item.name"
     :key="index"
     @func="getContent(index)"
    ></component>
   </div>
  </div>
 </div>
</template>
<script>
// 引入子组件
import zujian1 from "./zujian";
import zujian2 from "./zujian2";
export default {
 data() {
  return {
   comName: []
  };
 },
 components: {
  zujian1,
  zujian2
 },
 methods: {
  // 添加组件1
  zujian() {
   this.comName.push({
    name: "zujian1"
   });
  },
  // 添加组件2
  zujian2() {
   this.comName.push({
    name: "zujian2"
   });
  },
  // 删除组件
  getContent(index) {
   this.comName.splice(index, 1);
  }
 }
};
</script>

子组件1代码(去除了css样式代码):

<template>
 <div class="home">
  <div class="container">
   <span>我是组件1</span>
   <span class="del" @click="del">删除组件</span>
  </div>
 </div>
</template>
<script>
export default {
 data() {
  return {};
 },
 methods: {
  del() {
   // 子组件向父组件传值(此处传递一个空值) - 父组件将执行getContent方法
   this.$emit('func','')
  }
 }
};
</script>

子组件2代码(去除了css样式代码):

<template>
 <div class="home">
  <div class="container">
   <span>我是组件2</span>
   <span class="del" @click="del">删除组件</span>
  </div>
 </div>
</template>
<script>
export default {
 data() {
  return {};
 },
 methods: {
  del() {
   // 子组件向父组件传值(此处传递一个空值) - 父组件将执行getContent方法
   this.$emit("func", "");
  }
 }
};
</script>

总结

以上所述是小编给大家介绍的vue点击按钮动态创建与删除组件功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JS代码放在head和body中的区别分析
Dec 01 Javascript
jquery mobile实现拨打电话功能的几种方法
Aug 05 Javascript
js每隔5分钟执行一次ajax请求的实现方法
Nov 27 Javascript
js处理自己不能定义二维数组的方法详解
Mar 03 Javascript
关于编写性能高效的javascript事件的技术
Nov 28 Javascript
基于jquery实现智能提示控件intellSeach.js
Mar 17 Javascript
JavaScript中的Object对象学习教程
May 20 Javascript
基于JavaScript实现轮播图原理及示例
Apr 10 Javascript
CSS3 动画卡顿性能优化的完美解决方案
Sep 20 Javascript
使用Vue.observable()进行状态管理的实例代码详解
May 26 Javascript
vue-video-player 解决微信自动全屏播放问题(横竖屏导致样式错乱问题)
Feb 25 Javascript
three.js如何实现3D动态文字效果
Mar 03 Javascript
纯js+css实现仿移动端淘宝网站的弹出详情框功能
Dec 29 #Javascript
vue中实现点击按钮滚动到页面对应位置的方法(使用c3平滑属性实现)
Dec 29 #Javascript
vue element-ui实现input输入框金额数字添加千分位
Dec 29 #Javascript
jstree中的checkbox默认选中和隐藏示例代码
Dec 29 #Javascript
Vue组件通信入门之Provide和Inject机制
Dec 29 #Javascript
JS中数组实现代码(倒序遍历数组,数组连接字符串)
Dec 29 #Javascript
如何基于JavaScript判断图片是否加载完成
Dec 28 #Javascript
You might like
php注销代码(session注销)
2012/05/31 PHP
php使用百度天气接口示例
2014/04/22 PHP
自编函数解决pathinfo()函数处理中文问题
2014/11/03 PHP
thinkPHP实现将excel导入到数据库中的方法
2016/04/22 PHP
PHP解耦的三重境界(浅谈服务容器)
2017/03/13 PHP
Laravel框架下载,安装及路由操作图文详解
2019/12/04 PHP
海量经典的jQuery插件集合
2010/01/12 Javascript
js调试工具console.log()方法查看js代码的执行情况
2014/08/08 Javascript
一种基于浏览器的自动小票机打印实现方案(js版)
2016/07/26 Javascript
jQuery插件HighCharts绘制2D带Label的折线图效果示例【附demo源码下载】
2017/03/08 Javascript
Bootstrap 表单验证formValidation 实现远程验证功能
2017/05/17 Javascript
微信小程序实现弹出菜单动画
2019/06/21 Javascript
python中pass语句用法实例分析
2015/04/30 Python
python多线程方式执行多个bat代码
2016/06/07 Python
python常见的格式化输出小结
2016/12/15 Python
Python实现的堆排序算法原理与用法实例分析
2017/11/22 Python
Python 记录日志的灵活性和可配置性介绍
2018/02/27 Python
详解用Python练习画个美队盾牌
2019/03/23 Python
通过python实现随机交换礼物程序详解
2019/07/10 Python
python 使用raw socket进行TCP SYN扫描实例
2020/05/05 Python
使用python实现时间序列白噪声检验方式
2020/06/03 Python
pycharm 使用anaconda为默认环境的操作
2021/02/05 Python
HTML5 CSS3给网站设计带来出色效果
2009/07/16 HTML / CSS
html5的canvas实现3d雪花飘舞效果
2013/12/27 HTML / CSS
Ray-Ban雷朋西班牙官网:全球领先的太阳眼镜品牌
2018/11/28 全球购物
宝拉珍选英国官网:Paula’s Choice英国
2019/05/29 全球购物
BSTN意大利:德国街头和运动文化高品质商店
2020/12/22 全球购物
大学生职业生涯设计书
2014/01/02 职场文书
内业资料员岗位职责
2014/01/04 职场文书
扩大国家免疫规划实施方案
2014/03/21 职场文书
高三英语复习计划
2015/01/19 职场文书
离婚代理词范文
2015/05/23 职场文书
负责培养人意见
2015/06/05 职场文书
茶花女读书笔记
2015/06/29 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
MySQL 原理与优化之Update 优化
2022/08/14 MySQL