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 相关文章推荐
Javascript打印网页部分内容的脚本
Nov 17 Javascript
$.ajax返回的JSON无法执行success的解决方法
Sep 09 Javascript
JavaScript包装对象使用介绍
Aug 29 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
js实现可兼容IE、FF、Chrome、Opera及Safari的音乐播放器
Feb 11 Javascript
JavaScript每天必学之事件
Sep 18 Javascript
微信小程使用swiper组件实现图片轮播切换显示功能【附源码下载】
Dec 12 Javascript
浅谈Postman解决token传参的问题
Mar 31 Javascript
D3.js实现简洁实用的动态仪表盘的示例
Apr 04 Javascript
微信小程序之裁剪图片成圆形的实现代码
Oct 11 Javascript
浅析vue中的MVVM实现原理
Mar 04 Javascript
VUE路由动态加载实例代码讲解
Aug 26 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
德劲1103二次变频版的打磨
2021/03/02 无线电
解决yii2左侧菜单子级无法高亮问题的方法
2016/05/08 PHP
使用jquery动态加载js文件的方法
2014/12/24 Javascript
javascript中AJAX用法实例分析
2015/01/30 Javascript
JavaScript编程中的Promise使用大全
2015/07/28 Javascript
JS组件Bootstrap ContextMenu右键菜单使用方法
2016/04/17 Javascript
js获取iframe中的window对象的实现方法
2016/05/20 Javascript
JS组件Bootstrap Table布局详解
2016/05/27 Javascript
vue2.0设置proxyTable使用axios进行跨域请求的方法
2017/10/19 Javascript
JS 中document.write()的用法和清空的原因浅析
2017/12/04 Javascript
微信小程序实现文字跑马灯
2020/05/26 Javascript
原生js实现的移动端可拖动进度条插件功能详解
2019/08/15 Javascript
使用layui定义一个模块并使用的例子
2019/09/14 Javascript
mpvue实现左侧导航与右侧内容的联动
2019/10/21 Javascript
vue中的mescroll搜索运用及各种填坑处理
2019/10/30 Javascript
通过实例解析chrome如何在mac环境中安装vue-devtools插件
2020/07/10 Javascript
typescript配置alias的详细步骤
2020/08/12 Javascript
[37:47]IG vs Winstrike 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python pass 语句使用示例
2014/03/11 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
对Python3 pyc 文件的使用详解
2019/02/16 Python
Django框架orM与自定义SQL语句混合事务控制操作
2019/06/27 Python
react+django清除浏览器缓存的几种方法小结
2019/07/17 Python
django如何实现视图重定向
2019/07/24 Python
利用anaconda作为python的依赖库管理方法
2019/08/13 Python
Python判断字符串是否为合法标示符操作
2020/09/03 Python
中间件分为哪几类
2016/09/18 面试题
资产评估专业学生的自我鉴定
2013/11/14 职场文书
单位介绍信范文
2014/01/18 职场文书
ktv总经理岗位职责
2014/02/17 职场文书
2014年加油站站长工作总结
2014/12/23 职场文书
优秀护士事迹材料
2014/12/25 职场文书
房屋认购协议书
2015/01/29 职场文书
试用期自我评价怎么写
2015/03/10 职场文书
因个人工作失误检讨书
2019/06/21 职场文书
教你漂亮打印Pandas DataFrames和Series
2021/05/29 Python