狠狠撸

狠狠撸Share a Scribd company logo
アイスタイル特設サイトにおける
Vue.jsの導入事例
Laravel/Vue.js勉強会#8 オールスターズ @KenjiroKubota
Profile. ~ 2015/08 istyle.inc
久保田 賢二朗
● PHP(Laravel/Phalcon)
● JavaScript(Vue.js/Svelte)
● Scala
kenjiro kubota @kubotak_public
テクノロジー本部 R&D 部技術開発部 チーフエンジニア
Laravel JP Conference 2019 副実行委員長 / RoppongiDesignersメンバー
PR.
株式会社アイスタイル
istyle Inc.
インターネットのコスメ情報ポータルサイト
「@cosme(アットコスメ)」
の開発?運営
コスメだけではなくビューティ全般、日本だけではなく世界で"Beauty"
に係る人や企業、個人事業主が活躍できるプラットフォームを作る。
アイスタイルは、「Beauty×IT」の世界ナンバーワンを目指します。
Laravelの話題はありません。
sorry...
@cosme Beauty Day 2018
特設サイトでVue.jsを導入
国内最大級
1,900ブランド
35,000アイテム
20%ポイント還元
1日限りのキャンペーン
全国58局に対して
11/27-12/4まで
CM放送
Why Vue.js
● 弊社での導入実績があった
● VueCLIでの開発環境構築のDXが良かった
● 社内的に横断して使えるVue.jsのコンポーネントライブラリ
があること
要件
● CMによるスパイクアクセスが見込まれる
● ティザーサイトは11/1から公開
19日からは事前予約が可能
(当日商品販売が一部公開され、予約購入
すると当日以降に配送)
● 19日以降はキャンペーンページに表示され
るアイテムが変化
● 12/3-4(当日)は数時間置きにアイテム
が変わる
● レスポンシブなサイトではないのでPC/SP
テンプレートが別れる
Lambda
REST API
S3
EC2 Elasticsearch
Vue.js/static
CloudFront
ということは
静的ファイル?HTMLの殆どに予めページ要素を入れて
おく必要がある。
(目玉商品ページ?著名人のインタビューページ)
そして、日時によって表示させるページ?要素は変わる
なるほど?
日時をトリガーに日時別のディレクトリ
をpublicディレクトリに格納する
(上書き)
配信されるのはpublicディレクトリのみ
/201811191600 /201811191700 /201811201800
時間毎に似たようなデータが重複
開発時にすべてのディレクトリを持つのは大変なので...
<%=EJS%>
パーツのテンプレート化をEJSで行い、gulpで日時ディレクトリ毎に配置されるようにタスク化
苦労の跡
痴耻别.箩蝉は????
検索ページ 商品詳細
ページ
1. URLクエリパラメータから
Lambdaで用意した商品検
索APIをコール
2. 検索一覧を表示
3. ページネーションあり
1. URLクエリパラメータからLambdaで
用意した商品詳細APIをコール
2. カートに入れるボタンなどを生成
コンポーネント単位でインスタンス化
カートに入れる
click
社内カートインAPI
cookie
token
ロジックのあるボタンをVue.jsで楽々コンポーネント化
Desktop SmartPhone
表示(HTML構造)は異なるが出している内容はほぼ同じ -> ロジックを尘颈虫颈苍にして共通化
各デバイス別に書き出し
package.json
※HTMLでは別途vue.runtime.jsを読み込む必要がある
トラブルなく无事终了...
アイスタイル特设サイトにおける痴耻别.箩蝉の导入事例
特设サイトは落ちてないよ!
まとめ
● Laravelの話がなくてすみません
● Vueの話もたいしてなくて更にすみません
● VueCLIでの開発環境構築のDXが高い。ESLint,Prettier,Jestなど
も簡単に導入できて質の高いコンポーネント開発が行えた。
● Vue.jsは大規模なNuxtからWebComponentsのようなパーツ単位
の使い方もできる幅広いFW
おまけ
Vue.jsを利用した箇所はSPAっぽい使い方をしたのでmetaタグ周りの対
処ができなくてOGPの設定ができませんでした。
Lambdaでうまいこと対処できたかもしれません???
thanks:)

More Related Content

アイスタイル特设サイトにおける痴耻别.箩蝉の导入事例