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初学者的编写开发的七个细节
Jan 11 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
Sep 15 Javascript
动态加载jQuery的方法
Jun 16 Javascript
js正则表达式中exec用法实例
Jul 23 Javascript
jQuery简单实现title提示效果示例
Aug 01 Javascript
JavaScript中的对象和原型(一)
Aug 12 Javascript
jQuery实现两列等高并自适应高度
Dec 22 Javascript
AngularJS路由切换实现方法分析
Mar 17 Javascript
微信小程序搜索组件wxSearch实例详解
Jun 08 Javascript
angular.js + require.js构建模块化单页面应用的方法步骤
Jul 19 Javascript
小程序中canvas的drawImage方法参数使用详解
Jul 04 Javascript
详解element-ui 表单校验 Rules 配置 常用黑科技
Jul 11 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 flush类输出缓冲剖析
2008/10/19 PHP
PHP生成随机密码类分享
2014/06/25 PHP
10个对初学者非常有用的PHP技巧
2016/04/06 PHP
PHP文件管理之实现网盘及压缩包的功能操作
2017/09/20 PHP
2020最新版 PhpStudy V8.1版本下载安装使用详解
2020/10/30 PHP
Alliance vs Liquid BO3 第二场2.13
2021/03/10 DOTA
动态改变textbox的宽高的js
2006/10/26 Javascript
javascript setTimeout和setInterval 的区别
2009/12/08 Javascript
基于jQuery的可用于选项卡及幻灯的切换插件
2011/03/28 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
js中定义一个变量并判断其是否为空的方法
2014/05/13 Javascript
jquery实现textarea 高度自适应
2015/03/11 Javascript
jQuery实现商品活动倒计时
2015/10/16 Javascript
基于Vue实现支持按周切换的日历
2020/09/24 Javascript
js使用html2canvas实现屏幕截取的示例代码
2017/08/28 Javascript
使用JavaScript实现一个小程序之99乘法表
2017/09/21 Javascript
vue-router+nginx 非根路径配置方法
2018/06/30 Javascript
vue柱状进度条图像的完美实现方案
2019/08/26 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
vue实现购物车列表
2020/06/30 Javascript
解决vue scoped scss 无效的问题
2020/09/04 Javascript
python中查看变量内存地址的方法
2015/05/05 Python
python正则表达式的使用
2017/06/12 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
TensorFlow dataset.shuffle、batch、repeat的使用详解
2020/01/21 Python
Tensorflow 1.0之后模型文件、权重数值的读取方式
2020/02/12 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
分享8款纯CSS3实现的搜索框功能
2017/09/14 HTML / CSS
房产销售经理职责
2013/12/20 职场文书
销售经理竞聘书
2014/03/31 职场文书
小学家长学校培训材料
2014/08/24 职场文书
工作所在部门证明
2014/09/21 职场文书
个人委托书如何写
2014/09/25 职场文书
人事专员岗位职责
2015/02/03 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
2015年语言文字工作总结
2015/07/23 职场文书