質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

Q&A

解決済

1回答

1293閲覧

vue-routerのbeforeEachを書く場所

kamome283

総合スコア52

Vue.js

Vue.jsは、Webアプリケーションのインターフェースを構築するためのオープンソースJavaScriptフレームワークです。

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

0グッド

0クリップ

投稿2018/07/13 10:37

vue-routerにてbeforeEachを使う場合、以下のように使われるかと思います。

JavaScript

1const router = new Router({ 2 routes: [...] 3}) 4 5router.beforeEach((to, from, next) => { 6 ... 7}) 8 9export default router

これできちんと動いているので問題はないのです。
しかし、私は初めvue-cliからできるひな形(以下のbeforeEachの部分を書いていない状態)にbeforeEachメソッドを追加すればいけるやろ、と思って以下のようにやってみましたがうまくいきませんでした。

JavaScript

1export default new Router({ 2 routes: [...], 3 beforeEach (to, from, next) => { 4 ... 5 } 6})

VueだけでなくJavaScriptに関しても初心者のため、なぜ下がうまく動かないのかがよくわからないのです。
ご教授いただけませんか。よろしくお願いいたします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

私も以前同じことを考えてやってみたことがあります。

https://github.com/vuejs/vue-router/blob/dev/src/index.js#L35
vue-router のコンストラクタは RouterOptions という型で定義されたデータを受け取ります。

そして RouterOptions の型の定義はこのようになっています。
https://github.com/vuejs/vue-router/blob/dev/types/router.d.ts#L49-L63

beforeEachRouterOptions の定義に存在しないのでvue-routerのコンストラクタは何もしないというわけです。

投稿2018/07/13 14:24

編集2018/07/13 14:37
退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kamome283

2018/07/13 15:24

ソースまで提示して頂きありがとうございます。 おかげさまですっきりとしました。 コンストラクタで定義されていないのなら、使われるはずがないというのは完全に頭から抜け落ちてました。 出来のいいフレームワークやライブラリを使っていると、色々うまく面倒見てくれるために言語の基礎的な部分まで忘れてしまいます????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問