vue中子组件的methods中获取到props中的值方法


Posted in Javascript onAugust 27, 2018

父子组件通信

这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可

例如:

父组件中

<template>
  <div>
    <head-top></head-top>
    <section class="data_section">
      <header class="chart-title">数据统计</header>
      <el-row :gutter="20" class="chart-head">
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head blue-head">统计:</div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">销售数量 <span>{{number}}</span></div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">销售金额 <span>{{amount}}</span></div></el-col>
        <el-col :xs="24" :sm="12" :md="6" :lg="6"><div class="grid-content data-head">利润统计 <span>{{profits}}</span></div></el-col>
      </el-row>
    </section>
    <chart :chartData="chartData"></chart>
  </div>
</template>

<script>
  data(){
      return {
        number: null,
        amount: null,
        profits: null,
        chartData: [10,10,10]
      }
    },
</script>

子组件中

export default {
  props: ['chartData']
}

这种情况下,子组件的methods中想要取到props中的值,直接使用this.chartData即可

但是有写情况下,你的chartData里面的值并不是固定的,而是动态获取的,这种情况下,你会发现methods中是取不到你的chartData的,或者取到的一直是默认值

比如下面这个情况

父组件中

<script>
  data(){
      return {
        number: null,
        amount: null,
        profits: null,
        chartData: []
      }
    },
    mounted(){
      this.getStatistics();
    },
    methods: {
      //获取统计数据
      getStatistics(){
        console.log('获取统计数据')
        axios.post(api,{

        }).then((res) => {
          this.number = res.data.domain.list[0].number;
          this.amount = res.data.domain.list[0].amount;
          this.profits = res.data.domain.list[0].profits;
          this.chartData = [this.number,this.amount,this.profits];
        }).catch((err) => {
          console.log(err);
        })
      },
    },
</script>

此时子组件的methods中使用this.chartData会发现是不存在的(因为为空了)

这情况我是使用watch处理

解决方法如下:

使用watch

props: ['chartData'],
    data(){
      return {
        cData: []
      }
    },
    watch: {
      chartData: function(newVal,oldVal){
        this.cData = newVal; //newVal即是chartData
        this.drawChart();
      }
    },

监听chartData的值,当它由空转变时就会触发,这时候就能取到了,拿到值后要做的处理方法也需要在watch里面执行

以上这篇vue中子组件的methods中获取到props中的值方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
js验证表单大全
Nov 25 Javascript
javascript当onmousedown、onmouseup、onclick同时应用于同一个标签节点Element
Jan 05 Javascript
基于jquery实现的可以编辑选择的下拉框的代码
Nov 19 Javascript
Jquery 表单验证类介绍与实例
Jun 09 Javascript
js操作iframe父子窗体示例
May 22 Javascript
xmlplus组件设计系列之按钮(2)
Apr 26 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
Sep 21 Javascript
node的process以及child_process模块学习笔记
Mar 06 Javascript
JavaScript实现多态和继承的封装操作示例
Aug 20 Javascript
详解关于Angular4 ng-zorro使用过程中遇到的问题
Dec 05 Javascript
详解从vue-loader源码分析CSS Scoped的实现
Sep 23 Javascript
JavaScript WeakMap使用详解
Feb 05 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
Aug 27 #Javascript
vue里面v-bind和Props 利用props绑定动态数据的方法
Aug 27 #Javascript
vue.js中toast用法及使用toast弹框的实例代码
Aug 27 #Javascript
对Vue- 动态元素属性及v-bind和v-model的区别详解
Aug 27 #Javascript
VUE-Table上绑定Input通过render实现双向绑定数据的示例
Aug 27 #Javascript
vue监听input标签的value值方法
Aug 27 #Javascript
vue打包使用Nginx代理解决跨域问题
Aug 27 #Javascript
You might like
收音机频率指针指示不准确和灵敏度低问题
2021/03/02 无线电
生成ubuntu自动切换壁纸xml文件的php代码
2010/07/17 PHP
PHP字符串的连接的简单实例
2013/12/30 PHP
解析arp病毒背后利用的Javascript技术附解密方法
2007/08/06 Javascript
突发奇想的一个jquery插件
2010/11/19 Javascript
基于mootools 1.3框架下的图片滑动效果代码
2011/04/22 Javascript
使用typeof方法判断undefined类型
2014/09/09 Javascript
jQuery实现自定义下拉列表
2015/01/05 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
JavaScript模块化开发之SeaJS
2015/12/13 Javascript
浅谈Javascript中的12种DOM节点类型
2016/08/19 Javascript
前端常见跨域解决方案(全)
2017/09/19 Javascript
微信小程序loading组件显示载入动画用法示例【附源码下载】
2017/12/09 Javascript
解决jquery有正确返回值但不执行success函数的问题
2018/08/20 jQuery
jQuery事件blur()方法的使用实例讲解
2019/03/30 jQuery
小程序如何写动态标签的实现方法
2020/02/05 Javascript
vue实例的选项总结
2020/06/09 Javascript
vue3弹出层V3Popup实例详解
2021/01/04 Vue.js
python解析html提取数据,并生成word文档实例解析
2018/01/22 Python
Python简单计算文件MD5值的方法示例
2018/04/11 Python
对python读取CT医学图像的实例详解
2019/01/24 Python
python调试神器PySnooper的使用
2019/07/03 Python
简单了解python PEP的一些知识
2019/07/13 Python
Pytorch数据拼接与拆分操作实现图解
2020/04/30 Python
HTML5应用之文件上传
2016/12/30 HTML / CSS
德国药房apodiscounter中文官网:德国排名前三的网上药店
2019/06/03 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
汽车技术服务英文求职信范文
2014/01/02 职场文书
三八妇女节活动总结
2014/05/04 职场文书
计生专干事迹
2014/05/28 职场文书
关于保护环境的标语
2014/06/09 职场文书
学校拾金不昧表扬信
2015/01/16 职场文书
公司备用金管理制度
2015/08/04 职场文书
《钢铁是怎样炼成的》高中读后感
2019/08/07 职场文书
Spring整合Mybatis的全过程
2021/06/28 Java/Android
索尼ICF-36收音机评测
2022/04/30 无线电