Vue.js / JSON から情報を引っ張ってくる その13
【学習メモ】Vue.js のツボとコツがゼッタイにわかる本 その3 のデモをベースにしてポートフォリオサイトを作り直す。
Github Pages: https://yuheijotaki.github.io/vue-study_20190424/
リポジトリ: https://github.com/yuheijotaki/vue-study_20190424
ファイル構成
/src/ └ App.vue └ main.js └ /components/ └ work-header.vue └ work-list.vue └ work.vue
App.vue
ファイルにて axios
を使ってJSON取得、 表示判定は work-list.vue
で行う。
work-header.vue
からチェックボックス状態のプロパティと値を props
して work-list.vue
で表示判定
work.vue
はアイテム1つ単位の表示専用コンポーネント
いじった所
WordPress の REST API で取得できるカテゴリーが
[ 0: { ... category_name: "Front-end ,WordPress" ... }, ... ]
というオブジェクトになるので、
methods: { request: function(){ axios.get( 'https://works.yuheijotaki.com/wp-json/wp/v2/posts?per_page=100' ) .then( response => { this.works = response.data; // JSONデータの取得 let obj = this.works; Object.keys(obj).forEach((key) => { const catName = obj[key].category_name; // この投稿が属するカテゴリー if (catName.includes('Front-end')) { obj[key].isCatFrontEnd = true; } else { obj[key].isCatFrontEnd = false; } ...
のように isCatFrontEnd
のプロパティと true
or false
の値をつけた。
work-list.vue
の computed
でこの処理やったほうがスマートそうですが、できるかよく分からずJSONに書き足す形になっちゃいました。
残り
記述の整理
- ファイルやパーツ命名のリファクタリング
- コンポーネントの分け方も見直しをする
スタイリング
- 見た目整える
- レスポンシブ