This time I will show you how to use the V-bind instruction in VueJs, and what are the precautions for using the V-bind instruction in VueJs. The following is a practical case, let's take a look.
Introduction
v-bind is mainly used for attribute binding. Vue officially provides an abbreviation: bind, for example:
<!-- 完整语法 --> <a v-bind:href="url"></a> <!-- 缩写 --> <a :href="url"></a>
1. Overview
v-bind is mainly used for attribute binding, such as your class attribute, style attribute, value attribute, href attribute, etc. Etc., as long as it is an attribute, it can be bound using the v-bind directive. Example:<!-- 绑定一个属性 --> <img v-bind:src="imageSrc"> <!-- 缩写 --> <img :src="imageSrc"> <!-- 内联字符串拼接 --> <img :src="'/path/to/images/' + fileName"> <!-- class 绑定 --> <p :class="{ red: isRed }"></p> <p :class="[classA, classB]"></p> <p :class="[classA, { classB: isB, classC: isC }]"> <!-- style 绑定 --> <p :style="{ fontSize: size + 'px' }"></p> <p :style="[styleObjectA, styleObjectB]"></p> <!-- 绑定一个有属性的对象 --> <p v-bind="{ id: someProp, 'other-attr': otherProp }"></p> <!-- 通过 prop 修饰符绑定 DOM 属性 --> <p v-bind:text-content.prop="text"></p> <!-- prop 绑定。“prop”必须在 my-component 中声明。--> <my-component :prop="someThing"></my-component> <!-- 通过 $props 将父组件的 props 一起传给子组件 --> <child-component v-bind="$props"></child-component> <!-- XLink --> <svg><a :xlink:special="foo"></a></svg>
2. Binding HTML Class
Object syntax We can pass Give v-bind:class an object to dynamically switch classes<p v-bind:class="{ active: isActive }"></p>
<p class="static" v-bind:class="{ active: isActive, 'text-danger': hasError }"> </p> 和如下 data data: { isActive: true, hasError: false }
<p class="static active"></p>
<p v-bind:class="classObject"></p> data: { classObject: { active: true, 'text-danger': false } }
<p v-bind:class="classObject"></p> data: { isActive: true, error: null }, computed: { classObject: function () { return { active: this.isActive && !this.error, 'text-danger': this.error && this.error.type === 'fatal' } } }
Array syntax## We can pass an array to v-bind:class to Apply a class list
<p v-bind:class="[activeClass, errorClass]"></p> data: { activeClass: 'active', errorClass: 'text-danger' }
Rendered as:
<p class="active text-danger"></p>
If you also want to switch the classes in the list based on conditions, you can use the ternary
expression<p v-bind:class="[isActive ? activeClass : '', errorClass]"></p>
However, it is a bit cumbersome to write like this when there are multiple conditional classes. Therefore, object syntax can also be used in array syntax
<p v-bind:class="[{ active: isActive }, errorClass]"></p>
3. Used on components When in a self-defined component When using the class attribute on
, these classes will be added to the root element of the component. Classes that already exist on this element will not be overwritten.For example, if you declare this component:
Vue.component('my-component', { template: '<p class="foo bar">Hi</p>' })
<my-component class="baz boo"></my-component>
<p class="foo bar baz boo">Hi</p>
data binding
<my-component v-bind:class="{ active: isActive }"></my-component>
<p class="foo bar active">Hi</p>
Object syntax
The object syntax of v-bind:style is very intuitive - it looks very like CSS, but it is actually aJavaScript
Object. CSS property names can be named using camelCase or kebab-case (remember to use single quotes):<p v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></p> data: { activeColor: 'red', fontSize: 30 }
<p v-bind:style="styleObject"></p> data: { styleObject: { color: 'red', fontSize: '13px' } }
v-bind:style 的数组语法可以将多个样式对象应用到同一个元素上 相信看了本文案例你已经掌握了方法,更多精彩请关注php中文网其它相关文章! 推荐阅读:<p v-bind:style="[baseStyles, overridingStyles]"></p>
The above is the detailed content of How to use the V-bind directive in VueJs. For more information, please follow other related articles on the PHP Chinese website!