gpt4 book ai didi

javascript - 如何将应用程序数据传递到 VueRouter 组件

转载 作者:行者123 更新时间:2023-12-01 01:25:27 26 4
gpt4 key购买 nike

我正在使用 VueRouter 根据 URL 加载模板。当我尝试在组件中使用 app.data 中定义的属性时,我收到一个 [VueWarn] 未定义属性或方法“Angular 色”

如何将每个数据属性传递给子组件?

这是我的脚本:

const Home = { template: '<p>home page, {{role}}</p>' }
const NotFound = { template: '<p>Page not found</p>' }

const routes = [
{path: '/', component: Home}
{path: '*', component: NotFound}
]

Vue.use(VueRouter)
var app = new Vue({
el: '#app',
data: {
role: 0,
cookiesAlert: true
},
router: new VueRouter({routes})
})

最佳答案

我认为您的路由器构建选项设置不正确。通常,我更喜欢使用“命名路由”,因此我将设置的是:

const router = new VueRouter({
routes: [
{ name: 'role', path: '/:role', component: User },
{ path: '*', component: Home }
]
})

如果我没有理解你的问题,你想要做的是将父组件中的“数据”通过url传递给子组件并读取子组件中的数据?

const User = {
template: '<div><br/>Role read from url is {{ $route.params.role }}</div>'
}

const Home = {
template: '<div><br/>Welcome</div>'
}

const router = new VueRouter({
routes: [
{ name: 'role', path: '/:role', component: User },
{ path: '*', component: Home }
]
})


new Vue({
router,
el: '#app',
data: {
role: 'default role'
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.17/vue.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-router/3.0.2/vue-router.min.js"></script>


<div id="app">


The role is (Please change the 'role' value and click on '/User' link): <input v-model="role" type="text" /> <br/>

<router-link :to="{ name: 'role', params: { role: role }}">User</router-link>


<router-link to="/">Home</router-link>

<router-view></router-view>

</div>

或者,如果您不想使用$route.params.role,我要做的就是将路由器配置选项中的“props”设置为true。

When props is set to true, the route.params will be set as the component props.

const router = new VueRouter({
routes: [
{ name: 'role', path: '/:role', component: User, props: true },
{ path: '*', component: Home }
]
})

并绑定(bind)到子组件内的“props”。

const User = {
props: ['role'],
template: '<div><br/>Role read from url is {{ role }}</div>'
}

关于javascript - 如何将应用程序数据传递到 VueRouter 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53841413/

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