フォーム入力バインディングを理解する その9
何年か前に jQuery で作った type tester という簡易的なフォント(関連のスタイリング)のテスターツールを Vue.js で作ってみる。 その9
GitHub Pages: https://yuheijotaki.github.io/type-tester/
GitHub リポジトリ:https://github.com/yuheijotaki/type-tester
methods:
でアロー関数が使えない
せっかくVue CLI 使ってwebpackも入ってES6使えるのだからアロー関数とか使おうと思ってたのですが、methods:
の function に対しては this
の参照が期待通りにならないので使えないとのことでした。。
公式ドキュメント https://jp.vuejs.org/v2/api/index.html#methods
メソッド(例 plus: () => this.a++) を定義するためにアロー関数を使用すべきではないことに注意してください。
App.vue
(抜粋)
// アロー関数を使う(ダメな例) methods: { toggleCss: () => { this.displayCss = !this.displayCss; }, ... // アロー関数を使わない(よい例) methods: { toggleCss: function () { this.displayCss = !this.displayCss; }, ...
vue-head
を使って meta / OGP 設定をする
今回はSPAではないので特に難しいことせずに index.html にmeta / OGP 設定は直書きできるのですが、今後のために動的生成とページごと設定を実現したいので vue-head を使ってみました。
Vue CLIを使っている場合になります。
まずインストール
$ npm install vue-head --save
/src/main.js
... import VueHead from 'vue-head' Vue.use(VueHead) ...
/src/App.vue
... data() { return { metaTitle: 'site title' }, }, head: { title: function () { return { inner: this.metaTitle } }, meta: [ { name: 'description', content: 'My description', id: 'desc' } ] } ...
のようにdataから動的生成する場合は title: function () { return …
のように指定する。
JSで書き換えが行われるので静的HTMLでなく検証ツールでの確認が必要。
他の設定項目は Github のドキュメントが詳しいです。
OGP / Twitter / Schema.org の設定、Google Analytics もできるみたい。 https://qiita.com/buchiya4th/items/dd8f16dfcd296bd247bb
案件で使ったらこれだけで記事書きたいなと思います。
次やること
- localStorage 使ってリロード対策
- 全体スタイリング