Open6

職務経歴書PJ

SekkenSekken

日付を扱うライブラリ選定

背景

  • これまでMoment.js一強だったようだがMoment.js公式が使わないようにアナウンスしている
  • アナウンスの中で紹介されていた候補が以下
    • Luxon
    • Day.js
    • date-fns
    • js-Joda

トレンド

Day.js

  • オブジェクト指向っぽい感じ
  • Moment.jsに書き味が似てるらしい(自分は使ったことなかったのでそこまでプラスにはならず)
  • https://github.com/iamkun/dayjs/releases
    • 月1リリースされていて開発が活発な感じ

date-fns

結論

  • Day.jsで進める
SekkenSekken

Vuexによるデータ管理

Nuxtにおける使い方

  • https://nuxtjs.org/ja/docs/directory-structure/store
  • storeディレクトリが作成されていて、(ほぼ)index.tsを作成して書き始めればよいそう
  • 巨大なindexファイルになることを避けるためにモジュール化がおすすめされている

注意点

  • TBD
SekkenSekken

バックエンド

  • NestJS
  • 理由
    • TypeScriptでフロントと共通化
    • Spring FrameworkとDIやデコレータの機能が似ているため馴染みがある
SekkenSekken

メモ

  • 開発環境のWebサーバーをコンテナ上で動かすパターンとホストOS上で動かすパターンがあるけどプロコン整理したい
SekkenSekken

Nuxt vue-routerでpushが動作せずにはまった

そもそもエラーを吐かないのでこうする

const result = router.push({ path: '/'},
              () => {},
              // 失敗時
              (err) => {
                console.log(err)
              }
            )

と以下のエラーが吐かれている

Error: Redirected when going from "/login" to "/" via a navigation guard.
    at createRouterError (vue-router.esm.js?8c4f:2065:1)
    at createNavigationRedirectedError (vue-router.esm.js?8c4f:2024:1)
    at eval (vue-router.esm.js?8c4f:2376:1)
    at Vue._next (client.js?06a0:299:1)
    at app.context.redirect (utils.js?ebed:235:1)
    at Auth.redirect (runtime.mjs?edb1:596:1)
    at authMiddleware (runtime.mjs?edb1:654:1)
    at promisify (utils.js?ebed:314:1)
    at middlewareSeries (utils.js?ebed:291:1)
    at Vue.callMiddleware (client.js?06a0:264:1)
router: {
// middleware配下に配置した認証機構はauthenticated.tsだったので、正しくはmiddleware: ['authenticated']
    middleware: ['auth'] 
  },
  • メモ
    • nuxtではなくvue-routerの機能であるnavigation guardがエラー内容に出てくるが、nuxtdはそれが隠蔽されてmiddlewareという仕様になっていると思われるためわかりずらかった