【问题标题】:Why does Vue.js not work in Shopify theme?为什么 Vue.js 在 Shopify 主题中不起作用?
【发布时间】:2021-11-01 20:40:51
【问题描述】:

我想在我的 shopify 主题中使用 Vue.js。所以在主题中添加了这段代码。 但它不起作用。现在没有结果!我不确定是什么问题。有人可以帮我解决这个简单的问题吗?谢谢

注意:我已经创建了一个test.html 并复制粘贴以下代码。但它在简单的html 文件上正常工作。但为什么它在 shopify 上不起作用?

<script src="https://unpkg.com/vue"></script>

<div id="app">
  {{ message }}
</div>

<script>
  console.log('run-vue');
  var app = new Vue({
    el: '#app',
    data: {
      message: 'Hello Vue!'
    }
  })
</script>

【问题讨论】:

  • 您将此代码添加到主题中的哪个文件?您是否确认页面上正在加载任何此代码?如果是这样,您的console.log 是否出现并且您是否遇到任何错误?
  • 为了测试,我将上面的代码添加到 theme.liquid 中,就在 标签之后。如您所见,有console.log。它显示成功,没有任何问题。没有 webpack 似乎无法在 shopify 中使用 vue.js?
  • ???? {{ message }} 应该是 Liquid 模板变量还是 Vue 模板变量?如果是后者,如果您使用 {% raw %}{% endraw %} 标签包装您的应用程序 div 以防止 Shopify 在将其发送到客户端之前尝试在服务器端解析该模板命令,会发生什么情况?
  • 您绝对可以在 Shopify 商店中使用 Vue 或任何其他任意框架 - Shopify 所做的只是为您提供一种模板语言,您可以使用它来访问与商店相关的信息。您可以加载任意 JS(我已经看到将 lot 的任意 javascript 加载到各种商店中!)但诀窍是许多模板语言使用类似的分隔符,所以如果您使用的东西也使用{{}}{%%} 语法,您需要告诉 Shopify 不要在服务器端解析这些部分。
  • @DaveB 谢谢仅供参考。我认为这是一个正确的答案!

标签: javascript vue.js shopify


【解决方案1】:

TLDR:Vue 使用的模板语法与 Liquid 过于相似 - 您需要使用 {% raw %} 标签。

您绝对可以在 Shopify 商店中使用 Vue 或任何其他任意框架 - Shopify 所做的只是为您提供一种模板语言,您可以使用它来访问与商店相关的信息。您可以加载任意 JS(我已经看到很多任意 javascript 加载到各种商店中!)但诀窍是许多模板语言使用类似的分隔符,所以如果您使用也使用 {{}}{%%} 的东西您需要告诉 Shopify 不要在服务器端解析这些部分的语法。

在您的情况下,只需将安装点更新为:

{% raw %}
  <div id="app">
    {{ message }}
  </div>
{% endraw %}

【讨论】:

    猜你喜欢
    • 2021-07-10
    • 2021-10-28
    • 1970-01-01
    • 2020-09-17
    • 2022-01-19
    • 2018-03-20
    • 2017-05-31
    • 1970-01-01
    • 2015-01-29
    相关资源
    最近更新 更多