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 相关文章推荐
基于jQuery的history历史记录插件
Dec 11 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
Oct 18 Javascript
js判断undefined类型,undefined,null, 的区别详细解析
Dec 16 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
Jan 28 Javascript
javascript实现图像循环明暗变化的方法
Feb 25 Javascript
jQuery插件Slider Revolution实现响应动画滑动图片切换效果
Jun 05 Javascript
JavaScript之WebSocket技术详解
Nov 18 Javascript
angularjs指令之绑定策略(@、=、&amp;)
Apr 13 Javascript
JS实现获取自定义属性data值的方法示例
Dec 19 Javascript
vuex中store存储store.commit和store.dispatch的用法
Jul 24 Javascript
JavaScript实现矩形块大小任意缩放
Aug 25 Javascript
解决VantUI popup 弹窗不弹出或无蒙层的问题
Nov 03 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
CI框架源码阅读,系统常量文件constants.php的配置
2013/02/28 PHP
几道坑人的PHP面试题 试试看看你会不会也中招
2014/08/19 PHP
Laravel框架实现即点即改功能的方法分析
2019/10/31 PHP
PHP的new static和new self的区别与使用
2019/11/27 PHP
用js实现的自定义的对话框的实现代码
2010/03/21 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
JS弹出对话框返回值代码(asp.net后台)
2010/12/28 Javascript
js时间日期格式化封装函数
2014/12/02 Javascript
用js代码和插件实现wordpress雪花飘落效果的四种方法
2014/12/15 Javascript
JavaScript中的全局对象介绍
2015/01/01 Javascript
javascript感应鼠标图片透明度显示的方法
2015/02/24 Javascript
微信小程序 教程之事件
2016/10/18 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
iview日期控件,双向绑定日期格式的方法
2018/03/15 Javascript
angularJs利用$scope处理升降序的方法
2018/10/08 Javascript
JAVA面试题 static关键字详解
2019/07/16 Javascript
vue2.0+SVG实现音乐播放圆形进度条组件
2019/09/21 Javascript
JS数组扁平化、去重、排序操作实例详解
2020/02/24 Javascript
js实现淘宝浏览商品放大镜功能
2020/10/28 Javascript
python统计文本文件内单词数量的方法
2015/05/30 Python
Python函数式编程
2017/07/20 Python
Python探索之SocketServer详解
2017/10/28 Python
python、java等哪一门编程语言适合人工智能?
2017/11/13 Python
在Python中给Nan值更改为0的方法
2018/10/30 Python
Django项目中添加ldap登陆认证功能的实现
2019/04/04 Python
使用 Python 在京东上抢口罩的思路详解
2020/02/27 Python
Scrapy爬虫文件批量运行的实现
2020/09/30 Python
中医药大学毕业生自荐信
2013/11/08 职场文书
放飞中国梦演讲稿
2014/04/23 职场文书
学习经验演讲稿
2014/05/10 职场文书
医疗器械售后服务承诺书
2014/05/21 职场文书
销售求职信范文
2014/05/26 职场文书
前台接待员岗位职责
2015/04/15 职场文书
pytorch交叉熵损失函数的weight参数的使用
2021/05/24 Python
Java方法重载和方法重写的区别到底在哪?
2021/06/11 Java/Android