Reactjs 带有前端react的Symfony4后端。传递信息的最佳和最安全的方式?
我正在学习React,希望创建一个以Symfony4作为后端和React前端的应用程序。现在,当我需要从后端向前端传递某种数据时,我陷入了困境。我真的不知道该怎么做?下面是一些教程,我是这样做的: 我从控制器向细枝文件发送一些数据:Reactjs 带有前端react的Symfony4后端。传递信息的最佳和最安全的方式?,reactjs,symfony,Reactjs,Symfony,我正在学习React,希望创建一个以Symfony4作为后端和React前端的应用程序。现在,当我需要从后端向前端传递某种数据时,我陷入了困境。我真的不知道该怎么做?下面是一些教程,我是这样做的: 我从控制器向细枝文件发送一些数据: /** * @Route("/") */ public function homepage() { $date = new DateTime(); $curr_date = $date->format('Y-m-d H:i:s');
/**
* @Route("/")
*/
public function homepage()
{
$date = new DateTime();
$curr_date = $date->format('Y-m-d H:i:s');
return $this->render('base.html.twig', [
'gameDate' => $curr_date
]);
}
在twig文件中,我将其设置为数据属性
base.html.twig:
<div id="root" data-event-date="{{ gameDate }}">
然后我可以在JavaScript中将变量作为数据集获取
App.js:
const root = document.getElementById('root');
ReactDOM.render(<Homepage {...(root.dataset)}/>, root);
const root=document.getElementById('root');
ReactDOM.render(,root);
并从道具中渲染
Homepage.js:
class Homepage extends Component {
constructor(props) {
super(props)
this.state = {
prizePool: '',
gameDate: '',
numberOfPlayers: ''
}
}
onParticipateClick = (event) => {
this.setState({prizePool: Math.random()})
}
render()
{
return (
<div className="mt-c-10">
<GameInfoBox gameDate={this.props.eventDate}/>
</div>
)
}
}
类主页扩展组件{
建造师(道具){
超级(道具)
此.state={
奖池:'',
游戏日期:'',
玩家数:“”
}
}
onParticipateClick=(事件)=>{
this.setState({prizePool:Math.random()})
}
render()
{
返回(
)
}
}
这实际上是可行的,但我关心的是显示数据变量中的所有信息,因为任何人都可以看到它。如果我想传递用户ID或一些秘密怎么办?应该有另一种方法来做对吗?这取决于您的尝试,如果您正在处理大型项目,您可以使用API来服务后端数据。请看这里:。有一个简单的例子 但是,如果您想要更多的东西,请使用api平台或FOSRestBundle。最佳和最安全”有点含糊不清-您需要严格的安全性,还是像代码稳定性这样的安全性 与将数据从控制器传递到视图(细枝),然后传递到HTML元素或全局元素不同,另一种方法是:
fetch()
)。此控制器可能类似于src/Api/controller/
,因为它不会渲染视图,所以请将其与渲染视图的其他控制器分开