이 글은 Vue v2.5의 미완성 조정 및 업데이트 관련 정보를 주로 소개하고 있으니, 필요한 친구들이 참고하시면 도움이 될 것 같습니다.
Vue 2.5 레벨 E 출시: 새로운 기능 목록
최근 Vue v2.5가 출시되었습니다. TypeScript에 대한 더 나은 지원 외에도 알아야 할 몇 가지 기능 및 구문 조정이 있습니다. 이 문서에서는 TypeScript에 대해 설명하지 않고 몇 가지 주요 조정 사항만 설명합니다.
원래 Vue 버전 업그레이드에 별로 민감하지 않아서 최근 v2.5 릴리스에는 크게 관심을 두지 않았습니다. 오늘 Vue 빌드 프로젝트를 다시 다운로드했을 때 몇 가지 경고를 발견했습니다.
경고 메시지를 보니 Vue v2.5를 사용했기 때문이라는 것을 알게 되었고, 범위 지정 슬롯의 구문이 조정되었습니다. 그러다가 GitHub에 가서 v2.5의 릴리스를 확인했습니다. v2.5에서는 범위 속성의 사용이 더 이상 권장되지 않으므로 슬롯 범위 속성을 사용하여 컨텍스트를 설정하는 것이 좋습니다.
코드의 범위="범위"를 슬롯 범위="범위"로 변경하세요. 아래 그림과 같습니다.
이제 Vue v2.5의 주요 업데이트 및 조정 목록을 살펴보겠습니다.
errorCaptured 후크를 사용하여 구성 요소 내 예외 처리
v2.5 이전에는 전역 config.errorHandler 설정을 사용하여 응용 프로그램에 대해 알 수 없는 예외를 처리하는 기능을 제공하거나 renderError 구성 요소를 설정하여 예외를 처리할 수 있습니다. 렌더링 기능 내에서. 그러나 이들 중 어느 것도 단일 구성 요소 내에서 예외를 처리하기 위한 완전한 메커니즘을 제공하지 않습니다.
v2.5에서는 구성 요소의 모든 하위 구성 요소 트리(자체 제외)에서 생성된 모든 예외(비동기 호출의 예외 포함)를 캡처할 수 있는 새로운 후크 함수 errorCaptured가 구성 요소에 제공됩니다. 이 후크 함수는 매개변수를 받았습니다. 개발자가 구성 요소 내에서 예외를 보다 친숙하게 처리할 수 있도록 하는 errorHandler와 동일합니다.
React를 알고 계시다면 이 기능이 React v16에 도입된 "Error Boundary" 개념과 매우 유사하다는 것을 알게 될 것입니다. 둘 다 단일 구성 요소의 렌더링 프로세스 중에 예외를 더 잘 처리하고 표시하도록 설계되었습니다. 이 공식 계정과 Zhihu 칼럼의 이전 기사에서는 React의 예외 경계 개념을 구체적으로 소개했습니다. 포털을 클릭하면 볼 수 있습니다.
errorCaputerd를 사용하려면 일반 구성 요소를 캡슐화하여 다른 비즈니스 구성 요소를 포함시켜 비즈니스 구성 요소 내의 예외를 캡처하고 해당 디스플레이 처리를 수행할 수 있습니다. 다음은 다른 비즈니스 구성 요소(다른 구성 요소)의 예외를 포함하고 처리하기 위해 공통 구성 요소(ErrorBoundary)를 캡슐화하는 간단한 공식 예입니다.
Vue.component('ErrorBoundary', { data: () => ({ error: null }), errorCaptured (err, vm, info) { this.error = `${err.stack}\n\nfound in ${info} of component` return false }, render (h) { if (this.error) { return h('pre', { style: { color: 'red' }}, this.error) } // ignoring edge cases for the sake of demonstration return this.$slots.default[0] } }) <error-boundary> <another-component></another-component> </error-boundary>
errorCapated의 전달 동작 기능
전역 errorHandler가 정의된 경우 모든 예외는 여전히 errorHadnler로 전달됩니다. errorHandler가 정의되지 않은 경우에도 이러한 예외는 별도의 분석 서비스에 보고될 수 있습니다.
상속 또는 상위 구성 요소를 통해 구성 요소에 여러 errorCapured 후크 함수가 정의된 경우 이러한 후크 함수는 모두 동일한 예외 정보를 받습니다.
errorCapured 후크에서 false를 반환하여 예외 전파를 방지할 수 있습니다. 즉, 예외가 처리되었으며 무시할 수 있습니다. 또한 다른 errorCapured 후크 함수와 전역 errorHandler 함수도 이 예외를 트리거하지 못합니다.
단일 파일 구성 요소는 "기능적 구성 요소"를 지원합니다.
vue-loader v13.3.0 이상을 통해 단일 파일 구성 요소 내에서 "기능적 구성 요소" 정의를 지원하고 템플릿 컴파일, 범위가 지정된 CSS 및 핫 배포 및 다른 기능.
기능 컴포넌트 정의는 템플릿 태그에 기능 속성을 정의하여 선언해야 합니다. 그리고 템플릿에 있는 표현식의 실행 컨텍스트는 함수 선언 컨텍스트이므로 컴포넌트의 속성에 접근하려면 props.xxx를 사용하여 이를 얻어야 합니다. 아래의 간단한 예를 참조하세요.
<template> <p>{{ props.msg }}</p> </template>
SSR 환경
vue-server-renderer를 사용하여 SSR 애플리케이션을 구축하는 경우 기본적으로 Node.js 환경이 필요하므로 php-v8js 또는 Nashorn과 같은 일부 JavaScript 런타임 환경을 실행할 수 없습니다. . v2.5에서는 위의 환경에서도 SSR 애플리케이션이 정상적으로 실행될 수 있도록 개선되었습니다.
php-v8js와 Nashorn에서는 환경 준비 단계에서 전역 객체와 프로세스 전역 객체를 시뮬레이션해야 하며, 프로세스의 환경 변수를 별도로 설정해야 합니다. process.env.VUE_ENV를 "서버"로 설정하고 process.env.NODE_ENV를 "개발" 또는 "프로덕션"으로 설정해야 합니다.
또한 Nashorn에서는 Promise 및 settimeout에 대한 폴리필을 제공하기 위해 Java의 기본 타이머를 사용해야 합니다.
공식에서는 php-v8js에서의 사용 예를 다음과 같이 제시합니다:
<?php $vue_source = file_get_contents('/path/to/vue.js'); $renderer_source = file_get_contents('/path/to/vue-server-renderer/basic.js'); $app_source = file_get_contents('/path/to/app.js'); $v8 = new V8Js(); $v8->executeString('var process = { env: { VUE_ENV: "server", NODE_ENV: "production" }}; this.global = { process: process };'); $v8->executeString($vue_source); $v8->executeString($renderer_source); $v8->executeString($app_source); ?> // app.js var vm = new Vue({ template: `<p>{{ msg }}</p>`, data: { msg: 'hello' } }) // exposed by vue-server-renderer/basic.js renderVueComponentToString(vm, (err, res) => { print(res) })
v-on modifier
Key value key automatic modifier
Vue v2.5 이전 버전에서는 v를 사용하려는 경우 키보드를 사용하려면 -on에 내장 별칭이 없는 키의 경우 keyCode를 수정자로 직접 사용하거나(@keyup.13="foo") config.keyCodes를 사용하여 키 값에 대한 별칭을 등록해야 합니다.
v2.5에서는 합법적인 키값(MDN의 KeyboardEvent.key 참고)을 수식어로 직접 사용하여 연속적으로 사용할 수 있습니다. 다음과 같습니다:
<input>
上述例子中,事件处理函数只会在 $event.key === ‘PageDown' 时被调用。
注意:现有键值修饰符仍然可用。在IE9中,一些键值(.esc 和 方向键的 key)不是一致的值,如果要兼容 IE9,需要按 IE9 中内置的别名来处理。
.exact 修饰符
新增了一个 .exact 修饰符,该修饰符应该和其他系统修饰符(.ctrl, .alt, .shift and .meta)结合使用,可用用来区分一些强制多个修饰符结合按下才会触发事件处理函数。如下:
<!-- 当 Alt 或 Shift 被按下也会触发处理函数 --> <button>A</button> <!-- 只有当 Ctrl 被按下,才会触发处理函数 --> <button>A</button>
简化 Scoped Slots 的使用
之前,如果要在 template 标签上使用 scope 属性定义一个 scoped slot,可以像下面这样定义:
<comp> <template> <p>{{ props.msg }}</p> </template> </comp>
在 v2.5 中,scope 属性已被弃用(仍然可用,但是会爆出一个警告,就像本文文首的那样),我们使用 slot-scope 属性替代 scope 属性来表示一个 scoped slot,且 slot-scope 属性除了可以被用在 template 上,还可以用在标签元素和组件上。如下:
<comp> <p> {{ props.msg }} </p> </comp>
注意:这次的调整,表示 slot-scope 已经是一个保留属性了,不能再被单独用在组件属性上了。
Inject 新增了默认值选项
本次调整中,Injections 可以作为可选配置,并且可以声明默认值。也可以用 from 来表示原属性。
export default { inject: { foo: { from: 'bar', default: 'foo' } } }
与属性类似,数组和对象的默认值需要使用一个工厂函数返回。
export default { inject: { foo: { from: 'bar', default: () => [1, 2, 3] } } }
相关推荐:
vue、vuecli、webpack中使用mockjs模拟后端数据
위 내용은 Vue v2.5의 불완전한 조정 및 업데이트에 대해의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

C 및 JavaScript는 WebAssembly를 통한 상호 운용성을 달성합니다. 1) C 코드는 WebAssembly 모듈로 컴파일되어 컴퓨팅 전력을 향상시키기 위해 JavaScript 환경에 도입됩니다. 2) 게임 개발에서 C는 물리 엔진 및 그래픽 렌더링을 처리하며 JavaScript는 게임 로직 및 사용자 인터페이스를 담당합니다.

JavaScript는 웹 사이트, 모바일 응용 프로그램, 데스크탑 응용 프로그램 및 서버 측 프로그래밍에서 널리 사용됩니다. 1) 웹 사이트 개발에서 JavaScript는 HTML 및 CSS와 함께 DOM을 운영하여 동적 효과를 달성하고 jQuery 및 React와 같은 프레임 워크를 지원합니다. 2) 반응 및 이온 성을 통해 JavaScript는 크로스 플랫폼 모바일 애플리케이션을 개발하는 데 사용됩니다. 3) 전자 프레임 워크를 사용하면 JavaScript가 데스크탑 애플리케이션을 구축 할 수 있습니다. 4) node.js는 JavaScript가 서버 측에서 실행되도록하고 동시 요청이 높은 높은 요청을 지원합니다.

