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点击页面其它地方将某个显示的DIV隐藏
Jul 12 Javascript
Javascript页面添加到收藏夹的简单方法
Aug 07 Javascript
js实现进度条的方法
Feb 13 Javascript
jquery渐隐渐显的图片幻灯闪烁切换实现方法
Feb 26 Javascript
JavaScript原生对象之Date对象的属性和方法详解
Mar 13 Javascript
Bootstrap Table使用心得总结
Nov 29 Javascript
jQuery Ajax File Upload实例源码
Dec 12 Javascript
Bootstrap里的文件分别代表什么意思及其引用方法
May 01 Javascript
vue利用better-scroll实现轮播图与页面滚动详解
Oct 20 Javascript
vue 项目常用加载器及配置详解
Jan 22 Javascript
vue中的循环对象属性和属性值用法
Sep 04 Javascript
三种方式清除vue路由跳转router-link的历史记录
Apr 10 Vue.js
纯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
解析CI即CodeIgniter框架在Nginx下的重写规则
2013/06/03 PHP
PHP导出EXCEL快速开发指南--PHPEXCEL的使用详解
2013/06/03 PHP
ThinkPHP采用原生query实现关联查询left join实例
2014/12/02 PHP
thinkphp3.x自定义Action、Model及View的简单实现方法
2016/05/19 PHP
Laravel 6 将新增为指定队列任务设置中间件的功能
2019/08/06 PHP
Javascript 判断函数类型完美解决方案
2009/09/02 Javascript
收集的一些Array及String原型对象的扩展实现代码
2010/12/05 Javascript
JavaScript Scoping and Hoisting 翻译
2012/07/03 Javascript
jQuery队列操作方法实例
2014/06/11 Javascript
JS中attr和prop属性的区别以及优先选择示例介绍
2014/06/30 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
Jquery实现图片预加载与延时加载的方法
2014/12/22 Javascript
VC调用javascript的几种方法(推荐)
2016/08/09 Javascript
jQuery 翻页组件yunm.pager.js实现div局部刷新的思路
2016/08/11 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
jQuery插件FusionCharts绘制2D环饼图效果示例【附demo源码】
2017/04/10 jQuery
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
学习使用Bootstrap栅格系统
2017/05/11 Javascript
js使用原型对象(prototype)需要注意的地方
2017/08/28 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
echarts实现晶体球面投影的实例教程
2020/10/10 Javascript
基于JavaScript实现轮播图效果
2021/01/02 Javascript
Python字符串的encode与decode研究心得乱码问题解决方法
2009/03/23 Python
python网络编程学习笔记(10):webpy框架
2014/06/09 Python
在Ubuntu系统下安装使用Python的GUI工具wxPython
2016/02/18 Python
Python正规则表达式学习指南
2016/08/02 Python
Python实现文件信息进行合并实例代码
2018/01/17 Python
Django重装mysql后启动报错:No module named ‘MySQLdb’的解决方法
2018/04/22 Python
Python调用Windows API函数编写录音机和音乐播放器功能
2020/01/05 Python
win10安装tensorflow-gpu1.8.0详细完整步骤
2020/01/20 Python
windows下python安装pip方法详解
2020/02/10 Python
pymysql之cur.fetchall() 和cur.fetchone()用法详解
2020/05/15 Python
html+css3实现的登录界面
2020/12/09 HTML / CSS
JustFab加拿大:女鞋、靴子、手袋和服装在线
2018/05/18 全球购物
2015年计生工作总结范文
2015/04/24 职场文书
何玥事迹观后感
2015/06/16 职场文书