vue:如何使传递给组件的对象具有反应性?

2024-04-06

Codepen 演示 https://codepen.io/lzl124631x/pen/PayPVp?editors=1010

我有一个组件有一个location对象为props。我传入的参数是locations[index]这是从 a 中选择的项目locations array.

然而,当index改变。正如您在演示中看到的,单击按钮时 JSON 发生变化,但组件无法更新。

使组件具有反应性的最佳方法是什么?


Your location组件填充province and city中的数据属性mounted仅钩子。当。。。的时候location道具变化,mountedhook 不会再次被调用,因此您将留下陈旧的数据。

使用计算属性代替:

computed: {
  province() {
    return this.location.province;
  },
  city() {
    return this.location.city;
  }
}

更新了代码笔 https://codepen.io/anon/pen/gKBPGo?editors=1010

如果你确实需要province and city是数据属性(而不是计算属性),那么您将需要观看location更新属性的 prop:

data() {
  return {
    province: null,
    city: null
  }
},
watch: {
  location: {
    immediate: true,
    handler(loc) {
      this.province = loc.province;
      this.city = loc.city;
    }
  }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vue:如何使传递给组件的对象具有反应性? 的相关文章

随机推荐

  • Android sdk 中缺少 Cordova gradle 包装器

    我在 windows7 x64 上 安装了今天最新的稳定版本的 android sdk studio 通过 android studio 捆绑包 因为它现在显然是一起发货的 我已经正确配置了环境变量 如您在上面看到的 这是我发出以下命令时得
  • 在 Rails 服务器日志中查看 Resque 日志输出

    我在 Puma 服务器上有一个 Rails 4 应用程序 其中 Resque Resque Scheduler 正在运行后台作业 我想知道的是如何将两个 Resque 工作人员的日志输出合并到我的服务器日志中 或者 这是不可能的 我如何查看
  • 在本地 WiFi 网络上服务 Django 项目

    I used python manage runserver 0 0 0 0 8000 启动服务器 以便我可以从 wifi 网络上的其他计算机访问该项目 但是当我在另一台计算机上浏览到 internet ipaddress 8000 时 该
  • 适用于 iOS 的 Facebook SDK:未显示 FBSDKShareDialog

    我是 iOS 新手 我想分享一个使用 Facebook SDK for iOS 的链接 我的代码如下 IBAction func shareVoucherUsingFacebook sender UIButton print Faceboo
  • CompletableFuture 已完成,但有异常

    CompletableFuture completedFuture https docs oracle com javase 9 docs api java util concurrent CompletableFuture html co
  • 为什么这个 random() 分布看起来不对称?

    编辑 这是使用 Google Chrome 36 我正在摆弄 html5 画布 生成随机分布在立方体内的点并将其投影到 2D 画布上 令人惊讶的是 结果看起来一点也不对称 我怀疑 Javascript 的 Math random 让我失望了
  • 如何让log4j记录到文件并打印到控制台

    我可以将日志发送到控制台 但似乎无法将其发送到日志文件 这是我的properties file log4j rootLogger DEBUG LOG stdout log4j appender stdout org apache log4j
  • 在cmake中make install后进行后处理

    我正在尝试在 make install 末尾制作可执行文件的副本 我需要做类似的事情 cp bin prog bin prog1 我已将以下内容添加为 CMakelists txt 中的最后一行 install CODE execute p
  • 如何禁用默认视频播放器的画中画模式

    当用户尝试在我的应用程序中播放视频时 如何在 iPad 上的 iOS9 中使用 Swift 禁用画中画按钮 模式 默认 AVPlayerLayers 不会使用画中画 除非您使用AV画中画控制器 https developer apple c
  • 如何创建 DOM 构造函数的实例?

    当我尝试创建 DOM 的 HTMLElement 实例时 var oElement new HTMLElement 它抛出 类型错误 非法构造函数 为什么我们不能实例化 DOM 的构造函数 有办法做到吗 谢谢 要使用 Javascript
  • 自动缩进:smartindent 和 indentexpr

    当我编辑 Python 文件时 例如 def my func print Something lt CURSOR IS HERE 我想通过输入添加评论 该行会自动重新缩进到该行的开头 def my func print Something
  • createwindow(...)之后,如何给窗口赋予颜色?

    我创建了一个窗口 其句柄是handle parent 然后我创建了一个子窗口 如下所示 hwnd child CreateWindow child class name T WS CHILDWINDOW 0 0 0 0 hwnd paren
  • 使用 Rails 进行带宽管理?

    我想知道是否有人知道一种可以在 Rails 应用程序中以不依赖于 Web 服务器的方式管理带宽的方法 例如 每个帐户都有带宽限制 进出境交通是否会从每月津贴中扣除 一种选择是在 application rb 中添加 after filter
  • 如何在 IE8 中禁用 body.blur()?

    我正在开发一个在 IE8 中运行的企业 Web 应用程序 它出现blur 在主体上调用导致 IE 窗口被发送到后台 不幸的是 此代码位于由供应商控制的应用程序的一部分中 有什么可能的方法来预防blur 在不修改实际调用的代码的情况下在主体上
  • 在 Rails 控制器操作中渲染 html 时模板丢失错误

    我正在尝试使用 render html 从控制器操作中渲染原始 html class SomeController lt ApplicationController def raw html render html Some body te
  • Seaborn Jointplot 为每个类别添加颜色

    我想使用seaborn绘制2个变量的相关图jointplot 我尝试了很多不同的方法 但我无法根据类别为点添加颜色 这是我的代码 import numpy as np import seaborn as sns import matplot
  • 使用 EEPlus 读取 Excel 文件时,Excel 日期字段值与 C# dateTime 相差 1 天

    我在使用 EEPlus 库从 Excel xlsx 文件获取正确的日期字段值时遇到问题 特殊的问题是 在 excel 中我有例如1900 01 04 但在 C 中我得到 1900 01 03 我有一个想法 当我从 Excel 读取日期值时
  • puppeteer 无法在浏览器中加载 chrome 扩展

    这是我第一次使用 puppeteer 我想打开 google chrome 页面并导航到我已安装的 chrome 扩展 我尝试启用 chrome 扩展 但是当我在中运行脚本时headless false模式下浏览器会弹出 没有我的扩展程序
  • Multidex 后 Robolectric 单元测试失败

    因此 我最近将 robolectric 3 0 升级与我们的主线合并 这为我们的应用程序添加了 multidex 支持 不幸的是 这带来了不幸的副作用 导致我们的测试失败 无法运行 它们只会在第一次尝试安装 MultiDex 失败后停止 堆
  • vue:如何使传递给组件的对象具有反应性?

    Codepen 演示 https codepen io lzl124631x pen PayPVp editors 1010 我有一个组件有一个location对象为props 我传入的参数是locations index 这是从 a 中选