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:如何使传递给组件的对象具有反应性? 的相关文章

  • v-file-input .click() 不是函数

    我试图以编程方式触发 v file input 的 click 事件 因为它在 Vuetify 的文档中 但它显示一个错误this refs imagePicker click is not a function我在这里错过了什么吗 代码重
  • 如何从顺序键盘导航中删除 Vuetify 附加图标

    在带有 Vuetify 的 Vue js 应用程序中 我有一组用v text field并且其中有一个append icon为了切换文本可见性 如下所示
  • Eslint 状态已声明 [Vuex]

    我正在运行 ESLint 目前遇到以下 ESLint 错误 错误 状态 已在上部范围无阴影中声明 const state date show false const getters date state gt state date show
  • 如何使用 TypeScript 接口输入 Vue 提示 props?

    这件事真的让我的头撞到了墙上 我记得在 Angular 工作时 TS 接口可用于输入提示参数 我想对 Vue 中的 props 做同样的事情 有任何想法吗 代码如下 但仅针对标准对象进行检查 因此传入任何对象都是有效的 import Vue
  • 将 Stripe.js 作为 ES 模块导入到 Vue 中

    我正在尝试按照 stripe elements 文档中的说明并将 ES 模块安装到我的 Vue 支付组件中 https stripe com docs stripe js html js 请注意 目前 Stripe 网站 ES 模块安装选项
  • 在Vue.js 3中添加全局变量

    如何在 Vue js 3 中添加全局变量 在 Vue js 2 中 我们在main js file Vue prototype myGlobalVariable globalVariable 最直接的替换就是app config globa
  • 在可组合项 vue3 中使用 props

    我正在将应用程序从 vue 2 升级到 vue 3 但在可组合项方面遇到了一些问题 我想在可组合项中使用道具 但它似乎不起作用 代码示例是从工作组件中提取的 当我将其留在组件中时 它可以正常工作 我假设defineProps不受可组合项支持
  • 使用 vue-cli 服务时如何禁用 linting?

    我正在使用以下命令使用 vue cli 运行我的项目 vue cli service 服务 open 如何禁用所有 linting 目前每次保存时都会重新进行 linting 并且更改代码需要很长时间 我已经把 lintOnSave fal
  • Vue SPA - 如何在浏览器中呈现时隐藏 .vue 文件

    我正在开发一个用 Vue js 开发的单页应用程序 托管在 Node js 服务器上 目前它仍在开发中 但最终将暴露给外部客户 并且由于我们将处理敏感数据 我们希望避免在用户检查元素时看到 vue 文件和相对文件树结构在开发工具中 See
  • 如何禁用vuejs中的按钮

    我想在填写表单时禁用该按钮 当所有输入都填满后 将使用 vuejs 和 laravel 框架启用按钮 我尝试通过简单地禁用按钮来实现这一点
  • Vue-动态导入vue组件

    我有很多组件 我想按需导入 我有一个下拉菜单 其中实际上包含组件列表 即要加载的内容 我试过这个例子
  • 如何销毁/卸载 vue.js 3 组件?

    我有一个相当大的vue js 2具有动态选项卡机制的应用程序 用户可以与应用程序打开和关闭选项卡进行交互 每个选项卡代表一条路线 为了实现这一点 我使用 vue router 并保持活动状态 如下例所示
  • 如何居中对齐表格 - PDFMAKE

    我可以使用 PDFMAKE 创建一张居中对齐 页面 的表格吗 已定义的对齐方式 样式中的 center 和标签表内的 table width auto body text PER ODO style tableHeader text VOL
  • ES6 在defineAsyncComponent 中命名导入

    我想异步加载我的网络应用程序的一些元素 这是旧的导入 import Popover PopoverButton PopoverPanel from headlessui vue export default components Popov
  • Vue: vue-i18n: 无法翻译 keypath 的值,使用 keypath 的值作为默认值

    我正在使用 Vue 我想展示三种语言 英语 他加禄语和宿务语 现在我有错误 无法转换键路径 NavbarMobile home 的值 使用 keypath 的值作为默认值 我通过 console log this i18n locale 检
  • Cytoscape 布局 - 处理锁定节点

    我正在使用 vue cytoscape 渲染图形并浏览树状数据结构 我的目标是扩展父节点并保持它们在图中的位置 我想简单地添加新的子节点 我的方法是锁定当前节点 添加子节点并解锁节点 this cy nodes lock for let d
  • 将变量从调用它的父页面传递给 Vue 组件

    我有一个简单的表格 显示了我的所有数据 主文件 php table class table table bordered table hover thead tr th Job Name th th Job Description th t
  • 在上传之前预览图像 VUEjs [重复]

    这个问题在这里已经有答案了 我知道这个问题已经被问过 但我不知道如何在vuejs中使用代码 我尝试了很多但没有任何结果 我还添加了我的代码 有人可以帮帮我吗 这是我的代码 谢谢 html
  • 如何封装Vuejs项目中的常用功能?最佳实践

    我正在开发一个使用 Vuejs 作为前端的中型项目 我正在探索的封装 分离可能在许多组件中使用的常用方法的选项包括 mixins 方法和插件方法 混合方法我必须在每个要使用 mixin 方法的组件 文件 中编写一条 import 语句 由于
  • 如何减少 WEBPACK + VUEJS 中的包大小

    我遵循了很多有关如何减小捆绑包大小的教程 但没有任何内容对捆绑包大小产生任何影响 我不知道为什么 每次当我向 webpack 添加一些新代码时 我的包大小都保持与以前相同 我的应用程序是使用 vue cli 3 pwa 插件 webpack

随机推荐

  • 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 中选