Vue 숙달도를 테스트하기 위해 꼭 물어봐야 할 인터뷰 질문 3가지를 확인해보세요!
이 기사에서는 Vue에 대한 숙달도를 테스트하고 올바르게 답할 수 있는지 확인하기 위해 꼭 물어봐야 할 인터뷰 질문 3개를 공유합니다!
질문 1: v-show와 v-if의 차이점은 무엇인가요? 이 질문은 면접관의 Vue 기본 사항을 검토하기 위한 것입니다. 일반적으로 Vue를 사용해 본 사람이라면 누구나 v-show와 v-if를 사용할 것입니다. (학습 영상 공유:
vue 영상 튜토리얼) v-if
명령은 콘텐츠를 조건부로 렌더링하는 데 사용되며 v-show
는 조건부 렌더링에도 사용됩니다. 디스플레이 요소.
v-show
를 사용하는 요소는 DOM에 렌더링 및 유지되며 CSS 표시는 요소의 표시 및 숨기기를 제어하는 데 사용됩니다. v-show
는 <template>
요소를 지원하지 않으며 v-else
도 지원하지 않습니다. v-if
指令用于条件性地渲染一块内容,而v-show
也用于条件性展示元素。
使用v-show
的元素会被渲染并保留在 DOM 中,并使用CSS的display来控制元素的显示和隐藏。v-show
不支持 <template>
元素,也不支持 v-else
。
使用v-if
是“真正”的条件渲染,元素的事件监听器和子组件都会被销毁和重建。v-if
也是惰性的,如果初始条件为false,则并不会渲染,直到变为true才会触发第一次渲染。而v-show不管条件是什么都会渲染,并根据display属性来控制显示隐藏。
一般来说,v-if的切换开销更大,而v-show只有初始渲染开销,如果元素需要频繁地切换,使用v-show,如果条件很少改变,则使用v-if更好。
问题2:v-model 的原理?
v-model
指令主要用来在<input>
、<select>
、<textarea>
表单元素或者组件上来实现数据的双向绑定。他并没有多神奇,只是监听了用户的输入事件来对数据进行更新。
v-model会根据不同的元素来触发不同的事件:
- text 和 textarea 元素使用
input
事件; - checkbox / radio 和 select使用
change
事件;
拿input表单举例:
<input v-model='something'> <!-- 等价于 --> <input v-bind:value="something" v-on:input="something = $event.target.value">
如果在自定义组件中:
<!-- 父组件: --> <ModelChild v-model="message"></ModelChild> <!-- 子组件: --> <template> <div>{{value}}</div> </template> <script> export default { props:{ value: String }, methods: { test1(){ this.$emit('input', '小红') }, }, } </script>
在父组件中,修改message的值,子组件内的props的value字段就会自动更改,在子组件内触发input事件,那么父组件中的message值也会被更改。
问题3:Vue 组件间通信有哪几种方式?
这道题也是面试非常常考的一道题,能答出的方式越多,说明对Vue掌握的越熟练。一般组件间的通信大致分为3种:父子组件通信、爷孙组件通信、兄弟组件通信,下面我们分别来看:
-
props / $emit
适合父子组件间通信- 这也是Vue最基础的数据通信方式,如果这都不知道,那就没法往后聊了。
-
ref
与$parent / $children
适合父子组件间通信-
ref
如果用在组件上,可以拿到组件的实例对象,进行操作数据 -
$parent
/$children
:也可以访问父/子实例对象,进行数据操作
-
-
EventBus ($emit / $on)
适合父子、爷孙、兄弟组件通信- 这种方法是通过场景一个空的Vue实例来作为事件中心,用它来触发事件和监听事件,从而实现任何组件间的通信。
- 使用
EventBus
这种方式有很多弊端,不建议大家在项目中去使用,知道这种实现思路就可以。
-
$attrs
/$listeners
适合爷孙组件通信-
$attrs
:包含父作用域中不作为组件props和自定义事件的属性绑定和事件,并且可以通过v-bind="$attrs"
传入内部组件。 -
$listeners
:包含父作用域中的 (不含 .native 修饰器的) v-on 事件监听器。它可以通过v-on="$listeners"
传入内部组件。注意:在 Vue 3 中已被移除。事件监听器现在是$attrs
的一部分。
-
-
lazyprovide / inject
v-if
를 사용하는 것은 "true" 조건부 렌더링이므로 요소의 이벤트 리스너와 하위 구성 요소가 삭제되고 다시 빌드됩니다.v-if
도- 입니다. 초기 조건이 false이면 렌더링되지 않으며, true가 될 때까지 첫 번째 렌더링이 트리거되지 않습니다. 그리고 v-show는 조건에 관계없이 렌더링되며, 디스플레이 속성에 따라 표시 및 숨기기를 제어합니다.
- 일반적으로 v-if는 전환 오버헤드가 더 큰 반면, v-show는 초기 렌더링 오버헤드만 있습니다. 요소를 자주 전환해야 하는 경우 조건이 거의 변경되지 않으면 v-show를 사용하는 것이 좋습니다. 만약에.
- 질문 2: v-model의 원리는 무엇인가요?
v-model
명령은 주로<input>
,<select>
,<textarea>
양방향 데이터 바인딩을 달성하기 위한 양식 요소 또는 구성 요소. 그다지 마술적이지는 않습니다. 단지 사용자의 입력 이벤트를 듣고 데이터를 업데이트하는 것뿐입니다. 🎜🎜v-model은 다양한 요소에 따라 다양한 이벤트를 실행합니다. 🎜🎜🎜text 및 textarea 요소는input
이벤트를 사용하고 🎜🎜checkbox/radio는change
이벤트 사용을 선택합니다. ; 🎜🎜🎜입력 양식을 예로 들어 보겠습니다. 🎜rrreee🎜사용자 정의 구성 요소에 있는 경우: 🎜rrreee🎜상위 구성 요소에서 메시지 값을 수정하면 하위 구성 요소에 있는 props의 값 필드가 자동으로 변경됩니다. 하위 컴포넌트에서 입력 이벤트가 발생하면 상위 컴포넌트의 메시지 값도 변경됩니다. 🎜🎜🎜질문 3: Vue 구성 요소 간의 통신 방법은 무엇입니까? 🎜🎜🎜🎜이 질문은 인터뷰에서도 매우 흔한 질문입니다. 답변 방법이 많을수록 Vue에 더 능숙해집니다. 일반적으로 컴포넌트 간의 통신은 크게 아버지-아들 컴포넌트 통신, 할아버지-손자 컴포넌트 통신, 형제 컴포넌트 통신의 세 가지 유형으로 나누어 살펴보겠습니다. 🎜
- 🎜🎜🎜props / $emit🎜 상위 컴포넌트와 하위 컴포넌트 간 통신에 적합합니다🎜🎜🎜이것도 Vue의 가장 기본적인 데이터 통신 방식입니다. 이것을 모르면 꽝입니다. 나중에 얘기하면 안 돼요. 🎜🎜🎜🎜🎜🎜
- Vuex는 Vue 애플리케이션의 상태 관리 문제를 해결하도록 특별히 설계되었습니다.
ref
및$parent / $children
🎜은 상위 구성요소와 하위 구성요소 간의 통신에 적합합니다🎜🎜🎜ref
사용하는 경우 구성 요소에서 구성 요소의 인스턴스 개체를 가져오고 데이터를 조작할 수 있습니다🎜🎜$parent
/$children
: 부모/자식 인스턴스 개체에 액세스하여 수행할 수도 있습니다. 데이터 작업🎜🎜🎜🎜🎜 🎜EventBus ($emit / $on)
🎜 부자, 할아버지, 손자, 형제 컴포넌트 통신에 적합🎜🎜🎜이 방법은 빈 Vue 인스턴스를 사용하는 것입니다. 이벤트 센터로 장면을 사용하여 이벤트를 트리거하고 이벤트를 수신하여 모든 구성 요소 간의 통신을 활성화합니다. 🎜🎜EventBus
를 사용하면 많은 단점이 있습니다. 모든 사람에게 이 구현 아이디어를 사용하는 것은 권장되지 않습니다. 🎜🎜🎜🎜🎜🎜$attrs
/$listeners
🎜 할아버지-손자 구성 요소 통신에 적합🎜🎜🎜$attrs
: 포함되지 않은 항목 포함 상위 범위 속성 바인딩 및 이벤트에서 구성요소 소품 및 사용자 정의 이벤트로v-bind="$attrs"
를 통해 내부 구성요소로 전달될 수 있습니다. 🎜🎜$listeners
: 상위 범위에 v-on 이벤트 리스너(.native 수정자 없음)를 포함합니다.v-on="$listeners"
를 통해 내부 구성요소로 전달될 수 있습니다. 🎜참고: Vue 3에서는 제거되었습니다. 이벤트 리스너는 이제$attrs
🎜의 일부입니다. 🎜🎜🎜🎜🎜🎜provide/inject
🎜 할아버지-손자 컴포넌트 통신에 적합 🎜🎜🎜 Grandchild 컴포넌트에서 Provide를 통해 변수를 제공하고, Grandchild 컴포넌트에서 Inject를 통해 변수를 주입합니다. 🎜🎜🎜🎜🎜🎜Vuex는 아버지와 아들, 할아버지와 손자, 형제 간의 컴포넌트 커뮤니케이션에 적합합니다🎜🎜
(학습 영상 공유: 웹 프론트엔드 개발, 기본 프로그래밍 영상)
위 내용은 Vue 숙달도를 테스트하기 위해 꼭 물어봐야 할 인터뷰 질문 3가지를 확인해보세요!의 상세 내용입니다. 자세한 내용은 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)

뜨거운 주제











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

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

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

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

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

VUE 멀티 페이지 개발은 vue.js 프레임 워크를 사용하여 응용 프로그램을 구축하는 방법입니다. 여기서 응용 프로그램은 별도의 페이지로 나뉩니다. 코드 유지 보수 : 응용 프로그램을 여러 페이지로 분할하면 코드를보다 쉽게 관리하고 유지 관리 할 수 있습니다. 모듈 식 : 각 페이지는 쉬운 재사용 및 교체를 위해 별도의 모듈로 사용할 수 있습니다. 간단한 라우팅 : 페이지 간의 탐색은 간단한 라우팅 구성을 통해 관리 할 수 있습니다. SEO 최적화 : 각 페이지에는 자체 URL이있어 SEO가 도움이됩니다.

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

VUE에서 DIV 요소를 점프하는 두 가지 방법이 있습니다. VUE 라우터를 사용하고 라우터 링크 구성 요소를 추가하십시오. @Click 이벤트 리스너를 추가하고 이것을 호출하십시오. $ router.push () 메소드를 점프하십시오.
