【发布时间】:2021-08-06 19:56:37
【问题描述】:
我在 laravel 刀片模板中使用 vue.js (v2.6.12) 组件。
对于该项目,我还使用了 MathML,其中我需要使用 <mfenced> 标签的 open 属性将其设置为一些自定义值。这是用 mathml 表示的数学示例。
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>f</mi>
<mfenced close="]" open="[">
<mrow><mi>a</mi><mo>,</mo><mi>b</mi></mrow>
</mfenced>
</math>
但是一旦页面呈现,open 属性就会转换成这个open="open"。我 100% 确定没有其他库或脚本加载像这样更新,只是普通的 vue。这实际上破坏了数学表达式。所以它看起来像这样:
<math xmlns="http://www.w3.org/1998/Math/MathML">
<mi>f</mi>
<mfenced close="]" open="open">
<mrow><mi>a</mi><mo>,</mo><mi>b</mi></mrow>
</mfenced>
</math>
后来我意识到,不仅在数学表达式中,任何标签,无论是<div open="anything">...</div>、<span open="anything">...</span>、<custom-element open="something">...</custom-element>,具有open 属性的行为都是相同的。即使我使用v-pre 属性将其从 vue js 模板编译器中排除。
这不会发生,只要我禁用 vue 应用程序初始化。
这里的问题是:
- 为什么 vue 会这样改变 open 属性?
- 我怎样才能停止这种行为,到 vue 应用程序区域内的整个页面,或者至少在我选择的地方(比如使用
v-pre),是否有 ary config 或任何其他方式?
【问题讨论】:
-
您听起来好像已经在这里进行了调试研究,但我想不出仅在 Vue 中会导致这种行为的任何东西......这真的很奇怪。我知道您说您确定这里没有其他库在起作用,但我倾向于相信其他东西必须在这里起作用。您是否在项目的其他地方使用任何其他 Vue 库?
标签: vue.js vuejs2 attributes mathml