从数据库到JS再到Vue

基督

是否建议在内联脚本中将一些不敏感的数据传递给vue?

的HTML

<script>
    var foo = <?php echo $foo ?>
</script>

Vue.js

new Vue({
    data: { 
        foo: foo 
    }
});
edcs

这可能有点自以为是,但我会避免在应用程序中使用像这样的全局变量。取而代之的是,我将使用HTML5data-属性,并在其中存储前端所需的有用数据。

您可以执行以下操作:

<body data-my-thing='{"foo": "bar", "baz": true}'>

上面的示例使用JSON,我通常要做的是json_encode在控制器或视图编辑器中使用,并像这样回显字符串(因为我们在这里使用Balde,JSON会自动转义):

<body data-my-thing='{{ $myJson }}'>

如果您只使用普通的PHP,则应像这样转义JSON:

<body data-my-thing='<?=htmlspecialchars($myJson) ?>'>

当然,您不需要JSON,如果更合适,则可以在其中存储纯字符串或数字。这取决于您的应用程序的需求。

要从data属性中获取值,您只需使用以下JavaScript:

document.body.getAttribute('data-my-thing');

而且,如果您使用了JSON,请不要忘记对其进行解码!

JSON.parse(document.body.getAttribute('data-my-thing'));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章