【发布时间】:2019-01-23 07:38:25
【问题描述】:
我正在创建一个 nuxt 电子商务应用程序。我有一种情况,我在一个类别中有超过 10,000 个项目,我想为产品创建相关过滤器。
我的问题是如何附加 url(添加和删除查询参数)以便过滤产品。
我已经通过添加change 事件来尝试这样的事情!
<ul>
<li>
<b-form-checkbox @change="filterProduct">
<label class="ui__label_checkbox">Apple</label>
</b-form-checkbox>
</li>
<li >
<b-form-checkbox @change="filterProduct">
<label class="ui__label_checkbox">Mango</label>
</b-form-checkbox>
</li>
</ul>
methods:{
filterProduct() {
this.$router.push({ query: Object.assign({}, this.$route.query, { random: "query" }) });
},
}
这种方法确实只附加一次网址,但会删除我不想要的复选框的选中状态
我希望每次单击复选框时都类似于下面,它必须同时保留复选框的状态附加到 url
www.foobar.com/?first=1&second=12&third=5
【问题讨论】:
-
为什么需要它们作为路由参数?你不能在你的 vuex 状态中设置一个包含参数的项目并将它们应用到你导航到的页面上吗?
-
@Andrew1325 你认为 10,000 个项目适合 vuex 状态吗???
-
你是不是在你的路由参数里放了10000个项目???我了解您需要用于过滤 10,000 个项目的参数。设置过滤器并在“导航到”页面上的 mount() 或 asyncData 中使用它们。
-
@Andrew1325 您不想在应用程序中一次直接查询 10,000 个项目。话虽如此,我的问题在典型电子商务网站的背景下很简单。结果可能仅限于顺序集以降低服务器上的负载。
标签: vue.js vuejs2 e-commerce vue-router nuxt.js