【Vue】props + $emit 实现父子组件传值【实战篇】

props + $emit 实现父子组件传值

例子要求:

在这里插入图片描述
通过例子要求我们可以分析出: 三个组件

  • 主组件(父组件–展示个人信息列表~)
  • 新增子组件(子组件–填写数据、新增用户)
  • 详情子组件(子组件–查看点击的当前用户的个人信息详情)

既然有父子组件,那么他们其中必然需要联系,这时候 props、$emit 就派上用场了!!!

在这之前:如果你还不了解props$emit$parent,你可以先看看下面的博客,理解后再看本篇文章:

了解何为 props ?该如何使用呢 ?

何为 $emit ? 如何使用 ?

何为 $parent ?它的使用场景是什么?

component 动态组件 和 is属性

实现效果(这使用了 boostrap 简单布局)
首页

在这里插入图片描述

点击新增用户

默认页面
在这里插入图片描述
可以在表单输入数据~~
在这里插入图片描述
当点击新增时,则会新增用户,返回主页面,这时候,主页面会展示刚刚新增的用户~~
在这里插入图片描述
当点击取消不会新增用户~~,还是原始页面(1条数据)

点击详情

可以查看到刚刚新增的用户信息~

在这里插入图片描述
点击返回,则返回主页面~~
在这里插入图片描述

点击删除

会删除选中的项~比如删除第一项–蔡徐坤,则白胡子为第一项了
在这里插入图片描述

文件目录如下

在这里插入图片描述

代码如下
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>个人信息展示2</title>
    <link rel="stylesheet" href="bootstrap-3.3.7-dist/css/bootstrap.min.css">
    <link rel="stylesheet" href="bootstrap-3.3.7-dist/js/bootstrap.min.js">
    <script src="./vue.js"></script>
    <style>
      .father {
   
          width: 375px;
          height: 667px;
          border: 1px solid palevioletred;
          position: absolute;
          left: 50%;
          top: 50%;
          transform: translate(-50%,-50%);
          display: flex;
          flex-direction: column;
      }
      .father-page {
   
          margin: 10px 10px;
      }
      .father .father-form {
   
          margin: 10px 0;
          display: flex;
      }
      .father .father-form table {
   
          text-align: center;
      }
      .child-addPage {
   
          margin: 10px 10px;
      }
      .item-flex {
    /* 水平居中 */
          display: flex; 
          justify-content: center;
      }
      .child-detailPage{
   
          margin: 10px 10px;
      }
      .text-center{
   
          text-align: center;
      }
    </style>
</head>

<body>
    <!--父组件-->
    <div id="app" class="father">
        <div class="father-page" v-if="showMain">
            <div class="father-add">
                <button type="button" class="btn btn-primary" @click="showAddPage">新增用户</button>
            </div>
            <div class
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值