Quantcast
Channel: いつも隣にITのお仕事
Viewing all articles
Browse latest Browse all 2076

【GAS&Vue.js】v-bindディレクティブを使ってデータバインディングをしてみよう

$
0
0
binding

photo credit: Domiriel Spiral Bound via photopin (license)

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

GASとVue.jsを使ってWebアプリケーションを作成する方法をシリーズでお伝えしています。

前回の記事はコチラ。

GASにVue.jsを導入する方法とその動作確認、そしてVue.jsの超基本を解説
初心者向けにGASとVue.jsによるWebアプリケーションの作り方についてお伝えしています。今回は、GASにVue.jsを導入する方法とその動作確認、そしてVue.jsの超基本を解説していきます。

GASのプロジェクトにVue.jsを導入して、Mustache構文を使ったシンプルなテキストのデータバインディングについて確認をしました。

今回は、href属性などの属性のデータバインディングをするv-bindディレクティブの使い方です。

そもそもディレクティブとは何か、という点も解説します。

では、行ってみましょう!

今回のお題:記事一覧ページを作りたい

今回は、以下のような記事一覧ページを作成することを目標にしたいと思います。

GASとVue.jsで作成したいWebページ
記事一覧のようなものですね。各記事をクリックすると、それぞれのページにリンクするものとします。

GASで実現しますので、doGet関数を含むサーバー側のスクリプトを以下のようにまず用意しておきましょう。

function doGet() {
  var htmlOutput = HtmlService.createTemplateFromFile("index").evaluate();
  htmlOutput
    .setTitle('GAS+Vue.js')
    .addMetaTag('viewport', 'width=device-width, initial-scale=1')
  return htmlOutput;
}

表示するページのもととなるindex.htmlですが、ベタっとHTMLで実現しようとすると、以下のようなコードになります。


  
    
    != HtmlService.createHtmlOutputFromFile('css').getContent(); ?>
  
  
    

連載目次:GASユーザーのためのVue.js&Webアプリ作成入門

Google Apps ScriptではHTML・CSSを使ってWebページを作成し公開することができます。このシリーズでは、その続きとしてはじめてクライアント側JavaScriptを動かすところからスタートし、人気急上昇中のフレームワークVue.jsを使ってWebアプリケーションを作成する方法をお伝えしていきます。
  1. GASのWebアプリケーションでクライアント側JavaScriptを使うための基礎知識
  2. GASでクライアントJavaScriptを使用する超簡単なプログラム
  3. GASとJavaScriptフレームワークVue.jsを使ってWebアプリを作成するための最初の一歩
  4. GASにVue.jsを導入する方法とその動作確認、そしてVue.jsの超基本を解説
!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?>

このHTMLの解説については、以下のページにありますので、必要に応じてご覧ください。

【GASユーザーのためのHTML入門】アンカーリンクを張るaタグの書き方
GASユーザーのためのはじめてのHTML・CSS入門ということで、簡単なWebページの作成を目指しております。今回は、リンクを貼るアンカーリンクを作るaタグとhref属性の書き方について解説をしますよ。

このHTMLを、Vue.jsを学びながら徐々にスッキリさせていきたいと思いますよ。

テキストデータをデータバインディングする

まず、前回のおさらいも兼ねて、テキストをVueインスタンスのdataオプションに設定して、データバインディングしましょう。

h2タグ、pタグ、liタグ内のテキストを対象にして、以下のようにjs.htmlとindex.htmlを構成してみました。

まずは、このようにデータバインディングしたいテキストをdataオプションに設定します。

プロパティ名はそれっぽいネーミングで。

title1,title2,…は気の早い人は配列を…!とか、v-forを…!とかイライラするかも知れませんが、連載を進める上でスッキリさせますので、今は我慢してください。

さて、このようにjs.htmlを作ると、index.html側では以下のようにできます。


  
    
    != HtmlService.createHtmlOutputFromFile('css').getContent(); ?>
  
  
    

{{ tocTitle }}

{{ tocDescription }}
  1. {{ title1 }}
  2. {{ title2 }}
  3. {{ title3 }}
  4. {{ title4 }}
