2017-08-30 115 views
0

我仍在学习Vue.js 2,所以如果这个问题有点愚蠢,我很抱歉。我正在使用MongoDB,Node,Express和Vue构建一个应用程序。通常我会使用模板引擎,例如Ejs,通过Express的res.render方法传递的数据可以很容易地在模板中捕获。将数据从Node-Express后端传递到Vue组件

是否有类似的方式将数据从后端传递到根Vue组件?例如,通常,get请求会从Mongodb中获取一些数据,express将呈现模板文件并将数据传递给它。

app.get("/gallery/:id", function(res, req) { 

var id = req.params.id; 

database.findById(id, function(err, data) { 
.... 
res.render("home", data); 

} 
}); 

现在我的根Vue应用程序被附加到html文件。我希望能够使用从数据库返回的数据动态呈现应用程序。

我已经构建了一个应用程序之前,从api流数据,并通过套接字传递给我的Vue组件,但我觉得在这种情况下使用套接字是不必要的。

回答

1

使用http。有什么问题?你可以使用XmlHttp,或者很多人似乎都在使用Axios。在页面的onload中触发该调用,或使用其中一个vue生命周期挂钩。非常好的vue文档没有太多的关于如何以及何时做到这一点。我们在页面的onload中完成它,并且当页面数据的请求返回时我们实例化vue。

+0

是的,我只是想通了。我只是按照文档和建设的东西,我不知道有一个vue资源包。 谢谢你的帮助:) – kshatriiya

+0

[Vue-resource](https://medium.com/the-vue-point/retiring-vue-resource-871a82880af4)已被转移到后门。我没有意见。我们仍然使用我写的xmlhttp的一个简单的promise包装器。需要现代化。 – bbsimonbb

0

该问题已经得到解答,但我想分享我的方法。我一直在尝试使用res.render()渲染对象服务器端,并将它放在一个div:display:none处,然后抓取客户端上的对象并将其传递给Vue的data属性。

相关问题