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 相关文章推荐
关于COOKIE个数与大小的问题
Jan 17 Javascript
jquery刷新页面的实现代码(局部及全页面刷新)
Jul 11 Javascript
jquery时间下拉框小例子
Apr 15 Javascript
jquery原创弹出层折叠效果点击折叠弹出一个层
Mar 12 Javascript
jQuery打印图片pdf、txt示例代码
Jul 22 Javascript
JavaScript AJAX之惰性载入函数
Aug 27 Javascript
同一个网页中实现多个JavaScript特效的方法
Feb 02 Javascript
javascript相关事件的几个概念
May 21 Javascript
初步了解javascript面向对象
Nov 09 Javascript
初学者AngularJS的环境搭建过程
Oct 27 Javascript
微信小程序动态生成二维码的实现代码
Jul 25 Javascript
mui js控制开关状态、修改switch开关的值方法
Sep 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
DOTA2 无惧惊涛骇浪 昆卡大型水友攻略
2020/04/20 DOTA
JAVA/JSP学习系列之四
2006/10/09 PHP
PHP 各种排序算法实现代码
2009/08/20 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
PHP使用in_array函数检查数组中是否存在某个值
2015/03/25 PHP
android上传图片到PHP的过程详解
2015/08/03 PHP
js实现的网页颜色代码表全集
2007/07/17 Javascript
javascript 从if else 到 switch case 再到抽象
2010/07/17 Javascript
Jquery getJSON方法详细分析
2013/12/26 Javascript
通过Jquery的Ajax方法读取将table转换为Json
2014/05/31 Javascript
js调试系列 断点与动态调试[基础篇]
2014/06/18 Javascript
深入分析js的冒泡事件
2014/12/05 Javascript
使用JavaScript获取地址栏参数的方法
2014/12/19 Javascript
jQuery中:focus选择器用法实例
2014/12/30 Javascript
Js可拖拽放大的层拖动特效实现方法
2015/02/25 Javascript
JavaScript对象学习小结
2015/09/02 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
2015/11/04 Javascript
详解AngularJs HTTP响应拦截器实现登陆、权限校验
2017/04/11 Javascript
jQuery操作css样式
2017/05/15 jQuery
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
Vuex 在Vue 组件中获得Vuex 状态state的方法
2018/08/27 Javascript
浅析JS中什么是自定义react数据验证组件
2018/10/19 Javascript
在vue中使用vant TreeSelect分类选择组件操作
2020/11/02 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
Python 调用DLL操作抄表机
2009/01/12 Python
在Python中操作文件之read()方法的使用教程
2015/05/24 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
css3 box-shadow阴影(外阴影与外发光)图示讲解
2017/08/11 HTML / CSS
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
法学专业自我鉴定
2014/02/05 职场文书
学生会竞选演讲稿
2014/04/24 职场文书
升职感谢信
2015/01/22 职场文书
社区六一儿童节活动总结
2015/02/11 职场文书
复试通知单模板
2015/04/24 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL