sno*_*wil 6 javascript bind vue.js vue-router
我正在开发 vue 应用程序,现在我应该使用 vue 路由器了。但是我在将数据绑定到路由器模板时遇到了一些问题。
请帮我。
HTML:
<div id="app">
<h1>Hello App!</h1>
<p>
<router-link to="/foo">Go to Foo</router-link>
<router-link to="/bar">Go to Bar</router-link>
</p>
<router-view></router-view>
</div>
Run Code Online (Sandbox Code Playgroud)
脚本:
const Foo = { template: '<div>{{foo}}</div>' }
const Bar = { template: '<div>bar</div>' }
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
const router = new VueRouter({
routes
})
const app = new Vue({
el: '#app',
router,
data: function(){
return {foo: "asdasdas"}
}
})
Run Code Online (Sandbox Code Playgroud)
{{foo}}绑定不起作用。
实例: https: //jsfiddle.net/xgrjzsup/4430/
来自组件指南:
\n\n\n每个组件实例都有其自己的隔离范围。这意味着您\n不能(也不应该)直接引用子\n组件\xe2\x80\x99s 模板中的父数据。可以使用 props 将数据\n传递到子组件。
\n
是Foo通过路由器设置的应用程序的子组件。
将数据从父级传递给子级的一种方法是使用 props。
\n修改您的Foo定义以接受foo属性:
const Foo = { \n props: [\'foo\'],\n template: \'<div>{{foo}}</div>\' \n}\nRun Code Online (Sandbox Code Playgroud)\n并在模板中绑定父属性
\n<router-view :foo="foo"></router-view>\nRun Code Online (Sandbox Code Playgroud)\n更新的小提琴:https://jsfiddle.net/xgrjzsup/4431/
\n在您的情况下,有两种方法可以访问该“foo”变量。
{{$parent.foo}}
{{$root.foo}}
Run Code Online (Sandbox Code Playgroud)
但考虑使用 Vuex 在应用程序中共享数据 - https://github.com/vuejs/vuex 或者将 foo 作为参数传递给路由 - https://router.vuejs.org/en/essentials/passing-props .html
| 归档时间: |
|
| 查看次数: |
3360 次 |
| 最近记录: |