问题

设计vue组件时,常常有这样一个应用场景:父组件通过接口请求回来的数据传给子组件, 然后在子组件内部我们会用一个props来接收,并且将该props赋值给data里面的一个变量(便于我们后期对这个数据操作,如果直接修改props,vue会报错)
这样会有一个问题,就是组件接受到的props是有值的,但是赋给data里面的变量却是空的。

  • 子组件
 props: {title: {type: Stinng,default: ''}, },data() {return {myTitle: this.titile}}
  • 父组件
<template>// 使用子组件<my-component :title="myData"/>
</template>
data() {return {myData: null}
},
created() {this.myData = fetchData() // 模拟请求后端的方法
}

这个时候在子组件中你会看到 title 是有值的,但是 myTitle 却是 null。
其实就是因为我们传给子组件的数据是异步获取的,而把props赋值给data是子组件初始化时执行的,子组件初始化的时候父组件的数据还没请求回来,所以props拿到的 this.titile 是 null,(或者是初始值)。 等到异步请求的数据回来了,props就会得到更新,但组件初始化已经结束了,也就不会再次赋值给data里面的变量了。

解决办法

简单的解决办法就是在子组件中使用watch,监听对应的props,然后实时更新data里面的值

  • 子组件
watch: {title(val){this.myTitle = val;}
}

vue中props传值给data时-props有值但data却是空的问题相关推荐

  1. vue父子组件传值之 $emit和props

    vue父子组件传值之 $emit和props 前言 子组件向父组件传值 父组件向子组件传值 前言 在进行vue的项目中,我们难免会需要父子组件之间进行传值,父子组件传值可以通过 $emit和props ...

  2. [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗?

    [vue] 在使用计算属性的时,函数名和data数据源中的数据可以同名吗? 莫名其妙的问题.可以同名,但data会覆盖methods.并且本就不该同名,同名说明你命名不规范.然后解释为什么会覆盖,因为 ...

  3. Vue中import引入模块路径时的@符号

    Vue中import引入模块路径时的@符号 1.ES6 模块主要有两个功能:export 和 import export:用户对外输出本模块(一个文件可以理解为一个模块,比如 aaa.js bbb.j ...

  4. vue中过滤器比较两个数组取相同值

    在vue中需要比较两个数组取相同值 一个大数组一个 小数组,小数组是大数组的一部分取相同ID的不同name值 有两种写法,两个for循环和map写法 const toName = (ids, arr) ...

  5. vue中prop传值

    props配置项 功能:让组件接收外部传过来的数据 传递数据:<Demo name="xxx"/> 接收数据: 第一种方式(只接收):props:['name'] 第二 ...

  6. vue中的方法 methods 定义时不要使用箭头函数

    今天在vue中引入vuex的时候出现了错误,解决了一个多少时,总结如下: vuex 的使用: vuex就是一个状态管里中心 也好比一个仓库 细分可分为五个部分,这是我不考虑 module 分别是 st ...

  7. android studio debug设置,在Android Studio中使用Flutter进行调试时如何“设置值...”

    问题 使用"New Flutter Project"创建Flutter App时,以下图像和代码是默认设置 . import 'package:flutter/material.d ...

  8. vue中解决 mouseenter 和 mouseout 时,鼠标进入子组件造成 mouseout 触发而闪烁的问题

    解决 mouseenter 和 mouseout 时,鼠标进入子组件造成 mouseout 触发而闪烁的问题 1.需求背景 2.核心解决方法 3.两对鼠标事件的区别 (1)mouseover 和 mo ...

  9. vue中解决模糊搜索输入中文时--未输入完成时触发input事件

    在给输入框绑定input或keydown事件时 预期效果是有输入法时,输入中文后触发事件,不希望输一个字母就触发一次事件 可以用到compositionstart,compositionend. 主流 ...

最新文章

  1. 用U盘破除XP管理员密码
  2. PESCMS Ticket 客服工单系统 v1.2.5 发布
  3. CPU 的 ring0、ring1、ring2、ring3
  4. 刷抖音看到 Python 工程师的工资条后,我沉默了...
  5. 教你如何一篇博客读懂设计模式之—--工厂模式
  6. 【转】一致性hash算法与server列表维护
  7. iOS开发计算工程里面的代码行数
  8. VIIRS SDR数据预处理(一)
  9. 《BGP设计与实现》一2.10 案例研究:BGP内存的使用评估
  10. sql server2016导入excel错误
  11. JLink驱动设备管理器中显示黄色感叹号
  12. 数据结构--算法达人修炼学习安排及方法指导
  13. Win64 驱动签名
  14. UltraVNC,UltraVNC软件可以用来干嘛?
  15. N种方法让你的文章排版更好看
  16. 全面解读系统更新,收藏下这份 Android 12 (S) 版本适配自查表
  17. python throw_python 之 异常处理
  18. CSS中visibility 属性
  19. 本周票房大盘 API数据接口
  20. Spring-JdbcTemplate环境搭配及基本功能

热门文章

  1. Unity3d导出的安卓包如何在真机上看log打印
  2. 计算机技术考研科目大纲,2017计算机考研大纲:计算机大纲文字完整版
  3. vCenter Server 补丁升级手册
  4. 用vb.net制作贪吃蛇游戏
  5. VS Code 中选中英文单词大小写切换快捷键
  6. iphonex正面图_iPhoneX高清全方位图赏
  7. echarts地图中显示数字或省份
  8. SnapChat明年IPO 创始人为保证控制权改股权结构
  9. 重新排列数组[数组] 给你一个数组 nums ,数组中有 2n 个元素,按 [x1,x2,...,xn,y1,y2,...,yn] 的格式排列。请你将数组按 [x1,y1,x2,y2,...,x
  10. 车载GNSS/INS/LiDAR坐标系定义与理解