您的问题基本上可以归结为:一些服务器端应用程序在Vue模板中呈现一个HTML标记,该模板具有显式设置的属性和
v-bind
基于相同的属性。这段代码由什么生成并不重要,所以这个问题实际上与ASP无关。NET内核中,重要的是同一属性被使用两次。现在,您希望Vue将显式设置的属性替换为其绑定值。
当一个元素已经定义了一个属性,并且它有一些值要绑定到该元素时,Vue实际上就是这么做的。同样的情况也适用于文档中包含的组件
explains this in some way
.这一部分还解释了某些情况下发生的价值合并
class
和
style
属性:
对于大多数属性,提供给组件的值将替换组件设置的值。例如,传球
type="text"
将取代
type="date"
可能会把它弄坏!幸运的是
班
和
风格
属性更智能一些,因此两个值都被合并,形成最终值:
form-control date-picker-theme-dark
.
无论如何,如果运行此代码段,可以看到Vue确实会替换绑定值时最初在值中设置的值:
var app = new Vue({
el: '#app',
data: {
foo: 'baz',
},
});
// show rendered HTML
document.getElementById('pre').addEventListener('click', function() {
this.textContent = app.$el.innerHTML;
});
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.17/dist/vue.js"></script>
<div id="app">
<span id="bar" v-bind:id="foo">Foo bar baz</span>
</div>
<pre id="pre">(Click here to show the innerHTML of the app)</pre>