>  기사  >  웹 프론트엔드  >  Vue.js 동적 바인딩 클래스에 대한 자세한 설명

Vue.js 동적 바인딩 클래스에 대한 자세한 설명

高洛峰
高洛峰원래의
2017-01-12 13:24:521021검색

Vue.js의 핵심은 일반 HTML 템플릿의 특수 구문을 사용하여 DOM을 기본 데이터에 "바인딩"할 수 있게 해주는 반응형 데이터 바인딩 시스템입니다. 바인딩된 DOM은 데이터와 동기화된 상태로 유지되며, 데이터가 변경될 때마다 해당 DOM 뷰가 업데이트됩니다. 이 기능을 기반으로 vue.js를 통해 클래스를 동적으로 바인딩하는 것이 매우 간단해집니다.

1. 데이터 바인딩

vue 명령어는 v- 접두사로 표시됩니다. 데이터 바인딩 명령어 v-bind: 속성 이름, 약어로는 속성 이름입니다.

<a v-bind:href="http://www.cnblogs.com/">博客园首页</a>
简写:
<a :href="http://www.cnblogs.com/">博客园首页</a>

2. 동적 바인딩 클래스

vue의 기본 구분 기호는 {{ }}입니다. 구분 기호의 문자열은 데이터 변수로 간주되며 클래스 =를 통해 전달될 수 있습니다. "{{ className }}" 메소드는 클래스를 설정하는 데 사용되지만 Vue에서는 이 메소드를 v-bind:class 메소드와 혼합하는 것을 권장하지 않습니다. 둘 중 하나만 선택할 수 있습니다. v-bind:class는 클래스 속성의 변수 바인딩 방식과 공존할 수 없지만, DOM 태그에는 네이티브 클래스 기능과 v-bind:class가 동시에 나타날 수 있습니다.

2.1 v-bind:class는 문자열 값이 고정되어 있어 클래스를 동적으로 변경할 수 없으므로 사용하지 않는 것이 좋습니다. :class는 데이터 변수를 지원합니다. 변수 값이 변경되면 클래스도 동시에 업데이트됩니다. v-bind:class 지시문의 값은 javascript 표현식

HTML代码:
<div :class=" &#39;classA classB&#39; ">Demo1</div>
渲染后的HTML:
<div class="classA classB">Demo1</div>

과 같은 바인딩 표현식으로 제한됩니다. 지시문에 기록된 값은 javascript 표현식과 같은 표현식으로 간주됩니다. , 따라서 v-bind:class는 삼항 연산을 허용합니다:

HTML代码:
<div :class="classA">Demo2</div>
Javascript代码:
data: {
 classA: &#39;class-a&#39; //当classA改变时将更新class
}
渲染后的HTML:
<div class="class-a">Demo2</div>

2.3 v-bind:class는 객체를 지원하며 객체 클래스가 변경되면 동적으로 업데이트됩니다

HTML代码:
<div :class="classA ? &#39;class-a&#39; : &#39;class-b&#39; ">Demo3</div>
渲染后的HTML:
<div class="class-a">Demo3</div>

2.4: v-bind: 클래스는 배열을 지원합니다. 배열의 변수가 변경되면 클래스 목록이 동적으로 업데이트됩니다.
HTML代码:
<div :class="{ &#39;class-a&#39;: isA, &#39;class-b&#39;: isB}">Demo4</div>
Javascript代码:
data: {
 isA: false, //当isA改变时,将更新class
 isB: true //当isB改变时,将更新class
}
渲染后的HTML:
<div class="class-b">Demo4</div>
HTML代码:
<div :class="objectClass">Demo5</div>
Javascript代码:
data: {
 objectClass: {
 class-a: true,
 class-b: false
 }
}
渲染后的HTML:
<div class="class-a">Demo5</div>

배열에 개체 개체가 포함될 수 있습니다. 변경되면 수업 목록도 업데이트됩니다

HTML代码:
<div :class="[classA, classB]">Demo6</div>
Javascript代码:
data: {
 classA: &#39;class-a&#39;,
 classB: &#39;class-b&#39;
}
渲染后的HTML:
<div class="class-a class-b">Demo6</div>

위 내용은 이 글의 전체 내용입니다. 이 글의 내용이 모든 분들의 공부나 업무에 조금이라도 도움이 되었으면 좋겠습니다. PHP 중국어 웹사이트가 더 많아질 것입니다!

HTML代码:
<div :class="[classA, classB]">Demo7</div>
Javascript代码:
data: {
 classA: &#39;class-a&#39;,
 objectClass: {
 classB: &#39;class-b&#39;, // classB 的值为class-b, 则将classB的值添加到class列表
 classC: false, // classC值为false,将不添加classC
 classD: true // classD 值为true,classC将被直接添加到class列表
}
}
渲染后的HTML:
<div class="class-a class-b classD">Demo7</div>
Vue.js 다이나믹 바인딩 클래스 관련 글에 대한 자세한 설명은 PHP 중국어 홈페이지를 참고해주세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.