将Vue路由器与#include <stdio.h>
int main(void) {
char array[256];
scanf("%s", array);
printf("%s", array);
return 0;
}
等路由一起使用时,您必须将观察者添加到react for parameter changes。这导致在URL中具有参数的所有视图中有些烦人的重复代码。
这可能类似于以下示例:
/foo/:val
还有其他方法可以克服这个问题吗? export default {
// [...]
created() {
doSomething.call(this);
},
watch: {
'$route' () {
doSomething.call(this);
}
},
}
function doSomething() {
// e.g. request API, assign view properties, ...
}
和created
更改的处理程序是否可以合并?是否可以禁用组件的重用,以便根本不需要观察者?我正在使用Vue 2,但这对Vue 1来说也许很有趣。
答案 0 :(得分:23)
由于GitHub issue而我刚刚找到的一个可能的答案如下:
可以使用也用于$( window ).on( 'resize', function( event ) {
var windowSize = $( window ).width();
if ( windowSize < 1000 ) {
if ( $( '.site-header .search-form' ).hasClass( 'search-form--active' ) ) {
$( '.site-header .search-form' ).removeClass( 'search-form--active' );
} else if ( $( '.site-header .search-trigger' ).hasClass( 'search-form--active' ) ) {
$( '.site-header .search-trigger' ).removeClass( 'search-form--active' );
}
$( '.search-trigger' ).click( function() {
$( '.search-trigger' ).toggleClass( 'search-overlay.show' );
} );
}
} );
的{{3}}让Vue跟踪视图中的更改。为此,您必须将属性添加到v-for
元素:
router-view
将其添加到视图后,您无需再观看<router-view :key="$route.fullPath"></router-view>
。相反,Vue.js将创建一个全新的组件实例,并调用$route
回调。
然而,这是一个全有或全无的解决方案。它似乎在我正在开发的小应用程序上运行良好。但它可能会影响另一个应用程序的性能。如果您确实只想禁用某些路线的视图重用,可以查看设置created
的值key
attribute。但我真的不喜欢这种方法。