javascript - 如何更改父组件中另一个组件的道具
问题描述
我创建了一个小部件(如果你愿意,可以是子组件),它显示我已经推送到 NPM 以在另一个(如果你愿意的话是父组件)组件中使用的图像,这是一个全新的项目。鉴于我使用 NPM 的情况,如何从父组件更改此子组件的 props 值?我想将显示的图像数量从 5 更改为 10。
子组件显然在父组件中工作,我已经尝试更改定义组件的下方的 prop 值。
父组件(“Widget”是子组件,是一个任意名称,在我尝试更改道具之前一直在工作):
<template>
<Widget></Widget>
</template>
<script>
import Widget from "widget";
export default {
name: "app",
components: {
Widget: {
props: {
perPage: {
type: Number,
default: 10
}
}
}
}
};
</script>
在 NPM 上发布的子组件:
<script>
export default {
name: 'Widget',
props: {
perPage: {
type: Number,
default: 5
}
}
}
</script>
我想将“perPage”“默认”从 5 更改为 10,如上面的代码所示。提供的代码应该足以解决这个问题,但如果需要更多代码,我也可以提供。谢谢!
只想重申 NPM 的子组件在父组件(这是一个全新的项目)中处于正确的工作形式,直到我尝试更改 prop 值。
解决方案
我会通过小部件模板传递道具
如果您想通过模板以最佳方式从父级到子级动态传递一些信息,您可以阅读vue.js 文档,因此在您的应用程序模板中,您将通过小部件标签传递数据
<template>
<Widget :perPage ="perPage"></Widget>
</template>
<script>
import Widget from './Widget.vue'; //assuming they are in the same folder
export default {
components: {
Widget
},
data() {
return {
perPage: 5
}
}
}
</script>
//Widget.vue
<template>
<p>Per Page: {{perPage}}</p>
</template>
<script>
export default {
name: 'Widget',
props: [
'perPage'
]
}
</script>
推荐阅读
- javascript - 如何使用WebdriverIo在perfecto中解决30000ms错误后仍然不可见的元素
- python - 裁剪后如何转换相对边界框?
- xquery - Marklogic:如何使用正则表达式搜索文档?
- reactjs - 当开始在输入中写入时,只出现“正在加载”而不是位置下拉 - react-places-autocomplete
- c# - Unity2D“Input.GetKeyDown 不再工作
- c# - 如何在屏幕上显示数据并刷新这些数据?
- vb.net - 使用线程处理简单的任务有意义吗?
- ios - 同一应用程序的不同设备之间的供应商 ID 唯一性?
- bash - 用于计算和比较校验和的 Bash 脚本
- android - 带有连字符的深层链接重定向在 android 上不起作用