Python은 데이터 과학 및 자동화에 더 적합한 반면 JavaScript는 프론트 엔드 및 풀 스택 개발에 더 적합합니다. 1. Python은 데이터 처리 및 모델링을 위해 Numpy 및 Pandas와 같은 라이브러리를 사용하여 데이터 과학 및 기계 학습에서 잘 수행됩니다. 2. 파이썬은 간결하고 자동화 및 스크립팅이 효율적입니다. 3. JavaScript는 프론트 엔드 개발에 없어서는 안될 것이며 동적 웹 페이지 및 단일 페이지 응용 프로그램을 구축하는 데 사용됩니다. 4. JavaScript는 Node.js를 통해 백엔드 개발에 역할을하며 전체 스택 개발을 지원합니다.

C와 C는 주로 통역사와 JIT 컴파일러를 구현하는 데 사용되는 JavaScript 엔진에서 중요한 역할을합니다. 1) C는 JavaScript 소스 코드를 구문 분석하고 추상 구문 트리를 생성하는 데 사용됩니다. 2) C는 바이트 코드 생성 및 실행을 담당합니다. 3) C는 JIT 컴파일러를 구현하고 런타임에 핫스팟 코드를 최적화하고 컴파일하며 JavaScript의 실행 효율을 크게 향상시킵니다.

