在 Shopify 液体模板中使用 vue.js

Posted

技术标签:

【中文标题】在 Shopify 液体模板中使用 vue.js【英文标题】:Using vue.js in Shopify liquid templates 【发布时间】:2017-09-16 05:39:47 【问题描述】:

这应该很简单,但尽管进行了搜索,但我找不到任何解决方案。如何在液体文件中使用 vue 模板标签?由于 Vue 和 Liquid 都使用相同的大括号,我无法渲染我的任何视图数据:

<img src=" product.featured_image " />

结果:

<img src>

我的父视图组件中有 36 个产品。

当我尝试使用自定义分隔符时:

new Vue(
  delimiters: ['@', ''],

它不会用 Vue 解析:

  GET https://inkkas.com/collections/@ 404(未找到)

更新:我可以使用 v-bind 访问 Vue 数据:但我仍然需要能够使用分隔符。

【问题讨论】:

使用绑定代替插值&lt;img :src="product.featured_image" /&gt; - 如果product.featured_image 是JS 的东西。你也可以设置自己的 vuejs 分隔符 - ***.com/questions/42166251/… 由于某种原因,绑定现在将整个元素从 dom 中取出。 控制台说什么了吗? 不,不是在我绑定的时候。当我尝试使用自定义分隔符时,它不会使用 Vue 进行解析:new Vue( delimiters: ['@', ''], .... 【参考方案1】:

显然,对于 Shopify,您根本不能将这些分隔符放在标签属性中,因此对于那些使用 v-bind: 的人来说(速记不起作用)。此外,您必须为自定义分隔符使用一个大括号,否则它仍会尝试使用液体进行解析,例如:

delimiters: ['$', '']

适用于:

<span class="title">$ product.title </span>

【讨论】:

【参考方案2】:

从 Kevin Compton 停止的地方添加一点,这是您放置“分隔符”参数的地方:

const ConditionalRendering = 
  data() 
    return 
      seen: true,
      someMessage: "My message"
    
  ,

  delimiters: ['$', '']
  



Vue.createApp(ConditionalRendering).mount('#conditional-rendering')

【讨论】:

以上是关于在 Shopify 液体模板中使用 vue.js的主要内容,如果未能解决你的问题,请参考以下文章

Shopify 应用程序可以在商店主题内自动注入液体代码吗?

在 Visual Studio 代码中格式化液体(Shopify)代码

在 Shopify 液体中使用 @font-face 时的字体文件 404

在 Shopify JSON 模板中添加自定义表单字段

Shopify 液体循环 current_tags

无法在 Liquid 代码、Shopify 中找到访问者的位置