{"id":557,"date":"2019-05-17T23:45:21","date_gmt":"2019-05-17T14:45:21","guid":{"rendered":"http:\/\/www.typea.info\/blog\/index.php\/2019\/05\/17\/vuex\/"},"modified":"2019-05-17T23:45:21","modified_gmt":"2019-05-17T14:45:21","slug":"vuex","status":"publish","type":"post","link":"https:\/\/www.typea.info\/blog\/index.php\/2019\/05\/17\/vuex\/","title":{"rendered":"Vuex \u3067\u72b6\u614b\u7ba1\u7406"},"content":{"rendered":"<p><a style=\"-ms-word-wrap: break-word;\" href=\"https:\/\/hb.afl.rakuten.co.jp\/hgc\/18771b75.dc1d3239.18771b76.b6aca0c1\/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fzexil%2Fpv-01w%2F&amp;m=http%3A%2F%2Fm.rakuten.co.jp%2Fzexil%2Fi%2F10000000%2F&amp;link_type=pict&amp;ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0Iiwic2l6ZSI6IjEyOHgxMjgiLCJuYW0iOjEsIm5hbXAiOiJyaWdodCIsImNvbSI6MSwiY29tcCI6ImRvd24iLCJwcmljZSI6MSwiYm9yIjoxLCJjb2wiOjEsImJidG4iOjF9\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" title=\"\" style=\"margin: 2px;\" alt=\"\" src=\"https:\/\/hbb.afl.rakuten.co.jp\/hgb\/18771b75.dc1d3239.18771b76.b6aca0c1\/?me_id=1355028&amp;item_id=10000000&amp;m=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fzexil%2Fcabinet%2F06308979%2Fimgrc0087002075.jpg%3F_ex%3D80x80&amp;pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fzexil%2Fcabinet%2F06308979%2Fimgrc0087002075.jpg%3F_ex%3D128x128&amp;s=128x128&amp;t=pict\" border=\"0\"><\/a><\/p>\n<p align=\"right\">\n<ol>\n<li><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/06\/google_app_engine_java_standard_spring_boot\">Google App Engine Java Standard + Spring Boot \u74b0\u5883\u69cb\u7bc9<\/a>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/06\/google_app_engine_java_standard_spring_boot_thymeleaf\">Spring Boot\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3 Thymeleaf\u3092\u9069\u7528<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/06\/google_app_engine_java_spring_bootvuejs\">Spring Boot\u306bVue.js\u3092\u5229\u7528\u3059\u308b<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/20\/google_app_engine_java_spring_bootvuetifyajax\">Spring Boot\u306bVuetify\u5c0e\u5165\u304b\u3089\u30af\u30ed\u30b9\u30c9\u30e1\u30a4\u30f3Ajax\u901a\u4fe1<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/24\/google_app_engine_java_spring_bootvuetify_gae\">Spring Boot+Vuetify GAE\u3078\u30c7\u30d7\u30ed\u30a4\u3001\u52d5\u4f5c\u78ba\u8a8d<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/24\/visual_studio2019_xamarinformsios\">Xamarin.Forms\u30a2\u30d7\u30ea\u3092iOS\u7528\u306b\u30d3\u30eb\u30c9<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/28\/xamarinforms_http\">Xamarin.Forms \u30dd\u30c3\u30d7\u30a2\u30c3\u30d7\u306e\u8868\u793a\u3068 Http\u901a\u4fe1<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/29\/google_app_engine_java_spring_bootvuetify_json\">Spring Boot+Vuetify \u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9\u3068JSON\u3067\u7d50\u679c\u3092\u8fd4\u3059<\/a><\/p>\n<li>\n<p>Google <a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/04\/30\/google_app_enginejavaspring_bootvuetifygoogle_cloud_vision_apiocr\">Google Cloud Vision \u3067OCR\u3002Vuetify\u304b\u3089SpringBoot\u7d4c\u7531\u3067\u547c\u3073\u51fa\u3057<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/05\/01\/xamarinforms\">Xamarin \u30d5\u30a1\u30a4\u30eb\u9078\u629e<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/05\/01\/xamarinforms_multipartpost\">Xamarin \u30d5\u30a1\u30a4\u30eb\u306e\u30a2\u30c3\u30d7\u30ed\u30fc\u30c9<\/a><\/p>\n<li>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/05\/01\/vuetify_vue_router\">Vue Router \u3092\u5c0e\u5165\u3057\u753b\u9762\u9077\u79fb<\/a><\/p>\n<\/li>\n<li>\n<p><a href=\"http:\/\/typea.info\/blg\/glob\/\">Firebase\u3067\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd<\/a><\/p>\n<\/li>\n<\/ol>\n<h2>1.Vuex<\/h2>\n<p>Firebase \u3092\u4f7f\u7528\u3057\u3066\u3001\u30ed\u30b0\u30a4\u30f3\u6a5f\u80fd\u3092\u8ffd\u52a0\u3067\u304d\u305f\u3002<\/p>\n<p>\u3064\u304e\u306f\u3001\u30b3\u30f3\u30dd\u30fc\u30cd\u30f3\u30c8\u9593\u3067\u3001\u30c7\u30fc\u30bf\u306e\u3084\u308a\u53d6\u308a\u3092\u884c\u3044\u305f\u3044\u3002<\/p>\n<p><a href=\"https:\/\/jp.vuejs.org\/v2\/guide\/state-management.html\">\u72b6\u614b\u7ba1\u7406\u3092\u884c\u3046\u624b\u6cd5\u306e\u8a18\u8ff0<\/a>\u304c\u3042\u308b\u304c\u3001Flux\u30e9\u30a4\u30af\u306a\u516c\u5f0f\u5b9f\u88c5\u3068\u3044\u3046\u3053\u3068\u3067\u3001<a href=\"https:\/\/vuex.vuejs.org\/ja\/\">Vuex<\/a> \u3092\u7d20\u76f4\u306b\u4f7f\u7528\u3059\u308b\u3002<\/p>\n<p><a title=\"https:\/\/vuex.vuejs.org\/ja\/\" href=\"https:\/\/vuex.vuejs.org\/ja\/\">https:\/\/vuex.vuejs.org\/ja\/<\/a><\/p>\n<p><a href=\"https:\/\/www.vuemastery.com\/courses\/mastering-vuex\/intro-to-vuex\/\">\u52d5\u753b\u30c1\u30e5\u30fc\u30c8\u30ea\u30a2\u30eb<\/a><\/p>\n<h3>1.1 \u30a4\u30f3\u30b9\u30c8\u30fc\u30eb<\/h3>\n<p>npm install vuex &#8211;save<\/p>\n<h2>2.\u5b9f\u88c5<\/h2>\n<h3>2.1 main.js<\/h3>\n<ul>\n<li>Vue.user(Vuex) \u3067\u4f7f\u7528\u6e96\u5099<\/li>\n<li>Vuex.Store \u3067\u30b9\u30c8\u30a2\u3092\u4f5c\u6210<\/li>\n<li>state \u306b\u3001firebase \u306e\u30ed\u30b0\u30a4\u30f3\u30e6\u30fc\u30b6\u30fc\u60c5\u5831\u3092\u683c\u7d0d<\/li>\n<li>muattions \u3067\u3001state\u306b\u8a2d\u5b9a\u3057\u305f user\u60c5\u5831\u3092\u64cd\u4f5c\u3059\u308b\u30e1\u30bd\u30c3\u30c9\u3092\u516c\u958b<\/li>\n<li>firebase \u306e\u30e6\u30fc\u30b6\u30fc\u304c\u53d6\u5f97\u51fa\u6765\u305f\u3089\u3001store.commit \u306b\u3066\u3001state\u306b\u30e6\u30fc\u30b6\u30fc\u3092\u683c\u7d0d\u3059\u308b<\/li>\n<li>new Vue() \u5185\u306b\u3001store\u3092\u8a2d\u5b9a\u3059\u308b\u3053\u3068\u3067\u3001\u30b0\u30ed\u30fc\u30d0\u30eb\u306bstore\u3092\u53c2\u7167\u3067\u304d\u308b\u3088\u3046\u306b<\/li>\n<\/ul>\n<p><pre class=\"prettyprint linenums\">import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\nimport '@\/plugins\/vuetify'\r\nimport firebase from '@\/plugins\/firebase'\r\nimport 'firebase\/auth'\r\n\r\nimport { MUTATION_LOGIN_USER } from '@\/consts'\r\n\r\nVue.use(Vuex)\r\n\r\nconst store = new Vuex.Store({\r\n  state: {\r\n    user:null\r\n  },\r\n  mutations: {\r\n    user(state, user) {\r\n      state.user = user;\r\n    }\r\n  }\r\n})\r\n\r\nfirebase.auth().onAuthStateChanged(user =&gt; {\r\n  if (user) {\r\n    store.commit(MUTATION_LOGIN_USER, user);\r\n  } \r\n})\r\n\r\nnew Vue({\r\n  render: h =&gt; h(App),\r\n  store,\r\n}).$mount('#app')\r\n<\/pre>\n<h3>2.2 const.js<\/h3>\n<p>\u30df\u30e5\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u4ecb\u3057\u3066\u3001state\u3092\u64cd\u4f5c\u3059\u308b\u304c\u3001\u30df\u30e5\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u3092\u4ecb\u3057\u305f\u64cd\u4f5c\u3092\u30c8\u30e9\u30c3\u30af\u3059\u308b\u305f\u3081\u306b\u30df\u30e5\u30fc\u30c6\u30fc\u30b7\u30e7\u30f3\u306e\u540d\u79f0\u3092\u5916\u3060\u3057<\/p>\n<p><pre class=\"prettyprint linenums\">export const MUTATION_LOGIN_USER = \"user\";<\/pre>\n<h3>2.3 App.vue<\/h3>\n<ul>\n<li>computed \u306e userName \u3067\u3001Vuex\u306estore\u304b\u3089\u3001firebase\u306e\u30ed\u30b0\u30a4\u30f3\u30e6\u30fc\u30b6\u3092\u53d6\u5f97\u3059\u308b<\/li>\n<li>{{userName}} \u3067\u4e0a\u8a18\u306b\u30d0\u30a4\u30f3\u30c9\u3002\u30ed\u30b0\u30a4\u30f3\u30e6\u30fc\u30b6\u30fc\u306e\u8868\u793a\u540d\u3092\u30c4\u30fc\u30eb\u30d0\u30fc\u306b\u8868\u793a\u3059\u308b<\/li>\n<\/ul>\n<pre class=\"prettyprint linenums\">&lt;template&gt;\r\n  &lt;v-app&gt;\r\n    &lt;v-navigation-drawer fixed clipped app v-model=\"navBar\"&gt;\r\n      &lt;v-list dense class=\"pt-0\"&gt;\r\n        &lt;router-link to=\"\/login\"&gt;\r\n          &lt;v-list-tile&gt;\r\n            &lt;v-list-tile-action&gt;\r\n              &lt;v-avatar v-if=\"photoUrl\" size=\"28px\"&gt;\r\n                &lt;img :src=\"photoUrl\"&gt;\r\n              &lt;\/v-avatar&gt;\r\n              &lt;v-icon v-else&gt;account_box&lt;\/v-icon&gt;\r\n            &lt;\/v-list-tile-action&gt;\r\n            &lt;v-list-tile-content&gt;{{userName}}&lt;\/v-list-tile-content&gt;\r\n          &lt;\/v-list-tile&gt;\r\n        &lt;\/router-link&gt;\r\n        &lt;router-link to=\"\/\"&gt;\r\n          &lt;v-list-tile&gt;\r\n            &lt;v-list-tile-action&gt;\r\n              &lt;v-icon&gt;home&lt;\/v-icon&gt;\r\n            &lt;\/v-list-tile-action&gt;\r\n            &lt;v-list-tile-content&gt;HOME&lt;\/v-list-tile-content&gt;\r\n          &lt;\/v-list-tile&gt;\r\n        &lt;\/router-link&gt;\r\n        &lt;router-link to=\"\/entry\"&gt;\r\n          &lt;v-list-tile&gt;\r\n            &lt;v-list-tile-action&gt;\r\n              &lt;v-icon&gt;edit&lt;\/v-icon&gt;\r\n            &lt;\/v-list-tile-action&gt;\r\n            &lt;v-list-tile-content&gt;ENTRY&lt;\/v-list-tile-content&gt;\r\n          &lt;\/v-list-tile&gt;\r\n        &lt;\/router-link&gt;\r\n        &lt;router-link to=\"\/about\"&gt;\r\n          &lt;v-list-tile&gt;\r\n            &lt;v-list-tile-action&gt;\r\n              &lt;v-icon&gt;settings&lt;\/v-icon&gt;\r\n            &lt;\/v-list-tile-action&gt;\r\n            &lt;v-list-tile-content&gt;ABOUT&lt;\/v-list-tile-content&gt;\r\n          &lt;\/v-list-tile&gt;\r\n        &lt;\/router-link&gt;\r\n      &lt;\/v-list&gt;    \r\n    &lt;\/v-navigation-drawer&gt;\r\n    &lt;v-toolbar clipped-left fixed app&gt;\r\n      &lt;v-toolbar-side-icon @click.stop=\"navBar = !navBar\"&gt;&lt;\/v-toolbar-side-icon&gt;\r\n      &lt;v-toolbar-title&gt;FavoPhrase&lt;\/v-toolbar-title&gt;\r\n      &lt;v-spacer&gt;&lt;\/v-spacer&gt;\r\n      &lt;v-toolbar-items class=\"hidden-sm-and-down\"&gt;\r\n        &lt;v-btn flat to=\"\/\"&gt;Home&lt;\/v-btn&gt;\r\n        &lt;v-btn flat to=\"\/entry\"&gt;Entry&lt;\/v-btn&gt;\r\n        &lt;v-btn flat to=\"\/about\"&gt;About&lt;\/v-btn&gt;\r\n        &lt;v-btn flat to=\"\/login\"&gt;\r\n           &lt;v-avatar v-if=\"photoUrl\" size=\"32px\" class=\"pa-4\"&gt;\r\n              &lt;img :src=\"photoUrl\"&gt;\r\n           &lt;\/v-avatar&gt;\r\n          {{userName}}\r\n        &lt;\/v-btn&gt;\r\n      &lt;\/v-toolbar-items&gt;\r\n    &lt;\/v-toolbar&gt;\r\n    &lt;v-content&gt;\r\n      &lt;v-container fluid fill-height&gt;\r\n        &lt;v-fade-transition mode=\"out-in\"&gt;\r\n          &lt;router-view&gt;&lt;\/router-view&gt;\r\n        &lt;\/v-fade-transition&gt;\r\n      &lt;\/v-container&gt;\r\n    &lt;\/v-content&gt;\r\n  &lt;\/v-app&gt;\r\n&lt;\/template&gt;\r\n\r\n&lt;script&gt;\r\n  import firebase from '@\/plugins\/firebase'\r\n\r\n  export default {\r\n    name: 'App',\r\n    data() {\r\n      return {\r\n        navBar: null,\r\n      }\r\n    },\r\n    computed: {\r\n      userName() {\r\n        var user = this.$store.state.user;\r\n        if (user != null) {\r\n          if (user.displayName) {\r\n            return user.displayName;\r\n          }\r\n          if (user.email) { \r\n            return user.email;\r\n          }\r\n        }\r\n        return \"LOG IN\";\r\n      },\r\n      photoUrl() {\r\n        var user = this.$store.state.user;\r\n        return (user == null)?null:user.photoURL;\r\n      }\r\n    },\r\n    created() {\r\n    },\r\n    mounted() {\r\n    }\r\n  }\r\n&lt;\/script&gt;\r\n&lt;style&gt;\r\n  a {\r\n    text-decoration: none;\r\n  }\r\n&lt;\/style&gt;<\/pre>\n<p><a href=\"https:\/\/www.typea.info\/blog\/index.php\/2017\/08\/17\/react_react_router_redux-saga\">Redux\u3088\u308a\u4f7f\u3044\u3084\u3059\u305d\u3046<\/a><\/p>\n<h2>3.\u5b9f\u884c<\/h2>\n<h3>3.1 \u30ed\u30b0\u30a4\u30f3\u3057\u3066\u3044\u306a\u3044\u72b6\u614b\u304b\u3089<\/h3>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/login.png\"><img loading=\"lazy\" decoding=\"async\" width=\"378\" height=\"336\" title=\"login\" style=\"display: inline; background-image: none;\" alt=\"login\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/login_thumb.png\" border=\"0\"><\/a><\/p>\n<p>3.2 <a href=\"https:\/\/www.typea.info\/blog\/index.php\/2019\/05\/07\/vuetify_firebase_ui\">Firebase \u30ed\u30b0\u30a4\u30f3UI<\/a>\u304b\u3089\u3001\u30ed\u30b0\u30a4\u30f3<\/p>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/firebaseui_login.png\"><img loading=\"lazy\" decoding=\"async\" width=\"265\" height=\"238\" title=\"firebaseui_login\" style=\"display: inline; background-image: none;\" alt=\"firebaseui_login\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/firebaseui_login_thumb.png\" border=\"0\"><\/a><\/p>\n<h3>3.3 \u30ed\u30b0\u30a4\u30f3\u304c\u6210\u529f\u3057\u8868\u793a\u540d\u3068\u30a2\u30a4\u30b3\u30f3\u304c\u8868\u793a\u3055\u308c\u305f OK<\/h3>\n<p><a href=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/avater.png\"><img loading=\"lazy\" decoding=\"async\" width=\"429\" height=\"420\" title=\"avater\" style=\"display: inline; background-image: none;\" alt=\"avater\" src=\"https:\/\/www.typea.info\/blog\/wp-content\/uploads\/image\/Vuex_6ED\/avater_thumb.png\" border=\"0\"><\/a><\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<tbody>\n<tr>\n<td>\n<div style=\"margin: 0px; padding: 5px; border-radius: 0.75rem; border: 1px solid rgb(149, 165, 166); border-image: none; width: 280px; text-align: center; overflow: hidden; background-color: rgb(255, 255, 255);\">\n<table>\n<tbody>\n<tr>\n<td style=\"width: 128px;\"><a style=\"-ms-word-wrap: break-word;\" href=\"https:\/\/hb.afl.rakuten.co.jp\/hgc\/18771c62.6342a192.18771c63.0ea905c4\/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fr-kojima%2F2425086%2F&amp;m=http%3A%2F%2Fm.rakuten.co.jp%2Fr-kojima%2Fi%2F10451096%2F&amp;link_type=picttext&amp;ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIxMjh4MTI4IiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ%3D%3D\" target=\"_blank\" rel=\"nofollow noopener noreferrer\"><img decoding=\"async\" title=\"\" style=\"margin: 2px;\" alt=\"\" src=\"https:\/\/hbb.afl.rakuten.co.jp\/hgb\/18771c62.6342a192.18771c63.0ea905c4\/?me_id=1270903&amp;item_id=10451096&amp;m=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fr-kojima%2Fcabinet%2F227%2F2425086_01l.jpg%3F_ex%3D80x80&amp;pc=https%3A%2F%2Fthumbnail.image.rakuten.co.jp%2F%400_mall%2Fr-kojima%2Fcabinet%2F227%2F2425086_01l.jpg%3F_ex%3D128x128&amp;s=128x128&amp;t=picttext\" border=\"0\"><\/a><\/td>\n<td style=\"width: 136px; vertical-align: top;\">\n<p style=\"margin: 0px; padding: 2px 6px; text-align: left; line-height: 1.4em; font-size: 12px; -ms-word-wrap: break-word;\"><a style=\"-ms-word-wrap: break-word;\" href=\"https:\/\/hb.afl.rakuten.co.jp\/hgc\/18771c62.6342a192.18771c63.0ea905c4\/?pc=https%3A%2F%2Fitem.rakuten.co.jp%2Fr-kojima%2F2425086%2F&amp;m=http%3A%2F%2Fm.rakuten.co.jp%2Fr-kojima%2Fi%2F10451096%2F&amp;link_type=picttext&amp;ut=eyJwYWdlIjoiaXRlbSIsInR5cGUiOiJwaWN0dGV4dCIsInNpemUiOiIxMjh4MTI4IiwibmFtIjoxLCJuYW1wIjoicmlnaHQiLCJjb20iOjEsImNvbXAiOiJkb3duIiwicHJpY2UiOjAsImJvciI6MSwiY29sIjoxLCJiYnRuIjoxfQ%3D%3D\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">FANCL\uff08\u30d5\u30a1\u30f3\u30b1\u30eb\uff09\u3048\u3093\u304d\u3093\uff0830\u65e5\u5206\uff09 \u30d5\u30a1\u30f3\u30b1\u30eb\u30a8\u30f3\u30ad\u30f330\u30cb\u30c1<\/a><\/p>\n<\/td>\n<tr><\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<p><\/p>\n<p style=\"margin: 5px; color: rgb(0, 0, 0); line-height: 1.4em; font-size: 12px; -ms-word-wrap: break-word;\">\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n","protected":false},"excerpt":{"rendered":"<p>Google App Engine Java Standard + Spring Boot \u74b0\u5883\u69cb\u7bc9 Spring Boot\u306e\u30c6\u30f3\u30d7\u30ec\u30fc\u30c8\u30a8\u30f3\u30b8\u30f3 Thymeleaf\u3092\u9069\u7528 Spring Boot\u306bVue.js\u3092\u5229\u7528\u3059\u308b [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"sns_share_botton_hide":"","vkExUnit_sns_title":"","_vk_print_noindex":"","sitemap_hide":"","_veu_custom_css":"","veu_display_promotion_alert":"","vkexunit_cta_each_option":"","footnotes":""},"categories":[104,107],"tags":[],"class_list":["post-557","post","type-post","status-publish","format-standard","hentry","category-firebase","category-vue-js"],"veu_head_title_object":{"title":"","add_site_title":""},"_links":{"self":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/557","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/comments?post=557"}],"version-history":[{"count":0,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/posts\/557\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/media?parent=557"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/categories?post=557"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.typea.info\/blog\/index.php\/wp-json\/wp\/v2\/tags?post=557"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}