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文件缓存之版本管理详解
Jul 05 Javascript
javascript屏蔽右键代码
May 15 Javascript
在JavaScript中操作数组之map()方法的使用
Jun 09 Javascript
js漂浮广告实现代码
Aug 15 Javascript
jquery ajax结合thinkphp的getjson实现跨域的方法
Jun 06 Javascript
node.js请求HTTPS报错:UNABLE_TO_VERIFY_LEAF_SIGNATURE\的解决方法
Dec 18 Javascript
详解vue2.0脚手架的webpack 配置文件分析
May 27 Javascript
JavaScript之RegExp_动力节点Java学院整理
Jun 29 Javascript
webpack4+Vue搭建自己的Vue-cli项目过程分享
Aug 29 Javascript
配置node服务器并且链接微信公众号接口配置步骤详解
Jun 21 Javascript
node.js制作一个简单的登录拦截器
Feb 10 Javascript
微信小程序 wx.getUserInfo引导用户授权问题实例分析
Mar 09 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图片等比例缩放生成缩略图函数分享
2014/06/10 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
php实现二进制和文本相互转换的方法
2015/04/18 PHP
win平台安装配置Nginx+php+mysql 环境
2016/01/12 PHP
PHP基于GD库的图像处理方法小结
2016/09/27 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
php 使用 __call实现重载功能示例
2019/11/18 PHP
[原创]IE view-source 无法查看看源码 JavaScript看网页源码
2009/07/19 Javascript
Javascript 实用小技巧
2010/04/07 Javascript
jquery获取div距离窗口和父级dv的距离示例
2013/10/10 Javascript
nodejs分页类代码分享
2014/06/17 NodeJs
jQuery实现鼠标经过时出现隐藏层文字链接的方法
2015/10/12 Javascript
以WordPress为例讲解jQuery美化页面Title的方法
2016/05/23 Javascript
全面了解JavaScirpt 的垃圾(garbage collection)回收机制
2016/07/11 Javascript
谈谈PHP中相对路径的问题与绝对路径的使用
2016/08/16 Javascript
jquery的checkbox,radio,select等方法小结
2016/08/30 Javascript
JS实现页面载入时随机显示图片效果
2016/09/07 Javascript
BootStrap Table 设置height表头与内容无法对齐的问题
2016/12/28 Javascript
微信小程序简单实现form表单获取输入数据功能示例
2017/11/30 Javascript
微信小程序ajax实现请求服务器数据及模版遍历数据功能示例
2017/12/15 Javascript
利用jqprint插件打印页面内容的实现方法
2018/01/09 Javascript
vue-lazyload图片延迟加载插件的实例讲解
2018/02/09 Javascript
vue实现的微信机器人聊天功能案例【附源码下载】
2019/02/18 Javascript
零基础写python爬虫之HTTP异常处理
2014/11/05 Python
Python request设置HTTPS代理代码解析
2018/02/12 Python
Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例
2018/03/23 Python
python使用Flask操作mysql实现登录功能
2018/05/14 Python
python3利用ctypes传入一个字符串类型的列表方法
2019/02/12 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
利用jupyter网页版本进行python函数查询方式
2020/04/14 Python
世界上第一个创建了罩杯系统的美国内衣品牌:Maidenform
2019/03/23 全球购物
大学生村官承诺书
2014/03/28 职场文书
贯彻落实“八项规定”思想汇报
2014/09/13 职场文书
论语读书笔记
2015/06/26 职场文书
民间借贷纠纷起诉书
2015/08/03 职场文书
python 实现定时任务的四种方式
2021/04/01 Python