Vue.js 학습 Item4 - 데이터 양방향 바인딩
7691 단어 JavaScriptVUE데이터 양방향 바인딩vueJs
삽입값
텍스트
데이터 바인딩의 가장 기본적인 형태는 텍스트 보간이며 Mustache 구문(중괄호)을 사용합니다.
<span>Message: {{ msg }}</span>
Mustache 태그는 해당 데이터 객체의 속성
msg
값으로 대체됩니다.이 속성이 변할 때마다 업데이트됩니다.또한 한 번의 보간만 처리하면 이후의 데이터 변화는 보간 업데이트를 일으키지 않습니다.
<span>This will never change: {{* msg }}</span>
원래 HTML
이중 Mustache 태그는 데이터를 HTML 대신 일반 텍스트로 처리합니다.실제 HTML 문자열을 출력하려면 3Mustache 태그가 필요합니다.
<div>{{{ raw_html }}}</div>
컨텐트를 HTML 문자열로 삽입 - 데이터 바인딩이 무시됩니다.템플릿 단편을 다시 사용할 필요가 있으면partials를 사용해야 합니다.
웹 사이트에서 임의의 HTML을 동적으로 렌더링하는 것은 매우 위험하다. 왜냐하면 [XSS 공격](https://en.wikipedia.org/wiki/Cross-site_scripting).신뢰할 수 있는 내용에만 HTML 플러그인을 사용하고 **는 사용자가 제출한 내용에 사용하지 않는다는 것을 기억하십시오.
HTML 특성
Mustache 태그는 HTML 특성(Attributes)에서도 사용할 수 있습니다.
<div id="item-{{ id }}"></div>
Vue에 주의하세요.js 명령과 특수 기능 내에서는 삽입값을 사용할 수 없습니다.걱정하지 마세요. 만약 Mustache 라벨이 지방을 잘못 썼다면.js가 경고를 줍니다.
바인딩 표현식
Mustache 태그에 배치된 텍스트를 바인딩 표현식이라고 합니다.Vue에서.js에서 귀속 표현식은 간단한 자바스크립트 표현식과 선택할 수 있는 필터로 구성되어 있습니다.
JavaScript 표현식
지금까지 우리의 템플릿은 간단한 속성 키로만 연결되어 있습니다.하지만 사실 Vue.js는 데이터 바인딩 내에서 모든 기능을 지원하는 JavaScript 표현식:
{{ number + 1 }}
{{ ok ? 'YES' : 'NO' }}
{{ message.split('').reverse().join('') }}
이러한 표현식은 해당 Vue 인스턴스의 역할 영역에서 계산됩니다.각 바인딩에는 하나의 표현식만 포함할 수 있으므로 다음 문은 유효하지 않습니다.
<!-- , : -->
{{ var a = 1 }}
<!-- , -->
{{ if (ok) { return message } }}
필터
Vue.js에서는 표현식 뒤에 선택적 필터(Filter)를 추가하여 파이프 문자로 표시할 수 있습니다.
{{ message | capitalize }}
여기에 표현식
message
의 값인 '파이프 (pipe)' 를 내장된 capitalize
필터에 삽입합니다. 이 필터는 자바스크립트 함수일 뿐입니다. 대문자로 되돌아오는 값입니다.Vue.js는 몇 개의 내장 필터를 제공합니다. 다음에 우리는 자신의 필터를 어떻게 개발하는지 이야기할 것입니다.파이프 구문은 JavaScript 구문이 아니므로 표현식에 필터를 사용할 수 없으며 표현식 뒤에만 추가할 수 있습니다.
필터는 다음과 같이 연결할 수 있습니다.
{{ message | filterA | filterB }}
필터에서 매개변수를 사용할 수도 있습니다.
{{ message | filterA 'arg1' arg2 }}
필터 함수는 항상 표현식 값을 첫 번째 매개변수로 사용합니다.인용부호가 있는 파라미터는 문자열로 간주되고 인용부호가 없는 파라미터는 표현식으로 계산된다.여기에 문자열
'arg1'
은 필터에 두 번째 매개 변수로 전달되고 표현식arg2
의 값은 계산된 후에 세 번째 매개 변수로 전달됩니다.명령어
명령어(Directives)는 접두사
v-
가 있는 특수한 특성입니다.명령어의 값은 바인딩 표현식으로 제한되므로 위에서 언급한 JavaScript 표현식과 필터 규칙도 여기에 적용됩니다.명령의 직책은 표현식의 값이 바뀔 때 특정한 행위를 DOM에 적용하는 것이다.개술의 예를 살펴보겠습니다.<p v-if="greeting">Hello!</p>
여기
v-if
명령은 표현식greeting
값의 진위를 근거로 삭제/삽입<p>
요소를 삭제합니다.매개 변수
일부 명령은 이름 뒤에 매개변수(Argument)를 붙이고 중간에 콜론으로 구분할 수 있습니다.예를 들어,
v-bind
명령은 HTML 특성을 다음과 같이 업데이트하는 데 사용됩니다.<a v-bind:href="url"></a>
여기
href
는 매개 변수입니다. v-bind
명령은 원소의 href
특성과 표현식url
의 값을 귀속시키는 것을 알려줍니다.특성 플러그인 {% raw %}href="{{url}}"{% endraw %}
으로 같은 결과를 얻을 수 있음을 알 수 있습니다. 이것은 틀림없고, 실제로는 내부 특성 플러그인 v-bind
으로 연결됩니다.또 다른 예는
v-on
명령으로 DOM 이벤트를 감청하는 데 사용됩니다.<a v-on:click="doSomething">
여기 파라미터는 감청된 사건의 이름입니다.우리도 사건 귀속을 상세히 설명할 것이다.
수식부
수식자(Modifiers)는 반각 마침표
.
로 시작하는 특수 접미사로 명령이 특수한 방식으로 귀속되어야 한다는 것을 나타낸다.예를 들어 .literal
수식자는 표현식이 아닌 글꼴 문자열로 값을 해석하라는 명령을 알려줍니다.<a v-bind:href.literal="/a/b/c"></a>
물론 이것은 의미가 없는 것 같다. 왜냐하면 우리는
href="/a/b/c"
을 사용하기만 하고 지령을 사용할 필요가 없기 때문이다.이 예는 단지 문법을 시범하기 위한 것이다.뒤에 우리는 수식부적의 더 많은 실천 용법을 보게 될 것이다.약어
v-
접두사는 표지 템플릿의 특정한 Vue 특성에 대한 시각적 암시이다.기존 HTML 코드에 동적 행동을 추가해야 할 때, 이 접두사는 구분 효과가 좋습니다.그러나 네가 자주 사용하는 지령을 사용할 때, 너는 줄곧 이렇게 사실적이고 수다스럽다고 느낄 것이다.또한 단일 페이지 애플리케이션(SPA)을 구축할 때 Vue.js는 모든 템플릿을 관리합니다. 이때 v-
접두사도 그리 중요하지 않습니다.그래서 Vue.js는 두 개의 가장 자주 사용하는 명령어 v-bind
와 v-on
에 특별한 줄임말을 제공합니다.줄임말
<!-- -->
<a v-bind:href="url"></a>
<!-- -->
<a :href="url"></a>
<!-- -->
<button v-bind:disabled="someDynamicCondition">Button</button>
<!-- -->
<button :disabled="someDynamicCondition">Button</button>
줄임말
<!-- -->
<a v-on:click="doSomething"></a>
<!-- -->
<a @click="doSomething"></a>
그것들은 '합법적' HTML과 약간 다르게 보이지만, 모든 Vue에 있습니다.js가 지원하는 브라우저는 모두 정확하게 해석될 수 있으며, 최종 렌더링 표시에 나타나지 않습니다.줄임말 문법은 완전히 선택할 수 있지만, 한 걸음 한 걸음 깊이 배우면서, 너는 그것들을 가진 것을 다행으로 여길 것이다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
기초 정리 - 1문자 (String) 숫자 (Number) 불린 (Boolean) null undefined 심볼 (Symbol) 큰정수 (BigInt) 따옴표로 묶어 있어야 함 Not-A-Number - 숫자 데이터 / 숫자로 표...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.