우리는 Vue 2.0 에서 가상 DOM 에 대한 지원을 알고 있다. 템플릿에 HTML 코드를 작성하지 않고도 JavaScript 를 통해 동적으로 요소를 만들 수 있습니다. 가상 DOM 은 결국 실제 DOM 으로 렌더링됩니다.
데이터: {
MSG: "안녕하세요, 세계"
},
렌더링 (h) {
H (
Div' ,
{attrs: {id:' 내 id'},
[this.msg]
);
}
제공되는 내용은 다음과 같습니다.
& ltdiv id =' my-id'>;; Hello world & lt/div & gt;;
Vue 2.0 의 렌더링은 우리에게 무한한 상상력의 공간을 제공하는 새로운 세계를 열어 주었다. 예를 들어 React 에 사용된 JSX 구문을 Vue 에 적용할 수 있습니다. 다음으로 Vue 프로젝트에서 JSX 를 사용하는 방법에 대해 살펴보겠습니다.
JSX 소개
JSX 는 자바스크립트 코드에 XML 구문 스타일의 코드를 삽입할 수 있는 자바스크립트 기반 언어 확장입니다. 다음과 같습니다.
데이터: {
메시지: "안녕, 세상"
},
렌더링 (h) {
반환 (
& ltdiv id =' my-id'>;; 그리고,
{this.msg}
& lt/div & gt;;
);
}
그러나 브라우저는 기본적으로 JSX 를 구문 분석할 수 없으며 표준 JavaScript 코드로 컴파일해야 실행할 수 있습니다. 우리가 sass 또는 그 이하의 것을 CSS 코드로 컴파일해야 실행할 수 있는 것처럼.
Vue 에서 JSX 사용
Vue 프레임워크는 JSX 를 특별히 지원하지 않습니다. 실제로 JSX 는 결국 표준 JavaScript 코드로 컴파일되기 때문에 지원이 필요하지 않습니다. 그렇다면 Vue 와 JSX 를 함께 사용할 수 있는 이유는 무엇입니까? Vue 가 가상 DOM 을 지원하기 때문에 JSX 또는 기타 사전 처리 언어를 사용할 수 있습니다. 단, render 방법이 제대로 작동하는지 확인할 수 있는 한 간단합니다.
Vue 는 BBEL-Plugin-Transform-Vue-jsx 라는 플러그인을 제공하여 JSX 를 컴파일한 후 사용 방법을 설명합니다.
Vue 에서 JSX 를 사용하는 이유는 무엇입니까?
Vue 에서 JSX 를 사용하는 이유는 무엇입니까? 사실, Vue 는 JSX 를 사용하도록 강요하지 않습니다. 단지 새로운 방법일 뿐입니다. 속담에도 있듯이, 무 채소는 각각 사랑이 있다. Render 메서드에서 JSX 를 사용하는 것이 더 간결하다고 생각하는 사람들도 있고, HTML 코드와 JavaScript 코드를 혼합하는 것이 역겹다고 생각하는 사람들도 있다. 어차피 좋아하면 쓰고, 싫으면 쓰지 않는다. 늦지 말고 간단한 응용 프로그램을 살펴 보겠습니다.
Script.js
새 vue (
엘:' # 앱',
데이터: {
메시지: "메시지를 보려면 클릭하십시오."
},
방법: {
안녕하세요 () {
Alert ("이것은 메시지입니다.")
}
}
});
Index.html
& ltdiv id = "app">
& lt 스팬
클래스 = "내 클래스"
Style="cursor: pointer "
V-on: click = "헬로"
& gt
{{ msg }}
& lt/span>.
& lt/div & gt;;
코드는 간단합니다. 페이지에 "메시지를 보려면 클릭" 하는 span 을 표시하는 것입니다. 내용을 클릭하면 경고가 나타납니다. Render 를 사용하여 구현하는 방법을 살펴 보겠습니다.
Vue 2.0 의 렌더링 기능을 사용하여 구현됩니다.
Script.js
새 vue (
엘:' # 앱',
데이터: {
메시지: "메시지를 보려면 클릭하십시오."
},
방법: {
안녕하세요 () {
Alert ("이것은 메시지입니다.")
}
},
렌더링 (createElement) {
CreateElement (
팬',
{
클래스: {'my-class': true},
스타일: {cursor: 'pointer'},
켜기: {
클릭: this.hello
}
},
[this.msg]
);
},
});
Index.html
& ltdiv id = "app">& lt! -span 은 여기에-> & lt/div & gt;;
JSX 를 사용하여 구현
Script.js
새 vue (
엘:' # 앱',
데이터: {
메시지: "메시지를 보려면 클릭하십시오. 클릭합니다
},
방법: {
안녕하세요 () {
Alert ('이것은 메시지입니다.' ) 을 참조하십시오
}
},
렌더링: 함수 렌더링 (h) {
반환 (
& lt 스팬
Class = {'my-class': true}}
Style={{ cursor: 'pointer' }}
클릭 ={ this.hello}
& gt
{this.msg}
& lt/span>.
) 을 참조하십시오
}
});
Index.html 위와 같습니다.
바벨-플러그인-변환 -vue-jsx
앞서 언급했듯이 JSX 를 실행하려면 JavaScript 로 컴파일해야 하므로 세 번째 샘플에는 추가 컴파일 단계가 필요합니다. 여기서 우리는 Babel 과 Webpack 으로 컴파일합니다.
Webpack.config.js 파일을 열고 babel loader 를 추가합니다.
로더: [
{테스트:/\. Js$/, loader: 'babel', exclude: /node_modules/}
] 을 참조하십시오
을 (를) 만들거나 수정합니다. Babelrc 파일 및 플러그인 babel-plugin-transform-vue-jsx 를 추가합니다.
{
사전 설정: ["es 2015"],
플러그인: ["transform-vue-jsx"]
}
이제 웹 팩을 실행하면 코드의 JSX 가 표준 JavaScript 코드로 올바르게 컴파일됩니다.