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代码
Aug 25 Javascript
映彩衣的js随笔(js图片切换效果)
Jul 31 Javascript
JavaScript Math.floor方法(对数值向下取整)
Jan 09 Javascript
浅谈JavaScript异常处理语句
Jun 26 Javascript
JavaScript 经典实例日常收集整理(常用经典)
Mar 30 Javascript
js添加绑定事件的方法
May 15 Javascript
使用Script元素发送JSONP请求的方法
Jun 12 Javascript
移动端界面的适配
Jan 11 Javascript
Vue 事件处理操作实例详解
Mar 05 Javascript
关于JavaScript 数组你应该知道的事情(推荐)
Apr 10 Javascript
Vue.js watch监视属性知识点总结
Nov 11 Javascript
jQuery实现简单日历效果
Jul 05 jQuery
最适应的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读取网页文件内容的实现代码(fopen,curl等)
2011/06/23 PHP
那些年一起学习的PHP(一)
2012/03/21 PHP
php getcwd与dirname(__FILE__)区别详解
2016/09/24 PHP
PHP中类与对象功能、用法实例解读
2020/03/27 PHP
使用javascript为网页增加夜间模式
2014/01/26 Javascript
jQuery实现批量判断表单中文本框非空的方法(2种方法)
2015/12/09 Javascript
JavaScript类型系统之正则表达式
2016/01/05 Javascript
JS获取元素多层嵌套思路详解
2016/05/16 Javascript
js获取Html元素的实际宽度高度的方法
2016/05/19 Javascript
总结几道关于Node.js的面试问题
2017/01/11 Javascript
JS+HTML实现的圆形可点击区域示例【3种方法】
2018/08/01 Javascript
bootstrap模态框关闭后清除模态框的数据方法
2018/08/10 Javascript
vue webpack开发访问后台接口全局配置的方法
2018/09/18 Javascript
js前端如何写一个精确的倒计时代码
2019/10/25 Javascript
原生js实现自定义难度的扫雷游戏
2021/01/22 Javascript
[01:00]DOTA2 store: Collection of Artisan's Wonders
2015/08/12 DOTA
[54:43]DOTA2-DPC中国联赛 正赛 CDEC vs Dynasty BO3 第一场 2月22日
2021/03/11 DOTA
用实例说明python的*args和**kwargs用法
2013/11/01 Python
Python json模块使用实例
2015/04/11 Python
python opencv 图像尺寸变换方法
2018/04/02 Python
Python wxPython库消息对话框MessageDialog用法示例
2018/09/03 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
Python中的 enum 模块源码详析
2019/01/09 Python
Pytorch 抽取vgg各层并进行定制化处理的方法
2019/08/20 Python
Pytorch GPU显存充足却显示out of memory的解决方式
2020/01/13 Python
Pycharm激活方法及详细教程(详细且实用)
2020/05/12 Python
python实现简易版学生成绩管理系统
2020/06/22 Python
python 图像增强算法实现详解
2021/01/24 Python
利用CSS3实现炫酷的飞机起飞动画
2016/09/17 HTML / CSS
HTML5实现预览本地图片
2016/02/17 HTML / CSS
Kappa英国官方在线商店:服装和运动器材
2020/11/22 全球购物
通信工程毕业生求职信
2013/11/16 职场文书
和谐社区口号
2014/06/19 职场文书
司考复习计划
2015/01/19 职场文书
单位综合评价意见
2015/06/05 职场文书
2019下半年英语教师的教学工作计划(3篇)
2019/09/25 职场文书