2017-08-30 10 views
0

私はVue.js 2をまだ学んでいますので、この質問が少しばかげば謝ります。私はMongoDB、Node、Express、Vueを使ってアプリケーションを構築しています。通常、Expressのres.renderメソッドを通過したデータをテンプレートに簡単に取り込むことができるEjなどのテンプレートエンジンを使用します。Node-ExpressバックエンドからVueコンポーネントにデータを渡す

バックエンドからルートVueコンポーネントにデータを渡すのと同じ方法がありますか?たとえば、通常、getリクエストはMongodbからデータを取り込み、exp​​ressはテンプレートファイルをレンダリングしてデータを渡します。

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

var id = req.params.id; 

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

} 
}); 

私のroot Vueアプリケーションは、htmlファイルに添付されています。私は動的にデータベースから返されたデータでアプリケーションをレンダリングできるようにしたいと思います。

私はapiからデータをストリームしてソケット経由でVueコンポーネントに渡す前にアプリケーションを構築しましたが、この場合はソケットを使用する必要はありません。

答えて

1

httpを使用してください。どうしたの?あなたはXmlHttpを使うことができます。あるいは多くの人々がAxiosを使用しているようです。ページのオンロードで呼び出しをトリガーするか、またはvueライフサイクルフックのいずれかを使用します。非常に良いvueのドキュメントは、いつ、どのようにこれを行うのかについて多くのことを述べていません。ページのオンロードで実行し、ページデータの要求が返ってくるとvueをインスタンス化します。

+0

ええ、私はそれを考え出しました。私はドキュメンテーションに従っていて、私が行ったことをビルドするだけで、vue-resourceパッケージがあるかどうかはわかりませんでした。 ありがとうございました:) – kshatriiya

+0

[Vue-resource](https://medium.com/the-vue-point/retiring-vue-resource-871a82880af4)がバックバーナーに移動しました。私は意見がありません。私が書いたxmlhttpよりも薄い約束のラッパーを使っています。モダンにする必要があります。 – bbsimonbb

0

質問は既に回答されていますが、私は自分のアプローチを共有したいと思います。私はres.render()を使ってオブジェクトサーバー側をレンダリングし、div:display:noneに入れて、クライアント上のオブジェクトを取得し、Vueのデータ属性に渡して実験してきました。

関連する問題