是否建议在内联脚本中将一些非敏感数据传递给 vue?
HTML
<script>
var foo = <?php echo $foo ?>
</script>
Vue.js
new Vue({
data: {
foo: foo
}
});
最佳答案
这可能有点固执己见,但我会避免在应用程序中使用像这样的全局变量。相反,我会利用 HTML5 data-
属性并在其中存储前端所需的有用数据。
你可以这样做:
<body data-my-thing='{"foo": "bar", "baz": true}'>
上面的示例使用 JSON,我通常做的是在 Controller 或 View 编辑器中使用 json_encode
并像这样回显字符串(因为我们在这里使用 Balde,JSON自动转义):
<body data-my-thing='{{ $myJson }}'>
如果您只是使用纯 PHP,那么您应该像这样转义 JSON:
<body data-my-thing='<?=htmlspecialchars($myJson) ?>'>
当然,您不需要 JSON,如果更合适,您可以在其中存储纯字符串或数字。这取决于您的应用程序的需求。
要从数据属性中获取值,您只需使用以下 JavaScript:
document.body.getAttribute('data-my-thing');
如果您使用过 JSON,请不要忘记对其进行解码!
JSON.parse(document.body.getAttribute('data-my-thing'));
关于laravel - 从数据库到JS再到Vue,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36930094/