Vue를 시작합니다.js: 명령
6106 단어 vue
명령은 Vue에서 제공하는 특수 속성입니다.그것들의 접두사는
v-
이고 각각 특정한 반응 행위를 페이지에 추가된 HTML 요소에 적용한다.Vue의 주요 지령은 v-bind
, v-if
, v-for
와 v-on
가 있다.사용v-bind
의 예는 다음과 같습니다.<div v-bind:id="someVariable"></div>
v-bind
속성은 HTML 속성 내부에서 Vue 인스턴스 변수에 액세스하는 데 사용됩니다.위의 예는div의 id를 v-bind
라는 변수에 분배하는 someVariable
속성을 보여 줍니다.HTML 요소 간에 변수를 참조하는 것과 달리 중괄호를 사용하여 HTML 속성의 변수를 설명할 수 없으며 v-bind
:<!-- Doesn't work, causes an error! -->
<a href={{ url }}>Vue.js</a>
<!-- This is the correct way to assign the href attribute to url -->
<a v-bind:href="url">Vue.js</a>
v-bind
를 사용하여 요소가 가질 수 있는 모든 속성을 변수에 지정할 수 있습니다.그러나 여러 변수를 속성에 추가해야 할 때v-bind
는 더욱 혼란스러워질 수 있다.페이지에 스타일을 추가할 때, 클래스와 스타일 속성은 그것과 관련된 많은 변수를 필요로 할 수 있습니다.이 경우 각 요소에 여러 클래스가 있는 것처럼 배열 또는 객체 구문을 v-bind
와 결합하여 사용할 수 있습니다.<div v-bind:class="[activeClass, errorClass]">
<!-- This will have the class names of whatever is in
the 'activeClass' and 'errorClass' variables -->
</div>
<div v-bind:class="{ active: isActive, 'text-danger': hasError }" >
<!-- This will have the classes of 'active' and 'text-danger'
depending on if their variables are true or false -->
</div>
스타일 속성을 사용할 때는 일반적으로 속성에 바인딩할 스타일 객체를 인스턴스에 생성하는 것이 좋습니다.// in index.html
<div v-bind:style="styleObject">
<!-- content -->
</div>
// in index.js
data: {
styleObject: {
color: 'red',
fontSize: '13px'
}
}
이렇게 하면 스타일 객체가 너무 커져도 HTML의 공간을 차지하지 않습니다.다음 지령은 어떤 프로그래머라도 익숙해야 할 개념을 사용했다.
v-if
명령은 조건에 사용되며 주어진 조건에 대한 값을 구하는 방식은 코드의if문장에 대한 값을 구하는 방식과 같다.예를 들면 다음과 같습니다.<div id="if-directive">
<h1 v-if="condition">I'm conditionally rendered!</h1>
</div>
이 예에서 condition
가리키는 v-if
은 사용자가 정의한 데이터일 것입니다.true 또는false로 계산할 수 있습니다.현재, 만약 condition
이 사실이라면, 웹 페이지에서 h1
표시를 볼 수 있고, 가짜라면, 이것은 비어 있을 것이다. div
이 div
에 연결된 Vue 인스턴스를 생성하여 이를 테스트할 수 있습니다.let ifDirective = new Vue({
el: "#if-directive",
data: {
condition: true
}
})
현재 브라우저에서 페이지를 열면 h1
표시가 보일 것입니다. 그러나 컨트롤러를 열고 ifDirective.condition
을false로 설정하면, 눈썹이 사라지는 것을 볼 수 있습니다.모든 프로그래밍 언어의if문장과 마찬가지로
v-if
도 관련v-else
과v-else-if
가 있기 때문에 각종if조건에 따라 다른 옵션을 제공할 수 있습니다. 아래와 같습니다.<div id="gender">
<p v-if="person.gender === 'M'">
Male
</p>
<p v-else-if="person.gender === 'F'">
Female
</p>
<p v-else>
Other
</p>
</div>
내가 이 글에서 토론할 마지막 지령은 v-for
이다.이것은 모든 프로그래머에게 익숙할 것입니다. 예상한 바와 같이, v-for
속성 디자인은 순환 집합이나 목록에 사용됩니다.다음은 목록이 있는 Vue 인스턴스의 예입니다.const forDirective = new Vue({
el: "#for-directive",
data: {
todos: [
{ text: 'Wash dishes', isComplete: false },
{ text: 'Do laundry', isComplete: true },
{ text: 'Check email', isComplete: false }
]
}
})
HTML은 다음과 같습니다.<ul id="for-directive">
<li v-for="todo in todos">
{{ todo.text }}
</li>
</ul>
이것은 위와 유사한 목록을 나타낼 것이다.색인이 있다면브라우저에서 html 페이지를 열고 컨트롤러를 열면 todos
그룹에 항목을 추가하거나 삭제하고 페이지에서 목록 업데이트를 볼 수 있습니다.인스턴스의 목록이 변경되면 목록은 항상 업데이트됩니다.v-for
속성은 컬렉션의 각 요소에 대한 색인 및/또는 키에 액세스하여 객체를 순환하는 기능도 제공합니다.// Using the index of each item in the array
v-for="(item, index) in items"
// Looping over an object
v-for="value in object"
// Looping over an object with it's key names and index values
v-for="(value, name, index) in object"
주의해야 할 점은 v-if
와 v-for
를 함께 사용하는 것을 권장하지 않는다는 것이다.그것들을 동시에 사용하려고 시도하는 주요 이유는 목록에 조건에 맞는 항목만 표시하려고 하기 때문입니다.그러나 더 좋은 방법은 계산 속성을 사용하는 것이다.계산 속성을 사용하여 원시 목록에서 정렬되거나 선별된 부분을 표시해야 합니다.만약 우리가 todo 목록에서 앞의 예시를 사용한다면, 우리는 실례에 컴퓨터 속성을 추가할 수 있습니다. 이 속성은 미완성 항목에 따라 목록을 필터할 수 있습니다. 아래와 같습니다.computed: {
completedTodos: function () {
return this.todos.filter(function (todo) {
return !todo.isComplete
})
}
}
그런 다음 v-for
를 이 계산 속성과 함께 사용하여 완료되지 않은 TODO를 페이지에만 표시할 수 있습니다.<li v-for="todo in completedTodos">
{{ todo.text }}
</li>
v-for
명령에 관해서 또 다른 주의해야 할 것은 목록의 모든 요소에 유일한 키 속성을 지정해야 한다는 것이다.이렇게 하면 Vue는 모든 요소의 표식을 정확하게 추적하여 집합이 변경될 때 기존 요소를 다시 만드는 것이 아니라 집합이 변경될 때 기존 요소를 다시 사용할 수 있습니다.<div v-for="item in items" v-bind:key="item.id">
<!-- content -->
</div>
현재, 나는 Vue에 관한 블로그 글에서 모든 내용을 언급했고, 나는 Vue 실례의 데이터를 웹 페이지에 표시하는 대부분의 다른 방식을 소개했다.Vue가 설정되어 있기 때문에 데이터 업데이트에 따라 페이지가 변경됩니다.그러나 나는 아직 사용자와 당신의 웹 페이지의 상호작용을 어떻게 허용하는지 진정으로 소개하지 않았다.이것은 v-on
지령을 사용해야 한다. 나는 다음 블로그에서 이 점을 토론하는 데 시간을 쓸 것이다.
Reference
이 문제에 관하여(Vue를 시작합니다.js: 명령), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/fosterv2/getting-started-with-vue-js-directives-4ocf텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)