구성요소란 무엇인가요?
컴포넌트는 Vue.js의 가장 강력한 기능 중 하나입니다. 구성 요소는 HTML 요소를 확장하여 재사용 가능한 코드를 캡슐화할 수 있습니다. 높은 수준에서 구성 요소는 Vue.js 컴파일러가 특별한 기능을 추가하는 사용자 정의 요소입니다. 경우에 따라 구성 요소는 is 속성으로 확장된 기본 HTML 요소의 형태를 취할 수도 있습니다.
다음으로 vuejs의 단방향 바인딩, 양방향 바인딩, 목록 렌더링, 응답 기능에 대한 기본 지식을 소개하겠습니다.
(1 ) 단방향 바인딩
<div id="app"> {{ message }} </div> <script> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' } }) </script>
①el은 바인딩을 의미해야 합니다. 바인딩 id=app 태그
는 다음과 같이 변경할 수도 있습니다.
<div class="app"> {{ message }} </div>
el: '.app' ,
효과도 비슷합니다.
그러나 여러 개가 있는 경우 첫 번째에만 유효합니다.
<div class="app"> {{ message }} </div> <div class="app"> {{ message }} </div> Hello Vue.js! {{ message }}
② data의 메시지 변수는 {{message}
(2) 양방향 바인딩
<div id="app"> {{ message }} <br/> <input v-model="message"/> </div> <script> new Vue({ el: '#app', data: { message: 'Hello Vue.js!' } }) </script>
효과는 다음과 같습니다.
①입력 입력 상자에 초기 값이 있으며, 그 값은 데이터의 메시지 속성 값입니다. ;
②입력 상자의 값을 수정하면 외부 값에 영향을 줄 수 있습니다.
(3) 함수 반환 값
<div id="app"> {{ message() }} <br/> <input v-model="message()"/> </div> <script> new Vue({ el: '#app', data: { message: function () { return 'Hello Vue.js!'; } } }) </script>
효과:
① 출력 값은 메시지의 반환 값이기도 합니다.
②단점: 양방향 바인딩이 손실됩니다.
(4) 렌더링 목록
<div id="app"> <ul> <li v-for="list in todos"> {{list.text}} </li> </ul> </div> <script> new Vue({ el: '#app', data: { todos: [ {text: "1st"}, {text: "2nd"}, {text: "3rd"} ] } }) </script>
v-for의 목록은 i의 for in과 유사합니다.
제 생각에는 ,
① todos의 list를 list in todos와 동일하게 이해하면 됩니다
②그러면 다음 줄의 list.text는 todos[list].text로 이해하면 됩니다
그런 다음 v-for 태그가 어디에 있든 이를 기반으로 여러 번 복사됩니다.
(5) 사용자 입력 처리
<div id="app"> <input v-model="message"> <input type="button" value="值+1" v-on:click="add"/> <input type="button" value="值-1" v-on:click="minus"/> <input type="button" value="重置归零" v-on:click="reset"/> </div> <script> new Vue({ el: '#app', data: { message: 1 }, methods: { add: function () { this.message++; //这步要加this才能正确获取到值 }, minus: function () { this.message--; }, reset: function () { this.message = 0; } } }) </script>
효과:
① 입력 상자의 값은 추가 버튼을 한 번 클릭하면 값이 + 1;
②추가할 수 없는 경우 NaN과 같이 일반 표현식을 잘못 추가한 것처럼 결과가 반환됩니다.
③ 데이터의 메시지 값은
④methods는 쉼표로 구분된 함수 컬렉션입니다.
⑤ 값을 가져올 때 이것을 추가합니다. 예를 들어 this.message는 메시지 값을 가져옵니다.
(6) 다기능
<div id="app"> <input v-model="val" v-on:keypress.enter="addToList"> <ul> <li v-for="val in values"> {{val.val}} <input type="button" value="删除" v-on:click="removeList($index)"/> </li> </ul> </div> <script> new Vue({ el: '#app', data: { val: "1", values: [] }, methods: { addToList: function () { var val = parseInt(this.val.trim()); //注意,因为当上面的val是字符串类型的时候,才能用trim(),如果是数字类型,则用this.val if (val) { this.values.push({val: val}); } this.val = String(val + 1); }, removeList: function (index) { this.values.splice(index, 1); } } }) </script>
효과:
①초기 입력 상자의 값은 1입니다. 🎜>
② 입력창에서 Enter 키를 누르면 입력창의 내용이 숫자로 변환되어 변환된 숫자와 삭제 버튼이 있는 목록에 추가되며, 입력창의 값은 값은 숫자 + 1로 변환됩니다.<input v-model="DATE" type="date"/> <li>{{DATE}}</li>
data: { val: "1", values: [] }, methods: { addToList: function () { console.log(this.val);
<li v-for="val in values"> {{val.val}} <input type="button" value="删除" v-on:click="removeList($index)"/> </li>
의 val.val은 아닙니다.
궁금한 점이 있는 경우 메시지를 남겨주시면 편집자가 모든 사람에게 즉시 답변해 드리겠습니다. 또한 PHP 중국어 웹사이트를 지원해 주신 모든 분들께 감사드립니다! Vuejs 단방향 바인딩, 양방향 바인딩, 목록 렌더링 및 응답 기능과 관련된 더 많은 기사를 보려면 PHP 중국어 웹사이트를 주목하세요!