상위-하위 구성 요소 통신을 달성하기 위해 vue에서 v-model을 사용하는 방법
vue.js는 데이터 기반 웹 인터페이스를 구축하기 위한 라이브러리입니다. Vue.js의 목표는 가능한 가장 간단한 API를 사용하여 반응형 데이터 바인딩 및 구성된 뷰 구성 요소를 활성화하는 것입니다. 다음 기사에서는 Vue 프로젝트에서 v-model 상위 및 하위 구성요소의 통신 구현에 대한 관련 정보를 주로 소개합니다.
머리말
vue 프로젝트에서는 종종 이러한 요구 사항이 있습니다. 상위 구성 요소는 v-model을 바인딩하고 하위 구성 요소 입력은 상위 구성 요소 v-model에 바인딩된 값을 변경합니다. 많은 친구들이 이 작업에 대해 잘 알지 못합니다. 이를 위해서는 v-model에 대한 더 깊은 이해가 필요합니다. 오늘은 v-model에 대해 이야기해 보겠습니다.
vue의 양방향 데이터 바인딩
v-model 명령은 ,
이 질문은 많은 프론트엔드 인터뷰에서 언급될 것입니다. 면접관이 Vue의 양방향 데이터 바인딩 원칙이 무엇인지 물었습니다. 물론 이 질문 역시 바이두에서 검색하면 어디서나 답을 찾을 수 있습니다.
일반적으로 Object.defineProperty()는 데이터 하이재킹을 달성하기 위해 데이터 가져오기 및 설정을 모니터링하는 데 사용됩니다.
Object.defineProperty()에 대해 잘 모르신다면 위 링크를 클릭해 구문을 살펴보세요!
간단한 예:
var blog = { name: 'haorooms博客' }; console.log(blog.name); // haorooms博客
console.log(blog.name)
的同时,直接给haorooms博客加个书名号,那要怎么处理呢?或者说要通过什么监听对象 blog的属性值。这时候Object.defineProperty( )
를 실행하고 싶다면 코드는 다음과 같습니다.
var blog= {} var name = ''; Object.defineProperty(blog, 'name', { set: function (value) { name = value; console.log('欢迎来到' + value); }, get: function () { return '《' + name + '》' } }) blog.name = 'haorooms博客'; // 欢迎来到haorooms博客 console.log(blog.name); // 《haorooms博客》
위 코드를 실행하면 효과를 볼 수 있습니다!
Vue의 양방향 데이터 바인딩은 어떻게 구현되나요? 인터넷에는 구현 코드도 많이 있으므로 여기서는 너무 자세히 설명하지 않겠습니다!
v-model 사용법
위에서 너무 많이 말했지만 실제로는 Vue가 단일 데이터 흐름이고 v-model이 단지 구문 설탕임을 설명하기 위한 것입니다. .
<input v-model="haorooms" /> <input v-bind:value="haorooms" v-on:input="haorooms= $event.target.value" />
코드의 첫 번째 줄은 실제로 두 번째 줄의 구문 설탕입니다. 그러면 두 번째 코드 줄은 다음과 같이 축약될 수 있습니다.
<input :value="haorooms" @input="haorooms= $event.target.value" />
즉,
<input v-model="haorooms" />
는
<input :value="haorooms" @input="haorooms= $event.target.value" />
Using v-model on Components
원래 질문으로 돌아가볼까요? v-model은 vue의 상위 구성요소와 하위 구성요소 간에 어떻게 통신합니까? 컴포넌트에서 어떻게 사용하나요? 위의 예를 이해했다면 구성 요소에서 v-model을 쉽게 사용할 수 있습니다.
상위 컴포넌트 코드는 다음과 같습니다.
<template> <p id="demo"> <test-model v-model="haorooms"></test-model> <span>{{haorooms}}</span> </p> </template> <script> import testModel from 'src/components/testModel' export default { data(){ return{ haorooms: "haorooms" } }, components: { testModel, } } </script> <style lang="scss" scoped> </style>
하위 컴포넌트 코드는 다음과 같습니다.
<template> <span> <input ref="input" :value="value" @input="$emit('balabala', $event.target.value)" > </span> </template> <script> export default { data(){ return{ } }, props: ["value"], model: { prop: 'value', event: 'balabala' } } </script> <style lang="scss" scoped> </style>
위 코드를 사용하여 하위 컴포넌트별로 상위 컴포넌트 v-model 바인딩 값을 수정할 수 있습니다!
구현 스크린샷은 다음과 같습니다.
v-model의 단점과 해결책
체크박스나 라디오 버튼과 같은 공통 컴포넌트를 생성할 때 v-model은 사용하기 쉽지 않습니다.
<input type="checkbox" v-model="haorooms" />
다음과 같은 방법으로 해결할 수 있습니다.
<input type="checkbox" :checked="status" @change="status = $event.target.checked" />
상위 컴포넌트는 다음과 같이 작성할 수 있습니다.
<my-checkbox v-model="haorooms"></my-checkbox>
하위 컴포넌트:
<input type="checkbox" <!--这里就不用 input 了,而是 balabala--> @change="$emit('balabala', $event.target.checked)" :checked="value" /> export default { data(){ return{ } }, props: ['checked'], //这里就不用 value 了,而是 checked model: { prop: 'checked', event: 'balabala' }, }
위 내용은 모두에게 도움이 되기를 바랍니다. 미래에.
관련 기사:
Javascript를 사용하여 맞춤 이벤트 메커니즘을 구현하는 방법
Javascript에서 지도 데이터 구조의 자세한 해석
Javascript를 사용하여 2차원 주간 보기 달력을 개발하는 방법
위 내용은 상위-하위 구성 요소 통신을 달성하기 위해 vue에서 v-model을 사용하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

AI Hentai Generator
AI Hentai를 무료로 생성하십시오.

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제











vue.js에서 JS 파일을 참조하는 세 가지 방법이 있습니다. & lt; script & gt; 꼬리표;; mounted () 라이프 사이클 후크를 사용한 동적 가져 오기; Vuex State Management Library를 통해 수입.

HTML 템플릿의 버튼을 메소드에 바인딩하여 VUE 버튼에 함수를 추가 할 수 있습니다. 메소드를 정의하고 VUE 인스턴스에서 기능 로직을 작성하십시오.

vue.js의 시계 옵션을 사용하면 개발자가 특정 데이터의 변경 사항을들을 수 있습니다. 데이터가 변경되면 콜백 기능을 트리거하여 업데이트보기 또는 기타 작업을 수행합니다. 구성 옵션에는 즉시 콜백을 실행할지 여부와 DEEP를 지정하는 즉시 포함되며, 이는 객체 또는 어레이에 대한 변경 사항을 재귀 적으로 듣는 지 여부를 지정합니다.

vue.js에서 bootstrap 사용은 5 단계로 나뉩니다 : Bootstrap 설치. main.js.의 부트 스트랩 가져 오기 부트 스트랩 구성 요소를 템플릿에서 직접 사용하십시오. 선택 사항 : 사용자 정의 스타일. 선택 사항 : 플러그인을 사용하십시오.

vue.js는 이전 페이지로 돌아갈 수있는 네 가지 방법이 있습니다. $ router.go (-1) $ router.back () 사용 & lt; router-link to = & quot;/quot; Component Window.history.back () 및 메소드 선택은 장면에 따라 다릅니다.

CSS 애니메이션 또는 타사 라이브러리를 사용하여 VUE에서 Marquee/Text Scrolling Effects를 구현하십시오. 이 기사는 CSS 애니메이션 사용 방법을 소개합니다. & lt; div & gt; CSS 애니메이션을 정의하고 오버플로를 설정하십시오 : 숨겨진, 너비 및 애니메이션. 키 프레임을 정의하고 변환을 설정하십시오 : Translatex () 애니메이션의 시작과 끝에서. 지속 시간, 스크롤 속도 및 방향과 같은 애니메이션 속성을 조정하십시오.

Vue DevTools를 사용하여 브라우저 콘솔에서 vue 탭을 보면 VUE 버전을 쿼리 할 수 있습니다. npm을 사용하여 "npm list -g vue"명령을 실행하십시오. package.json 파일의 "종속성"객체에서 vue 항목을 찾으십시오. Vue Cli 프로젝트의 경우 "vue -version"명령을 실행하십시오. & lt; script & gt에서 버전 정보를 확인하십시오. vue 파일을 나타내는 html 파일의 태그.

vue.js가 트래버스 어레이 및 객체에 대한 세 가지 일반적인 방법이 있습니다. V- 결합 지시문은 V-FOR와 함께 사용하여 각 요소의 속성 값을 동적으로 설정할 수 있습니다. .MAP 메소드는 배열 요소를 새 배열로 변환 할 수 있습니다.
