nativescript-vue에 추가할 수 있는 library( plugin )은 몇가지가 있으나 웹 개발 시 highchart를 주로 사용한 덕분에 highchart가 가장 익숙했다.

그러나 nativescript-vue 환경에 highchart를 추가하는 일은 다른 plugin들 처럼 녹록하지 않았다.

먼저 nativescript의 버전을 확인해 보았다.

C:\> ns --version
8.8.2
√ Up to date.

nativescript-vue는 2.9.3 버전인 것을 확인 하였다.

web에 포함시킬 때는 highchart의 javascript를 <script > tag를 이용하여 그냥 포함시킬 수도 있다. 하지만 mobile에서는 plugin으로 앱에 포함시키는 것이 속도 면에서나 플랫폼의 다양성에 맞추어 적절하고 vue framework을 이용한 편의성을 최대한 살리기 위해 app.js에서 초기화하여 tag로 불러 쓸 수 있도록 하였다.

우선 plugin을 설치한다.

C:\Project\sample> ns plugin add @mhtghn/nativescript-highcharts

이 때 주의할 것은 본인이 사용하는 nativescript의 버전이 7.0보다 낮은 경우에는 과거 버전을 사용해야 한다.

C:\Project\sample> ns plugin add  nativescript-ui-highcharts

 

프로젝트의 app.js를 열어 다음 구문들을 추가한다.

import highcharts from ‘@mhtghn/nativescript-highcharts’


Vue.registerElement(
    'Highcharts',
    () => require('@mhtghn/nativescript-highcharts').Highcharts
);  

이제 앱 내에서 Highcharts를 태그로 사용할 수 있다. 초기화를 Vue.use()나 Vue.components() method로는 시도해 보았으나 정상적으로 등록되지 않았다.

<Highcharts  :options=chartOpt height=”300″></Highcharts>

“chartOpt”로 표시된 chart option은 string으로 입력 받으므로 chart의 option이 object인 경우 JSON.stringify()를 사용한다.

computed: {
      chartOpt() {
              return JSON.stringify( this.chartOptions );
      }
},
그리고 chart의 사이즈를 지정하기 위해서는 두 군데서 지정해 주어야 한다. 우선 tag에서 지정한다.
<Highcharts  :options=chartOpt height=”300″></Highcharts>

이 경우 tag로 지정된 Highchart의 화면에서 표시되는 size는 잘 지정되는 것을 볼 수 있으나 chart는 크기는 제대로 초기화되지 않아 chart가 짤리는 현상이 나타난다.

이 경우 chart의 option에 크기를 지정하여 초기화 size를 지정한다.

chartOptions :  {

         chart: {
                    type: 'column',
                    height: 300
         },

By yaplab

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다