将数据从Laravel Blade传递到Vue组件

时间:2018-06-06 16:15:27

标签: laravel vue.js vuejs2 laravel-blade

我将数据从我的Laravel Blade传递到我的Vue组件。该问题实际上可以应用于从我的刀片模板文件传递到Vue组件的任何变量。

对于此示例,我传递的是翻译变量。我知道有翻译包将语言文件翻译成json格式,并从那里导入到我的组件 - 我有,并且它正在工作。我的问题是将变量从刀片传递给Vue。

我拥有的一切,都在发挥作用 - 我只是想知道“正确的方法”是什么。

所以在我的刀片文件中,我有;

<my-component :myvariable="'{{ trans('app.test_translation') }}'"></my-component>

在我的组件中我有

props: {
    myvariable: String,
},

在我的组件模板中,我有一个图标

<i class="fa fa-info-circle" :title="myvariable"></i>

结果是,如果我将鼠标悬停在图标上,我会得到预期的输出。

这是实现我想达到目标的正确方法吗?

我可以应用的另一种方法是在我的控制器中定义变量,例如

$myvariable = trans('app.test_translation');

然后将变量传递给我的刀片文件

compact('myvariable')

从我的刀片文件到我的Vue组件

<my-component :myvariable="'{{ $myvariable }}'"></my-component>

我想避免做冗长的事情而且我想避免做那些“正常工作”的事情 - 我正在努力做到“正确”的方式。

或者是否有其他方法或建议?

或者我应该坚持使用Lang.js包,定义Lang变量并将消息(翻译)导入到每个组件中?

window.Lang = require('lang.js');
const Lang = new window.Lang({
    messages
});
import messages from '../vue-translations.js';

我已经在我的app.js文件中定义了后者 - 但是我想在Vue组件中使用一个或多个翻译,我必须导入所有翻译,如上例中所示。

感谢您的投入!

感谢名单。

0 个答案:

没有答案