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代码
Mar 06 Javascript
node.js 一个简单的页面输出实现代码
Mar 07 Javascript
jQuery弹出(alert)select选择的值
Apr 21 Javascript
html页面显示年月日时分秒和星期几的两种方式
Aug 20 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
angular route中使用resolve在uglify压缩后问题解决
Sep 21 Javascript
jquery实现手机端单店铺购物车结算删除功能
Feb 22 Javascript
解决vue中使用swiper插件问题及swiper在vue中的用法
Apr 04 Javascript
vue-video-player 通过自定义按钮组件实现全屏切换效果【推荐】
Aug 29 Javascript
深入学习js函数的隐式参数 arguments 和 this
Jun 24 Javascript
JavaScript实现图片伪异步上传过程解析
Apr 10 Javascript
关于JavaScript轮播图的实现
Nov 20 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 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
深入理解PHP中的global
2014/08/19 PHP
php使用cookie实现记住用户名和密码实现代码
2015/04/27 PHP
PHP怎样用正则抓取页面中的网址
2016/08/09 PHP
PHP图片添加水印功能示例小结
2016/10/03 PHP
php一个文件搞定微信jssdk配置
2016/12/12 PHP
laravel withCount 统计关联数量的方法
2019/10/10 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
jQuery表单获取和失去焦点输入框提示效果的实例代码
2013/08/01 Javascript
验证码在IE中不刷新而谷歌等浏览器正常的解决方案
2014/03/18 Javascript
浅谈 javascript 事件处理
2015/01/04 Javascript
jquery.uploadify插件在chrome浏览器频繁崩溃解决方法
2015/03/01 Javascript
jQuery实现淡入淡出二级下拉导航菜单的方法
2015/08/28 Javascript
webpack将js打包后的map文件详解
2018/02/22 Javascript
webpack组织模块打包Library的原理及实现
2018/03/10 Javascript
通过js给网页加上水印背景实例
2019/06/17 Javascript
原生js实现可兼容PC和移动端的拖动滑块功能详解【测试可用】
2019/08/15 Javascript
vue+elementUI实现图片上传功能
2019/08/20 Javascript
Python contextlib模块使用示例
2015/02/18 Python
Python base64编码解码实例
2015/06/21 Python
Python如何实现小程序 无限求和平均
2020/02/18 Python
Python参数传递及收集机制原理解析
2020/06/05 Python
Python中bisect的用法及示例详解
2020/07/20 Python
Python3爬虫里关于识别微博宫格验证码的知识点详解
2020/07/30 Python
PyCharm 2020.1版安装破解注册码永久激活(激活到2089年)
2020/09/24 Python
一款利用纯css3实现的win8加载动画的实例分析
2014/12/11 HTML / CSS
移动端Web页面的CSS3 flex布局快速上手指南
2016/05/31 HTML / CSS
Myprotein意大利官网:欧洲第一运动营养品牌
2018/11/22 全球购物
英国绿色商店:Natural Collection
2019/05/03 全球购物
ABOUT YOU罗马尼亚:超过600个时尚品牌
2019/09/19 全球购物
利用异或运算实现两个无符号数的加法运算
2013/12/20 面试题
简短的公司员工自我评价分享
2013/11/13 职场文书
新学期开学标语
2014/06/30 职场文书
2014年健康教育工作总结
2014/11/20 职场文书
pandas求平均数和中位数的方法实例
2021/08/04 Python
python 安全地删除列表元素的方法
2022/03/16 Python