2017-07-18 10 views
1

私はそうのような、VueのルートがjQueryのを使用してクリックされた後で描画されますオフキャンバスメニューを持っている:ルートにアクセスしたときにjQueryコードを実行する方法は?

$('.order-drawer').show(); 
$('body').toggleClass('order-drawer-open'); 

私のルートは非常に簡単で、次のように表示されます。

<router-link to="/order" exact class="order-drawer-toggler"> 
    <a>Order Now</a> 
</router-link> 

<router-view></router-view> 

さて、http://test.dev/test/#/orderをブラウザで見ると、jQueryの呼び出しが実行されていることを確認するにはどうしたらいいですか?ルートビューの関数を呼び出すにはどうしたらいいですか?

編集:次のように マイルート・ファイルが見えます:

import VueRouter from 'vue-router'; 

let routes = [ 
    { 
     path: '/order', 
     component: require('./views/Order.vue') 
    } 
]; 

export default new VueRouter({ 
    routes 
}); 
+1

どのコンポーネントが/オーダーでレンダリングされますか?そのコンポーネントの 'mounted()'フックで実行しますが、jQueryとVueを混在させることは、Vueが相互作用を駆動させることが非常に優れているため、少し生産的ではないかもしれません。 –

+0

[vuejsライフサイクルフック](https://vuejs.org/v2/api/#Options-Lifecycle-Hooks)を確認してください –

+0

@DavidL私はVueの方が新しく、これとのやりとりを計画していましたが、引き出しが側面から引っ張られたときに、CSSタグを操作してCSSのトランジションを追加します。私はVueを使ってそうする方法が見つけられませんでした。私のルートファイルで質問を更新しました – Chris

答えて

1

あなたのルーティングがあなたの部品を駆動し、そのコンポーネントには、jQueryの行動を駆動できるようにする必要があります。

import VueRouter from 'vue-router'; 

let routes = [ 
    { 
     path: '/order', 
     component: require('./views/Order.vue') 
    } 
]; 

export default new VueRouter({ 
    routes 
}); 

Order.vue

​​

コンポーネントが作成され、装着された場合、それが引出しを示すであろう。何もする必要はありません。 vue-routerがルートにルートすると、コンポーネントが作成されてマウントされ、jQuery関数が呼び出されます。

+0

ありがとう!私が解決策を見たら、これを聞いても恥ずかしい気がする。私はまったく異なる方向を見ていた。もう一度ありがとう! – Chris

+1

@Chrisは恥ずかしいと感じる必要はありません!状態ベースのルーティングは、アプリケーションについての推論の異なる方法であり、考え方の変更を必要とします。お力になれて、嬉しいです! –

関連する問題