Vue for Nativescript v 1.0.0リリースされたので 環境つくる

Vue for Nativescript v1.0.0 がリリースされたらしいので、ちょっと触ってみる
Vue for Nativescriptリリース

環境構築はとても簡単
※ npmは入ってること

ツールをインストール

tns コマンドをインストール

$ npm install -g tns

cocoapodsをインストール

nativescriptをiOS用にビルドするにはcocoapodsが必要なので、入ってなかったらインストールする

$ sudo gem install cocoapods

nativescriptを起動する

サンプルアプリをテンプレートから作る

$ tns create hello-ns-vue --template nativescript-vue-template

$ cd hello-ns-vue

起動する

$ tns run ios

シミュレータが起動し、アプリがインストールされてアプリも起動する。

テキスト修正してみる

中身はapp.jsをそのままなので、テキスト修正くらいはしてみる

app.js

const Vue = require('nativescript-vue');

new Vue({
    template: `
        <Page class="page">
            <ActionBar class="action-bar" title="NativeScript-Vue"></ActionBar>
            <StackLayout class="p-20">
                <Label textWrap="true" class="h2" :text="headingText"></Label>
                <Image height="200" class="m-y-10" src="~/images/NativeScript-Vue.png"></Image>
                <Label textWrap="true" class="body" :text="bodyText"></Label>
            </StackLayout>
        </Page>
    `,
    data: {
        headingText: '日本語は表示できるか?',
        bodyText: 'ちょっとフォントがよくない?'
    }
}).$start();

テキスト修正して、保存すると自動でビルドされてアプリ再起動されて反映される。
これはとても便利。
テキスト修正レベルはいいけど、シンタックスエラー時にもビルド -> アプリ再起動をしてしまうので、
syntaxエラーとかビルド成功時だけ、アプリ再起動してほしいかなと。(なんか設定あるんですかね?)

タブを表示してみる

templateの中にapp-with-tab-view.jsがあるので、中身をapp.jsに書き換えて保存するとアプリの中がタブになる

const Vue = require('nativescript-vue/dist/index')

let app = new Vue({
    data: {
        selectedTab: 0,
        tabs: [
            {title: 'First Tab', text: 'im the first tab'},
            {title: 'Second Tab', text: 'im the second tab'},
            {title: 'Third Tab', text: 'im the third tab'},
        ]
    },

    template: `
        <page>
            <stack-layout>
                <button @tap="tabs.push({title: 'added', text: 'added tab'})">Click me!</button>
                <tab-view :selectedIndex="selectedTab">
                    <tab-view-item  v-for="(tab, i) in tabs" key="i" :title="tab.title">
                        <label>{{ tab.text }}</label>
                    </tab-view-item>
                </tab-view>
            </stack-layout>
        </page>
    `,
})

app.$start()

この記述で簡単にできるので、ちょっと触ってみようかと思う。

このエントリーをはてなブックマークに追加

Leave a Reply

Your email address will not be published. Required fields are marked *