Skip to content
This repository was archived by the owner on May 27, 2019. It is now read-only.

Commit a83aaac

Browse files
committed
chore(vue-router): update deps and adjust example
1 parent d9dc30f commit a83aaac

File tree

4 files changed

+850
-503
lines changed

4 files changed

+850
-503
lines changed

examples/vue-router/package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,10 @@
99
"build": "cross-env NODE_ENV=production webpack --progress --hide-modules"
1010
},
1111
"dependencies": {
12+
"qs": "^6.5.0",
1213
"vue": "^2.2.1",
13-
"vue-router": "^2.4.0",
1414
"vue-instantsearch": "*",
15-
"instantsearch-store": "*"
15+
"vue-router": "^2.6.0"
1616
},
1717
"devDependencies": {
1818
"babel-core": "^6.0.0",

examples/vue-router/src/Search.vue

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,16 @@
11
<template>
2-
<ais-index :search-store="searchStore" :query="query">
2+
<ais-index :search-store="searchStore">
3+
34
<ais-input placeholder="Search for a product..."/>
5+
6+
<ais-price-range attribute-name="price"></ais-price-range>
7+
8+
<ais-refinement-list attribute-name="colors"></ais-refinement-list>
9+
10+
<ais-tree-menu :attributes="['category', 'sub_category']">
11+
<h3 slot="header">Browse by</h3>
12+
</ais-tree-menu>
13+
414
<ais-results>
515
<template scope="{ result }">
616
<h2>{{ result.name }}</h2>
@@ -20,22 +30,28 @@ searchStore.indexName = 'ikea';
2030
2131
export default {
2232
props: {
23-
query: {
24-
type: String,
33+
queryParameters: {
34+
type: Object,
2535
default: '',
2636
},
2737
},
38+
created() {
39+
this.searchStore.queryParameters = this.queryParameters;
40+
},
2841
data() {
2942
return {
3043
searchStore,
3144
};
3245
},
3346
watch: {
34-
'searchStore.query'(value) {
47+
'searchStore.queryParameters'(parameters) {
48+
const query = parameters;
49+
delete query.index;
50+
3551
this.$router.push({
36-
name: 'search',
37-
query: { q: value },
38-
});
52+
name: 'search',
53+
query,
54+
});
3955
},
4056
},
4157
};

examples/vue-router/src/main.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,20 +3,30 @@ import VueRouter from 'vue-router';
33
import InstantSearch from 'vue-instantsearch';
44
import App from './App.vue';
55
import Search from './Search.vue';
6+
import qs from 'qs';
67

78
Vue.use(InstantSearch);
89
Vue.use(VueRouter);
910

11+
1012
const router = new VueRouter({
1113
routes: [
1214
{
1315
name: 'search',
1416
path: '/search',
1517
component: Search,
16-
props: route => ({ query: route.query.q }),
18+
props: route => ({ queryParameters: route.query }),
1719
},
1820
{ path: '/', redirect: '/search' },
1921
],
22+
parseQuery(query) {
23+
return qs.parse(query);
24+
},
25+
stringifyQuery(query) {
26+
var result = qs.stringify(query);
27+
28+
return result ? ('?' + result) : '';
29+
}
2030
});
2131

2232
new Vue({

0 commit comments

Comments
 (0)