Vue.js从子组件访问父/根数据
Vue.js access parent/root data from a child component
我的main.js
文件引用#app
作为el
,然后在ready
上,它向我的API发送一个HTTP请求,以根据从localStorage
获取的令牌获取用户的数据。
当返回响应时,它这样设置数据:
this.$http.get('/me', function(data) {
this.$set('me', data.me);
})
在上述请求返回响应后,data
现在看起来像这样:
data = {
me: {
email: 'email@email.com',
name: 'Email Email'
}
}
然后在main.js
文件中,我实现了vue-router
,然后启动了我的应用程序。它呈现了我的侧导航和其他组件,中间有一个用于主要内容的<router-view></router-view>
。
Ex(从main.js
渲染的app.html
):
<div is="navigation"></div>
<router-view></router-view>
在我的导航组件以及由vue-router
渲染的组件中,我如何访问我想要全局的数据,例如在根组件中设置的me
?
我希望能够访问整个应用程序中的用户电子邮件和姓名等数据。
编辑::查看新包Vuex-https://github.com/vuejs/vuex。这是一个应用程序数据的高级存储,您可以从任何组件中访问。这绝对是现在最好的选择。
原始答案:
我能想到的几个选项:
1) 将当前用户数据传递给每个需要它的组件。这会有点烦人,但保持了组件不需要任何外部信息来执行其功能的原则。
2) 使用this.$parent
将组件链向上移动到根组件,在那里您可以访问所需的数据。
3) 只需生成一个全局变量。在Vue的范围之外声明它,并可以在任何需要的地方访问它。
$root
适用于我。在组件层次结构的每个级别,它都指的是根数据。
例如,你在一个组件内部,一个子组件需要email
,你可以这样做来访问电子邮件:
$root.me.email
相关文章:
- AngularJS-需要在index.html页面中访问来自服务的数据
- 如何使用Wordpress'RESTApi访问本地主机上的数据
- 访问令牌和响应数据
- 如何访问高图表工具提示中的任何特定数据
- 将JSON传递给Jade,并使用相同的数据进行API访问
- 访问Protractor/E2E测试中的$http数据(AngularJS)
- 使用Angular.js访问php数组数据
- 访问Twilio短信元数据
- 访问通过XHR.onreadystatechange回调中的XHR.send(data)发送的数据
- Codeigniter Jquery Ajax,Can't将控制器中的数据访问回html表单
- JavaScript IE 从 json 文件中读取数据 访问被拒绝
- 将twitter api1.0迁移到1.1 json数据访问问题
- 管理数据访问/用户权限
- Javascript json数据访问行和字段
- Javascript是否实现了类似SQL的数据访问
- 在猫鼬之上创建一个额外的数据访问层
- 角度.js数据访问器
- JavaScript数据访问设计
- 在bogart中使用承诺数据访问
- 在初始.ajax调用之外使用JSON数据-访问剩余的JSON数据