Nuxt.js
https://gyazo.com/520485c5fe5324c3414d5e48953cd86a
Nuxt.js - ユニバーサル Vue.js アプリケーション
Vue.jsアプリケーションを作成するフレームワーク
作成可能アプリ
ユニバーサルアプリケーション
コマンド: nuxt
静的生成アプリケーション
コマンド: nuxt generate
SPA Single Page Application
コマンド: nuxt -spa
Full Static機能
APIの呼び出しのキャッシュ化して、API叩く数減らす?
NuxtのJamstack構成におけるAPIキーの隠蔽方法について
特徴
SSR Server Side Renderingしやすい
nuxt generateコマンドによる静的生成
SPA Single Page Applicationつくりやすい
部品
Vue.js 2
Vue Router
Nuxt.jsでは、自動で調整される
Vuex(ストアオプションを利用している場合に限る)
Vue Server Renderer(mode: 'spa' を利用している場合を除く)
vue-meta
Module Bundlers
webpack vue-loader babel-loader
pages
動的なルーティング
_id
layouts
default.vue
全てのページに適応される
一部のぞく
error.vue
エラーページ作れる
404ページなど
描画
app.html
{{APP}}
layouts/default.vue
<nuxt />
pages/index.vue
pages/about.vue
非同期処理 asynchronous
asyncData(context){}
API: asyncData メソッド - NuxtJS
pagesコンポーネントがロードされると呼び出される
第一引数にcontextオブジェクトを取る
code:asyncData.js
asyncData({params}) {
return axios.get(url)
// httpResponse
.then((res) => {
return {users: res.data}
})
アセット
Static
webpack したくないアセット
プロジェクトのルート URL からアクセス可能
static/favicon.ico → localhost:3000/favicon.ico
.env
dotenv
npm i --save @nuxtjs/dotenv
.envファイル追加
code:nuxt.config.js
modules: [
'@nuxtjs/dotenv'
],
plugin
例
code:firebase.js
import firebase from 'firebase'
const config ={
projectId: process.env.FIREBASE_PROJECT_ID
}
if(!firebase.apps.length){
firebase.initializeApp(config)
}
export default firebase
PWA Progressive Web App
Get Started | ⚡ Nuxt PWA
version3 はバグありbeta
Nuxt.jsのPWAモジュールは何をやっているのか - Speaker Deck
困った
共通cssの導入
公式css プロパティ
@/assets/hoge.css の形で
/../..の形ダメ
code:nuxtconfig.js
css: 'element-ui/lib/theme-chalk/index.css', '@/assets/common.css',
dev startしても動かない
Node.jsのバージョンが古い
code:nvm.sh
nvm list
nvm use 12.6.0
キャッシュ残ってる
プライベートウィンドウで
勉強
Nuxt.jsビギナーズガイド
potetp4dさん Nuxt.jsとFirebaseを組み合わせて爆速でWebアプリケーションを構築する
TODO
何か作りたい
Build a full blown multi-language blog website Nuxt.js
これよさげ
Nuxt.jsを使うときに、SPA・SSR・静的化のどれがいいか迷ったら - Qiita