실제 세계에서 JavaScript의 응용 프로그램에는 프론트 엔드 및 백엔드 개발이 포함됩니다. 1) DOM 운영 및 이벤트 처리와 관련된 TODO 목록 응용 프로그램을 구축하여 프론트 엔드 애플리케이션을 표시합니다. 2) Node.js를 통해 RESTFULAPI를 구축하고 Express를 통해 백엔드 응용 프로그램을 시연하십시오.

웹 개발에서 JavaScript의 주요 용도에는 클라이언트 상호 작용, 양식 검증 및 비동기 통신이 포함됩니다. 1) DOM 운영을 통한 동적 컨텐츠 업데이트 및 사용자 상호 작용; 2) 사용자가 사용자 경험을 향상시키기 위해 데이터를 제출하기 전에 클라이언트 확인이 수행됩니다. 3) 서버와의 진실한 통신은 Ajax 기술을 통해 달성됩니다.

보다 효율적인 코드를 작성하고 성능 병목 현상 및 최적화 전략을 이해하는 데 도움이되기 때문에 JavaScript 엔진이 내부적으로 작동하는 방식을 이해하는 것은 개발자에게 중요합니다. 1) 엔진의 워크 플로에는 구문 분석, 컴파일 및 실행; 2) 실행 프로세스 중에 엔진은 인라인 캐시 및 숨겨진 클래스와 같은 동적 최적화를 수행합니다. 3) 모범 사례에는 글로벌 변수를 피하고 루프 최적화, Const 및 Lets 사용 및 과도한 폐쇄 사용을 피하는 것이 포함됩니다.

