0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Laravel:部分的に使用しているreactにview変数を受け渡す方法

Posted at

Laravel:部分的に使用しているreactにview変数を受け渡す方法

構成

基本はbladeを使用し、reactは特定画面の指定div要素内のみで使用

目的

controllerから渡されたviewの変数をreactで使用したい

対応方法

javascriptのglobal変数として渡すことも可能だが、今回はdata属性にパラメータを指定して受け渡す。

受け渡し変数

HogeController.php
$fuga = json_encode([
	['key' => 'key1', 'value' => 'hoge1'],
	['key' => 'key2', 'value' => 'hoge2'],
	['key' => 'key3', 'value' => 'hoge3'],
]);

return view('home', compact('fuga'));
hoge.blade.php
<!-- idおよびblade部分は任意の文字列-->
<div id='react' data-blade={{$fuga}}/>
app.tsx
componentDidMount() {
	const element = document.getElementById('react');
	if (element && element.dataset.blade) {
	    const object = JSON.parse(element.dataset.blade);
	    console.log(object);
	}
}

所感

javascriptのglobal変数に持たせるやり方もありますが、個人的にはこちらのほうが管理しやすいと思います。
vueのv-bindは便利ですね。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?