!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?>

どばーっとテキストを書き込んでいたところは、それぞれのプロパティ名について、二重波括弧のMustache構文で参照することができます。

こっちはだいぶスッキリしましたね。

表示すると以下のようになります。

GASとVue.jsを使ってテキストデータをバインディング

属性データをv-bindディレクティブでバインディングする

さて、テキストデータであれば先ほどのように、dataオプションに設定したプロパティの値を、Mustache構文で参照することができるのですが、属性はどうしましょうか?

今回は、リンクを張る必要があるので、aタグのhref属性を指定しなければいけません。

その問題は、「v-bindディレクティブ」を使うことでサッと解決できます。

ディレクティブとは

ディレクティブというのは「v-」ではじまるVue.js専用の属性のことで、属性ですからHTMLのいずれかのタグ要素の属性として指定をします。

Vue.jsでは数々の便利なディレクティブが用意されています。

なお、テキストのバインディングをしたい場合、これまでお世話になってきたMustache構文の代わりに、v-textディレクティブを使って以下のように記述することができます。

<タグ v-text=“プロパティ”></タグ>

これは以下と同義です。

<タグ>{{ プロパティ }}</タグ>

まあ、Mustacheさんのほうがいいですよね。

属性のバインディングをするv-bindディレクティブ

お伝えした通り、属性にデータバインディングをするには、v-bindディレクティブを使用します。

v-bindディレクティブを使う場合は、HTMLのタグを以下のように記述します。

<タグ v-bind:属性=“プロパティ”>~</タグ>

v-bindディレクティブは省略表記も用意されていて、以下のように記述することができます。

<タグ :属性=“プロパティ”>~</タグ>

属性のデータバインディングをしたWebページ

では、以上を踏まえてjs.htmlとindex.htmlを修正してみましょう。

まず、js.htmlのほうです。

属性に設定する値もVueインスタンスのdataオプションに、同様に追加していきます。

url1,url2,…のところを配列…!とかv-for…!とかイライラしている方、ごめんなさい。大丈夫です。連載のできるだけ早い段階で解決しますので。

index.htmlのほうはコチラです。


  
    
    != HtmlService.createHtmlOutputFromFile('css').getContent(); ?>
  
  
    

{{ tocTitle }}

{{ tocDescription }}
  1. {{ title1 }}
  2. {{ title2 }}
  3. {{ title3 }}
  4. {{ title4 }}
!= HtmlService.createHtmlOutputFromFile('js').getContent(); ?>

こっちは、引き続きわりとスッキリですね。

ただ、もっとスッキリできます。

表示してみましょう。

GASとVue.jsでhref属性にデータバインディング

無事にリンクも張れていますね。

まとめ

以上、GASとVue.jsでWebアプリケーションを作るシリーズ、今回はv-bindディレクティブを使って属性のデータバインディングをする方法をお伝えしました。

ディレクティブとは何か、またv-bindディレクティブを使ってVueインスタンスのdataオプションのデータをhref属性などの属性にバインディングする方法がわかったと思います。

次回はv-forディレクティブを使って、「繰り返し処理」を実現していきますよ。

どうぞお楽しみに!

連載目次:GASユーザーのためのVue.js&Webアプリ作成入門

Google Apps ScriptではHTML・CSSを使ってWebページを作成し公開することができます。このシリーズでは、その続きとしてはじめてクライアント側JavaScriptを動かすところからスタートし、人気急上昇中のフレームワークVue.jsを使ってWebアプリケーションを作成する方法をお伝えしていきます。
  1. GASのWebアプリケーションでクライアント側JavaScriptを使うための基礎知識
  2. GASでクライアントJavaScriptを使用する超簡単なプログラム
  3. GASとJavaScriptフレームワークVue.jsを使ってWebアプリを作成するための最初の一歩
  4. GASにVue.jsを導入する方法とその動作確認、そしてVue.jsの超基本を解説
  5. 【GAS&Vue.js】v-bindディレクティブを使ってデータバインディングをしてみよう

Viewing all articles
Browse latest Browse all 2076

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>