본문 바로가기

JavaScript/ ExtJS

ExtJS : 테마변경 / HelloWorld

ExtJS : 테마변경 / HelloWorld

Theme

테마는 app.json에서, 

classicmoderntheme 부분을 각각 수정하면 간단히 테마를 변경할 수 있다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
  "builds": {
        "classic": {
            "toolkit""classic",
            "theme""theme-triton",
            "sass": {
                "generated": {
                    "var""classic/sass/save.scss",
                    "src""classic/sass/save"
                }
            }
        },
        "modern": {
            "toolkit""modern",
            "theme""theme-material",
            "sass": {
                "generated": {
                    "var""modern/sass/save.scss",
                    "src""modern/sass/save"
                }
            }
        }
    },
 
cs

ExtJs (classic) theme 종류

  • theme-classic
  • theme-gray
  • theme-neptune
  • theme-crisp
  • theme-triton (defalut)

Sencha Touch(Modern) theme 종류

  • theme-material (defalut)
  • theme-ios
  • theme-neptune
  • theme-triton

변경 후 sencha app build 명령어를 사용해 새로 빌드해야만 한다.

설정사항 변경은 sencha app watch로 자동적용되지 않기 때문이다.


Modern에서 기본으로 사용되는 material theme :

Dark Mode

Hello World!

app.js 의 모든 코드를 지우고 다음과 같이 입력한다.

1
2
3
Ext.onReady(function(){
  Ext.Msg.alert("title","Hello world!");
});
cs

결과

JavaScript의 못생긴 alert창이 아니라 theme별로 미리 디자인된 alert창이 나온다.


아래처럼 문법상 jQuery와 유사한 면이 있다.

1
2
3
$(document).ready(function(){
  alert("Hello world!");
});
cs

정리

  • ExtJS에 관련된 모든 컴포넌트는 Ext. 가 붙는다.
  • html를 건들 필요가 없이 자바스크립트만으로 화면구성을 할 수 있다. <body>태그 안에는 아무것도 존재할 필요가 없으며 모든 output을 JavaScript로 개발한다.
  • ExtJS의 alert은, 자바스크립트의 alert() 과 다르게 단지 ui일 뿐이다. 자바스크립트는 alert창이 뜨면 사용자가 선택하거나 꺼버릴 때까지 다음 로직으로 넘어가지 않지만, ExtJS의 alert은 그대로 통과해버리므로 따로 함수를 만들어 return을 준다던가 하는 별도의 행위가 필요하다.