vuejs 父子组件传值实例

如图:需求分析

父组件是页面,显示表格数据,子组件是一个功能和信息栏,主要是添加信息的表单以及记录表格数据条数。子组件如何获取父组件数据条数呢?

使用computed计算数据长度

computed:{
       total(){
        let THIS=this;
        let totalList=THIS.todo.length;//获取数据长度
        return totalList;
       },
       noFinsh(){
        let THIS=this;
        let count=0;
        THIS.todo.forEach(item=>{
            if(item.status==0){
                    count+=1;
            }

        });
        return count;
       }

    }

 组件标签中传值:

<header-info :postChild=‘this.total‘:postNoFinsh=‘this.noFinsh‘  @handleClick=‘addToTable‘></header-info>

  

 子组件接收

props:{ //接收从父组件(index页面中head-info标签中postChild数据)
        postChild:{ //数据格式
            type:Number,
            required:true
        },
        postNoFinsh:{
            type:Number,
            required:true
        }

    },

 子组件显示:

<el-row class=‘head_row‘>
    <span>总事项:</span><span>{{postChild}}</span> 
    <span>未完成事项:</span><span style="color:red">{{postNoFinsh}}</span>
    <span>总共登入次数:</span><span>{{visitTimes}}</span>

   </el-row>

 子组件传值父组件:

子组件主要把表单数据传递给父组件,一般提交后我们需要清空表单数据,可是这样会导致父组件刚刚添加的数据也被清空,所以我们可以拷贝一份数据给父组件,同时将原来表单数据清空

computed:{
        //使用计算属性
        formData2(){
            //拷贝出一份表单数据,使用拷贝出的数据进行提交
            let newObj=Object.assign({}, this.formData);
            return newObj;

        }

    },

  提交数据:

add(){
          debugger;
          this.formData2.date=getYMDdate(this.date);
          /*注意使用父子组件通过$emit传数据依然是一个双向绑定过程
            提交之后如果后面直接清空数据会再次触发数据的改变,导致父组件表格数据也为空
          */
          //表单验证
          if(isInt(this.formData2.importantStar)){
            this.$emit(‘handleClick‘,this.formData2);
            this.date=‘‘;
            this.formData.importantStar=‘‘;
            this.formData.text=‘‘;

          }else{
            alert(‘请输入整数‘);
          }

        },

  

 

原文地址:https://www.cnblogs.com/luojunweb/p/8496288.html

时间: 2024-07-30 03:27:13

vuejs 父子组件传值实例的相关文章

【vue】父组件主动调用子组件 /// 非父子组件传值

一  父组件主动调用子组件: 注意:在父组件使用子组件的标签上注入ref属性,例如: <div id="home"> <v-header ref="header"></v-header> <hr> 首页组件 <button @click="getChildData()">获取子组件的数据和方法</button> </div> 父组件主动获取子组件的数据和方法: 1

react父子组件传值

react均是以组件构成,那父子组件传值就很重要了 父组件传值给子组件,不仅可以传值,传事件,还可以传实例 1.父组件传值给子组件 传值 父组件: import React from 'react'; import Children from './Children'; class Father extends React.Component { constructor(props) { super(props); this.state = { msg:'父组件的msg' }; } render

Vue父子组件传值

 Vue父子组件传值:有四种方式:props,ref,emit 和模板传递通信slot 通过props来传值: 静态传值就是直接通过props来传递 动态传值是通过v-bind来绑定一个要传递值的key,然后后面跟要传递的内容,不过这个内容是可以改变的 比如: <input v-model="parentMsg"> <child v-bind:message="parentMsg"></child> 传递的值会跟着input里面输

十八、React react-router4.x中:实现路由模块化、以及嵌套路由父子组件传值

一.路由模块化(用字典定义路由,然后循环出来) 1.官方文档参考 [官方文档]https://reacttraining.com/react-router/web/guides/quick-start [路由模块化实例]https://reacttraining.com/react-router/web/example/route-config 2.路由模块化:实现代码 其它代码参考:十七:https://blog.csdn.net/u010132177/article/details/1033

一个故事讲懂vue父子组件传值

作者:李佳明同学链接:https://www.jianshu.com/p/2272b6ca0f0c 一个故事讲懂vue父子组件传值 讲故事前先讲代码 父组件向子组件传值 父组件数据传递给子组件可以通过props属性来实现父组件: <template>  <div id="app">    <child-component v-bind:dataOfChild="dataOfParent"></child-component&

Angular 父子组件传值

Angular 父子组件传值 @Input  @Output  @ViewChild 新建一个头部组件 newsheader 在主组件引用 news 组件,在news组件添加 newsheader 组件. 设置newsheader组件样式 设置newsheader组件的内容,添加一个class属性 <h2 class="header">这是一个头部组件</h2> 如果需要全局设置,则在 style.css 中设置. 如果单独设置自己的,则在自己组件的css中设置

创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

1.创建组件的方法   函数组件   class组件 1.1 函数组 无状态函数式组件形式上表现为一个只带有一个 `render()` 方法的组件类,通过函数形式或者 `ES6` 箭头 `function`的形式在创建,并且该组件是无state状态的.具体的创建形式如下 1 import React from 'react '; 2 3 //定义一个React组件 4 function App() { 5 return ( 6 <div> 7 hello React... 8 </div

Vue组件通信之非父子组件传值

前言: 如果想要了解非父子关系的组件传值,最好是在了解父传子和子传父的基础上在来了解非父子传值可能会有更透彻的思路. 因为非父子传值是通过定义事件总线来代理实现父传子+子传父从而实现的传值方式. 这是我总结的父子传值相关的知识,可供参考: https://www.cnblogs.com/ViavaCos/p/11712131.html 然后大概回顾一下父子传值的过程: 根据上述信息可知,如果两个组件需要传递值那么需要这两个组件之间是父子关系才能传递数据. 那么如果有这样一个组件,既可以帮你传递数

react基础总结篇1,定义组件实现父子组件传值

前端时间学习了vue,这几天开始入手react了. react项目搭建起来之后,我们一定会定义很多个组件.同样的也会涉及到父子组件的传值.今天来整理一下这个知识. 1,定义子组件步骤 1,引入react. import React,{Component} from 'react'; import './style.less'; 2,写组件并export default导出去用到了es6中的calss语法,提前说一下,this.props.content用来接收父组件中content的值,this