Python은 부드러운 학습 곡선과 간결한 구문으로 초보자에게 더 적합합니다. JavaScript는 가파른 학습 곡선과 유연한 구문으로 프론트 엔드 개발에 적합합니다. 1. Python Syntax는 직관적이며 데이터 과학 및 백엔드 개발에 적합합니다. 2. JavaScript는 유연하며 프론트 엔드 및 서버 측 프로그래밍에서 널리 사용됩니다.


핫 AI 도구

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

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

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

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

에디트플러스 중국어 크랙 버전
작은 크기, 구문 강조, 코드 프롬프트 기능을 지원하지 않음

ZendStudio 13.5.1 맥
강력한 PHP 통합 개발 환경

DVWA
DVWA(Damn Vulnerable Web App)는 매우 취약한 PHP/MySQL 웹 애플리케이션입니다. 주요 목표는 보안 전문가가 법적 환경에서 자신의 기술과 도구를 테스트하고, 웹 개발자가 웹 응용 프로그램 보안 프로세스를 더 잘 이해할 수 있도록 돕고, 교사/학생이 교실 환경 웹 응용 프로그램에서 가르치고 배울 수 있도록 돕는 것입니다. 보안. DVWA의 목표는 다양한 난이도의 간단하고 간단한 인터페이스를 통해 가장 일반적인 웹 취약점 중 일부를 연습하는 것입니다. 이 소프트웨어는

맨티스BT
Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

mPDF
mPDF는 UTF-8로 인코딩된 HTML에서 PDF 파일을 생성할 수 있는 PHP 라이브러리입니다. 원저자인 Ian Back은 자신의 웹 사이트에서 "즉시" PDF 파일을 출력하고 다양한 언어를 처리하기 위해 mPDF를 작성했습니다. HTML2FPDF와 같은 원본 스크립트보다 유니코드 글꼴을 사용할 때 속도가 느리고 더 큰 파일을 생성하지만 CSS 스타일 등을 지원하고 많은 개선 사항이 있습니다. RTL(아랍어, 히브리어), CJK(중국어, 일본어, 한국어)를 포함한 거의 모든 언어를 지원합니다. 중첩된 블록 수준 요소(예: P, DIV)를 지원합니다.
