Rails Webpack和Vue

no野

如何使用Vue定义一个根组件,该根组件包装了我的整个代码,因此所有其他组件都是该根的后代?

基本上我想实现以下目标:

在application.html.erb中

<!DOCTYPE html>
<html>
  <head>
    <title>My App</title>
    <%= csrf_meta_tags %>

    <%= stylesheet_pack_tag    'application' %>
  </head>

  <body>
    <div id="root">
      <%= yield %>
    </div>
    <%= javascript_pack_tag 'application' %>
  </body>
</html>

然后在我的webpack入口点

...    

import Vue from 'vue';

var app = new Vue({
  el: '#root'
 })

但是,当我这样做时,我收到一条Vue警告,内容为:

[Vue警告]:您正在使用Vue的仅运行时版本,而模板选项不可用。可以将模板预编译为渲染函数,也可以使用包含编译器的内部版本。

因此,据我所知,发生这种情况是因为我需要将vue组件放入.vue文件中,但是,如果这样做,我如何仍可以使用yield语句以“ rails way”的方式实现其余视图?

最后,我想,这一切都恢复到了如何在Rails中使用vuejs,仅webapack(无资产管道)来组织前端,但是仍然使用诸如yield之类的一些rails功能来呈现“正常”视图吗?

PS:我已经看到了使用webpack启动新项目时出现的hello world示例,但这很简单...

网民

尝试添加vue: 'vue/dist/vue.js'到您的webpack别名文件中。当我渲染不适合vue模板的普通模型(即基于动态内容)的组件模板时,我必须做同样的事情。

职位由埃文你(Vue公司的创建者)介绍了通过这个运行时仅版本(这这是)链接具体来说,我们正在寻找该位是这样的:

仅运行时构建:由于它不包含编译器,因此您需要在编译步骤中预编译模板,或手动编写渲染函数。默认情况下,npm软件包将导出此构建,因为从npm中使用Vue时,您可能会使用编译步骤(使用Browserify或Webpack),在此期间vueify或vue-loader将执行模板的预编译。

这意味着我们通常使用的版本没有编译器,因此我们需要通过别名将其包括在内,然后才能访问:

独立构建:包括编译器和运行时。此功能基本上与Vue 1.x完全相同。

由于具有编译器,因此它可以按需要进行编译,因为它不属于标准Vue文件模板。

好吧,至少这是我对整个事情的看法:)

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章