最近用vue练习项目,想在子组件中使用props中的值,但是在mounted中没有办法拿,最后终于搞明白了

这里我简单说一下父组件给子组件传值的两种情况(静态跟动态的数据)。

父组件中:

 <template><div class="order"><!-- 子组件  父组件通过属性传值  属性用-链接,值用驼峰命名--> <order-header :order-data="orderData" :order-data1="orderData1"></order-header></div></template><script>export default{data(){return {orderData:[],    //这里的数据是动态的, (可以是从后端获取的数据)orderData1:[1,2,3]  //这里为静态值直接传给子组件,并且不发生变化}},mounted(){this.getOrder();},methods:{//获取数据getOrder(){axios.post(api,{}).then((res)=>{console.log(res);//将请求的数据放在orderData中    //这里的res.data.pageData是数组this.orderData =  res.data.pageData}).catch((err)=>{console.log(err);})}}}</script>

分析
父组件传递给子组件传递两个值,orderData1传递静态不变的值,orderData传递动态的值

子组件:

 export default{props:['orderData','orderData1']
}

分析
子组件中接收用props,在template中可以直接使用{{orderData}}
子组件的methods中想要取到props中的值,
直接使用this.orderData1,但这种情况只能获取静态的值,所以只能获取orderData1,而orderData的值是动态的,如果用this.**获取到的是空或者是默认值

解决方法使用watch

 //  这里单独解释orderData(动态)props:['orderData'],data(){return {newOrderData:[]}},methods:{order(){console.log(this.newOrderData)     }},watch:{orderData:function(newData,oldData){console.log(newData)  //newData就是orderDatathis.newOrderData = newData;     //  methods的函数在这里调用可以获取到newOrderData的值        this.order();}}

注:监听的值,如果有空转变时就触发,拿到值之后的处理方法也要在watch中运行

结论

props接收静态数据用this.**
动态数据用watch

如有不足之处,还望不吝赐教

vue子组件methods中获取props的值相关推荐

  1. vue组件获取props_vue中子组件的methods中获取到props中的值方法

    父子组件通信 这个官网很清楚,也很简单,父组件中使用v-bind绑定传送,子组件使用props接收即可 例如: 父组件中 数据统计 统计: 销售数量 {{number}} 销售金额 {{amount} ...

  2. vue父组件变量传递子组件_Vue.js 父组件向子组件传递数据通过 props

    我的使用场景:父组件:home.vue 子组件:feed-section.vue 父组件 home.vue 通过请求拿到数据后,传递给子组件 feed-section.vue:因为在子组件中需要渲染 ...

  3. vue子组件通过.sync修饰符修改props属性

    在vue子组件中,如果我们直接修改props中的属性,会报错: Avoid mutating a prop directly since the value will be overwritten w ...

  4. Vue父组件传子组件数据中,Vue监听不到数据改变

    Vue父组件传子组件数据中,Vue监听不到数据改变 官方文档说明(引用来自官网) 检测变化的注意事项 由于 JavaScript 的限制,Vue 不能检测数组和对象的变化.尽管如此我们还是有一些办法来 ...

  5. vue子组件mounted不执行_vue中父子组件传值,解决钩子函数mounted只运行一次的问题...

    因为mounted函数只会在html和模板渲染之后会加载一次,但是在子组件中只有第一次的数据显示是正常的,所以需要再增加一个updated函数,在更新之后就可以重新进行取值加载,完成数据的正常显示. ...

  6. vue --- 子组件监听点击事件,接收父组件参数.实现对应跳转

    开始 vue中子组件这一块,有点麻烦.不是说它很难,而是它的传送数据方式,以及和各种前端后端路由混在一起时,如果不清晰很容易就迷茫 下面假设: 路由配置文件为:router.js 父组件为 paren ...

  7. Vue子组件的显示与隐藏

    文章目录 Vue子组件的显示与隐藏 第一步 使用v-show 1.1 父组件 1.2 子组件 2 第二步 父子组件传参 2.1 父组件 2.2 子组件 Vue子组件的显示与隐藏 在使用Vue开发前端页 ...

  8. vue子组件mounted不执行_vue 页面回退mounted函数不执行的解决方案

    前言 最近做项目碰到一个很头大的问题--从a页面跳到b页面进行编辑,编辑完再返回a页面,却没走a页面的钩子函数mounted,数据没有更新 经过一番面向百度研究,终于找到了问题所在.接下来就记录一下这 ...

  9. vue 关于父组件同时多次调用子组件而产生的 this取值 的bug问题

    vue 关于父组件同时多次调用子组件而产生的 this取值 的bug问题 我们在开发vue项目的使用,会经常使用this这个关键字,this指向vue这个实例,我们可以使用this.来获取data里面 ...

最新文章

  1. {code:-1,error:`QcloudSecretId`不能为空,请确保 SDK 配置已正确初始化}解决方法
  2. XMOVE3.0手持终端——软件介绍(五):在2KB内存的单片机上实现的T9中文输入法
  3. 原创 | 这可能是比房子更保值的资产?七步法构建数据资产价值评估模型
  4. 数据结构之并查集:并查集的介绍与Python代码实现——18
  5. RTT的线程同步篇——事件
  6. 郁闷的.net程序员与坑爹的.net 4 client profile
  7. 谷歌升级云数据库:更多的储存及更快的读取
  8. 未能加载文件或程序集“Microsoft.Office.Interop.Excel, Version=11.0.0.0, Culture=neutral
  9. js 字符串 转换 html标签,js 字符串转html标签
  10. 使用 closest 和 matches 方法来检测元素是否存在某选择器
  11. 汽车价格离群值检测案例
  12. 怎样选择区块链投资项目?
  13. Word粘贴图片只显示下面底部一部分
  14. 09批量提取京东商品名称和价格
  15. 李想两万字回应:我们如何造车?
  16. 重整山河!2017eSmart,让VR飞一会儿
  17. 指数和对数的公式总结
  18. 大笨钟的心情 (15 分)
  19. SQL常见函数及题目整理
  20. 如何做好企业级IT系统运维

热门文章

  1. 2022 首发 鲸发卡v11.61系统源码 开心修复版
  2. 移动通信网络相关知识
  3. eclipse无法进入debug模式
  4. react 接口调用
  5. oracle rowID切片,Oracle中rowid的用法
  6. 二、12【FPGA】分频器 —— 奇偶分频
  7. win7下一台电脑3台显示器
  8. 安全之路:Web渗透技术及实战案例解析(第2版)
  9. 如何将AI转换为JPG
  10. JSP网上机票销售系统的设计与实现