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 相关文章推荐
XMLHttpRequest处理xml格式的返回数据(示例代码)
Nov 21 Javascript
jQuery中outerHeight()方法用法实例
Jan 19 Javascript
jQuery模拟新浪微博首页滚动效果的方法
Mar 11 Javascript
JavaScript动态改变表格单元格内容的方法
Mar 30 Javascript
BootStrap智能表单实战系列(十一)级联下拉的支持
Jun 13 Javascript
JS取模、取商及取整运算方法示例
Oct 13 Javascript
浅谈MVC+EF easyui dataGrid 动态加载分页表格
Nov 10 Javascript
JS判断是否为JSON对象及是否存在某字段的方法(推荐)
Nov 29 Javascript
Bootstrap CSS组件之按钮组(btn-group)
Dec 17 Javascript
JS如何实现在页面上快速定位(锚点跳转问题)
Aug 14 Javascript
Vue路由切换时的左滑和右滑效果示例
May 29 Javascript
使用koa2创建web项目的方法步骤
Mar 12 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编程快速实现数组去重的方法详解
2017/07/22 PHP
PHP将英文数字转换为阿拉伯数字实例讲解
2019/01/28 PHP
利用PHP如何统计Nginx日志的User Agent数据
2019/03/06 PHP
php设计模式之单例模式用法经典示例分析
2019/09/20 PHP
PHP接入支付宝接口失效流程详解
2020/11/10 PHP
JavaScript 异步调用框架 (Part 3 - 代码实现)
2009/08/04 Javascript
jquery实现左右无缝轮播图
2020/07/31 Javascript
js和jq使用submit方法无法提交表单的快速解决方法
2016/05/17 Javascript
js基于setTimeout与setInterval实现多线程
2016/06/17 Javascript
textarea 在浏览器中固定大小和禁止拖动的实现方法
2016/12/03 Javascript
微信小程序 省市区选择器实例详解(附源码下载)
2017/01/05 Javascript
微信小程序 生命周期和页面的生命周期详细介绍
2017/01/19 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
layUI实现三级导航菜单效果
2019/07/26 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
Vue Render函数原理及代码实例解析
2020/07/30 Javascript
js实现数字跳动到指定数字
2020/08/25 Javascript
Openlayers+EasyUI Tree动态实现图层控制
2020/09/28 Javascript
python以环状形式组合排列图片并输出的方法
2015/03/17 Python
python下os模块强大的重命名方法renames详解
2017/03/07 Python
用Python逐行分析文件方法
2019/01/28 Python
python 随机森林算法及其优化详解
2019/07/11 Python
python 默认参数相关知识详解
2019/09/18 Python
彻底搞懂python 迭代器和生成器
2020/09/07 Python
浅谈盘点5种基于Python生成的个性化语音方法
2021/02/05 Python
纯CSS3实现带动画效果导航菜单无需js
2013/09/27 HTML / CSS
HTML5添加鼠标悬浮音响效果不使用FLASH
2014/04/23 HTML / CSS
美津浓巴西官方网站:Mizuno巴西
2019/07/24 全球购物
New Balance法国官方网站:购买鞋子和服装
2019/09/01 全球购物
自主招生推荐信范文
2014/05/10 职场文书
放飞理想演讲稿
2014/09/09 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
暂住证明怎么写
2015/06/19 职场文书
如何理解PHP核心特性命名空间
2021/05/28 PHP
Java生成读取条形码和二维码的简单示例
2021/07/09 Java/Android
纯html+css实现Element loading效果
2021/08/02 HTML / CSS