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 相关文章推荐
(function($){...})(jQuery)的意思
Jul 22 Javascript
jquery使用append(content)方法注意事项分享
Jan 06 Javascript
jquery实现checkbox 全选/全不选的通用写法
Feb 22 Javascript
js分页代码分享
Apr 28 Javascript
javascript中setTimeout的问题解决方法
May 08 Javascript
js实现的星星评分功能函数
Dec 09 Javascript
倾力总结40条常见的移动端Web页面问题解决方案
May 24 Javascript
js在ie下打开对话窗口的方法小结
Oct 24 Javascript
浅析JavaScript中break、continue和return的区别
Nov 30 Javascript
js中setTimeout的妙用--防止循环超时
Mar 06 Javascript
从0到1搭建element后台框架优化篇(打包优化)
May 12 Javascript
详解微信小程序工程化探索之webpack实战
Apr 20 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
PHP使用PHPMailer发送邮件的简单使用方法
2013/11/12 PHP
PHP命名空间(namespace)的使用基础及示例
2014/08/18 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
PHP制作登录异常ip检测功能的实例代码
2016/11/16 PHP
/etc/php-fpm.d/www.conf 配置注意事项
2017/02/04 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
Laravel框架源码解析之模型Model原理与用法解析
2020/05/14 PHP
JavaScript 构造函数 面相对象学习必备知识
2010/06/09 Javascript
Extjs根据条件设置表格某行背景色示例
2014/07/23 Javascript
JS实现简易图片轮播效果的方法
2015/03/25 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
JS 日期与时间戮相互转化的简单实例
2016/06/22 Javascript
AngularJS实现按钮提示与点击变色效果
2016/09/07 Javascript
jquery仿京东商品放大浏览页面
2017/06/06 jQuery
原生js封装添加class,删除class的实例
2017/11/06 Javascript
Vue实现表格中对数据进行转换、处理的方法
2018/09/06 Javascript
Vue组件通信的几种实现方法
2019/04/25 Javascript
Vue项目中使用jquery的简单方法
2019/05/16 jQuery
Vue 实现CLI 3.0 + momentjs + lodash打包时优化
2019/11/13 Javascript
微信小程序canvas截取任意形状的实现代码
2020/01/13 Javascript
浅谈JavaScript中你可能不知道URL构造函数的属性
2020/07/13 Javascript
python导入csv文件出现SyntaxError问题分析
2017/12/15 Python
Python根据已知邻接矩阵绘制无向图操作示例
2018/06/23 Python
python3.4爬虫demo
2019/01/22 Python
python获取交互式ssh shell的方法
2019/02/14 Python
使用Python操作FTP实现上传和下载的方法
2019/04/01 Python
python+selenium实现自动化百度搜索关键词
2019/06/03 Python
Kears+Opencv实现简单人脸识别
2019/08/28 Python
统计学专业毕业生的自我评价分享
2013/11/28 职场文书
干部行政关系介绍信
2014/01/17 职场文书
幼儿园教师培训方案
2014/02/04 职场文书
2014年党支部学习材料
2014/05/19 职场文书
文明寝室标语
2014/06/13 职场文书
会计专业2019暑假实习报告
2019/06/21 职场文书
收音机爱好者玩机13年,简评其使用过的19台收音机
2022/04/30 无线电
小程序实现侧滑删除功能
2022/06/25 Javascript