gpt4 book ai didi

javascript - 基本 Vue 帮助 : Accessing JS object values in component

转载 作者:搜寻专家 更新时间:2023-10-30 22:19:43 27 4
gpt4 key购买 nike

我一直在尝试使用 vue.js,但在路由时我很难访问组件中的 JS 对象值。

使用此存储库进行实验,https://github.com/johnayeni/filter-app-vue-js ,我只是想复制一个基本的“产品列表”和“产品描述”应用程序,但我无法让它工作。存储库的主页(SearchPage.vue 组件)用作“产品列表”,我只是尝试添加“产品描述”组件以一次只显示一项。

我添加了一个“描述页面”组件(称其为“item.vue”)以允许用户单击其中一种语言/框架,然后该语言/框架将路由到 item.vue 以仅显示该特定对象的关联信息(item.name、item.logo 等),即不显示任何其他语言。

按照一些教程,这是我尝试过的:

首先,我向 JS 对象(在 data/data.js 中找到)添加了 id,即 id:'1'

const data = [
{
id: '1',
name: 'vue js',
logo: 'http://... .png',
stack: [ 'framework', 'frontend', 'web', 'mobile' ],
},
{
id: '2',
name: 'react js',
logo: 'http://... .png',
stack: [ 'framework', 'frontend', 'web', 'mobile' ]
},
...
];
export default data

然后,我将 item.name(在 ItemCard.vue 中)包裹在 router-link 标签中:

<router-link :to="'/item/'+item.id"> {{ item.name}} </router-link>

然后我在 router/index.js 中添加了一个新路径:

{
path: './item/:id',
component: item,
props: true
}

但是,当单击路由器链接时,我只能访问“.id”(通过 $route.params.id),但无法获取 .name 或 .logo。我如何访问其他值(即 item.name、item.logo 等)?我有一种感觉,我走错了路。

非常感谢您的帮助。

最佳答案

您可以访问 id 的唯一原因是因为它是一个 url 参数:./item/:id

这里有几个选项,具体取决于您要实现的目标:


正如@dziraf 所建议的那样,您可以使用 vuex 创建一个商店,这样您就可以在应用中的任何位置访问所有数据:

export default {
computed: {
data() {
return this.$store.data;
}
}
}

在这里了解更多:https://vuex.vuejs.org/


作为替代方案,您可以只导入数据,并通过其 id 获取正确的项目:

import data from './data.js';

export default {
computed: {
data() {
return data.find(d => d.id === this.$route.params.id);
}
}
}

这取决于你想做什么。

关于javascript - 基本 Vue 帮助 : Accessing JS object values in component,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51733639/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com