【Vue项目】尚品汇(四)Search组件开发
Search模块开发
分析:1)编写静态页面
2)编写api
3)编写vuex三大件
4)组件获取仓库数据,并进行动态展示
1 SearchSelector
1 编写api
export const reqGetSearchInfo = (params={}) => {
return requests({
url: '/list',
method: 'post',
data: params
})
}
2 编写Vuex三大件
import {reqGetSearchInfo} from "@/api";
const actions = {
async getSearchInfo(context, params) {
let result = await reqGetSearchInfo(params)
if(result.code == 200) {
context.commit('GETSEARCHINFO', result.data);
}
}
}
const mutations = {
GETSEARCHINFO(state, searchInfoList) {
state.searchInfoList = searchInfoList
}
}
const getters = {
}
const state = {
searchInfoList: {}
}
// 将模块仓库内容对外暴露
export default {
state,
actions,
mutations,
getters
}
注意state仓库的数据是对象{}还是数组[]是由返回的数据决定的。
3 组件获取仓库数据,并进行动态展示
mounted() {
this.$store.dispatch('getSearchInfo');
},
computed: {
...mapState({
SearchInfoList: (state) => {
return state.search.searchInfoList
}
})
}
4 监听路由变化再次发送请求数据
之前通过三级联动的query参数整合了搜索框中的params参数,当点击三级联动的时候能够带上搜索框的参数,当点击搜索框的时候能带上三级联动的参数。但是在进入搜索页面之后并不能继续进行发出请求,这是因为我们只在mounted里面进行了整理参数、发出请求(实际是在vuex的action中)。
因此我们可以通过监听路由的变化,当路由变化的时候重新进行参数整理和请求发送即可。
<script>
import SearchSelector from './SearchSelector/SearchSelector'
import {mapState} from "vuex";
export default {
name: 'Search',
components: {
SearchSelector
},
data() {
return {
searchParams: {
}
}
},
methods: {
getData() {
this.$store.dispatch('getSearchInfo', this.searchParams);
}
},
mounted() {
this.getData();
},
beforeMount() {
Object.assign(this.searchParams, this.$route.query, this.$route.params)
},
computed: {
...mapState({
SearchInfoList: (state) => {
return state.search.searchInfoList
}
})
},
watch: {
$route() {
console.log("123")
Object.assign(this.searchParams, this.$route.query, this.$route.params)
this.getData()
this.searchParams = {}
}
}
}
</script>
各种请求接口参数一定要注意参照接口文档。。。
对路由的监视一定要加上 this.searchParams = {},防止在重复点击三级联动的时候会携带上次的三级分类的剩余信息
从后面回来的,这里还真不能直接这么写,因为后面面包屑会用到categoryName,否则再次点击三级联动会导致面包屑不显示。应该改为:
$route() {
Object.assign(this.searchParams, this.$route.query, this.$route.params)
console.log(this.searchParams)
this.getData()
this.searchParams.category1Id = ''
this.searchParams.category2Id = ''
this.searchParams.category3Id = ''
}
2 面包屑
3 平台售卖属性
4 商品排序
5 分页器
分页器需要的参数:
当前的页码:pageNo
每页的数据:pageSize
分页器的总页数:total
分页器连续页码个数:continue
【Vue项目】尚品汇(四)Search组件开发的更多相关文章
- vue大型电商项目尚品汇(前台篇)day01
学完vue2还是决定先做一个比较经典,也比较大的项目来练练手好一点,vue3的知识不用那么着急,先把vue2用熟练了,vue3随时都能学. 这个项目确实很经典包含了登录注册.购物车电商网站该有的都有, ...
- vue大型电商项目尚品汇(前台篇)day04
这几天一直都在做项目,只是没有上传上来,即将把前台项目完结了.现在开始更新整个前台的部分 一.面包屑处理 1.分类操作 点击三级联动进入搜索产生面包屑,直接取参数中的name即可 点击x怎么干掉这个面 ...
- vue大型电商项目尚品汇(前台篇)day02
现在正式回归,开始好好做项目了,正好这一个项目也开始慢慢的开始起色了,前面的准备工作都做的差不多了. 而且我现在也开始慢慢了解到了一些项目才开始需要的一些什么东西了,vuex.router这些都是必备 ...
- vue大型电商项目尚品汇(前台篇)day05
紧急更新第二弹,然后就剩下最后一弹,也就是整个前台的项目 一.购物车 1.加入购物车(新知识点) 加入到购物车是需要接口操作的,因为我们需要将用户的加入到购物车的保存到服务器数据库,你的账号后面才会在 ...
- vue大型电商项目尚品汇(前台篇)day05终结篇
前台部分到此结束,一路走来还挺怀念,今天主要是对整个项目的完成做一个最后的收尾工作,对于功能上的需求没有什么了,主要就是项目上线的一些注意事项. 一.个人中心二级路由 当我们点击查看订单应该跳转到个人 ...
- vue大型电商项目尚品汇(后台终结篇)day06 重磅!!!
自此整个项目前后台,全部搭建完毕. 今天是最后一天,内容很多,而且也比较常用,一个图标类数据可视化,一个后台的权限管理,都是很经典的类型. 一.数据可视化 1.简介 专门的一门学科,有专门研究这个的岗 ...
- vue大型电商项目尚品汇(后台篇)day01
开始我们后台篇的内容,前面处理了一些事情,去学校完成授位仪式,由校长授位合影,青春不留遗憾,然后还换了一个电脑,征战了四年的神船终于退役了,各种各样的小毛病是真的烦人. 现在正式开始后台篇的内容,做了 ...
- vue大型电商项目尚品汇(后台篇)day03
今天把平台属性的管理基本完成了,后台管理做到现在基本也开始熟悉,确实就是对ElementUI的一个熟练程度. 一.平台属性管理 1.动态展示数据 先把接口弄好,应该在第三级标题选择后进行发请求 静态页 ...
- vue大型电商项目尚品汇(后台篇)day05
今天继续是对后台管理部分的一个操作,但是快要结束了,今天结束,明天会进入一个从Vue以来,另外一个名声显著的东西了,一只耳闻从未见识,而且十分的炫酷 他就是------数据可视化Echarts,迫不及 ...
- vue大型电商项目尚品汇(后台篇)day02
这几天更新有点小慢,逐渐开始回归状态了.尽快把这个后台做完,要开始vue3了 3.添加修改品牌 用到组件 Dialog 对话框,其中visible.sync这个配置是修改他的显示隐藏的,label-w ...
随机推荐
- 12.7 linux学习第十四天
今天老刘开始讲第10章,主要讲Ahache服务和SELinux安全子系统 10.1 网站服务程序 1970年,作为互联网前身的ARPANET(阿帕网)已初具雏形,并开始向非军用部门开放,许多大学和商业 ...
- Linux系列---【yum安装已下载好的rpm包】
yum安装已下载好的rpm包 先进入已下载好的rpm包的目录,然后执行下面的命令 yum localinstall xxx.rpm
- elasticsearch第一天
启动 elasticsearch -d不能用以root用户启动 外网可访问在elasticsearch.yml中添加配置http.host: 0.0.0.0network.host: 0.0.0.0d ...
- 使用Microsoft Network Monitor 抓包分析文件上传
Microsoft 自己提供了一个官方的抓包工具,可以比较方便的在windows平台抓包,并可以提供协议关键字正则.安装包位置:\\192.168.10.248\public\ghw\tools\MN ...
- CNN_LSTM
1.keras/examples at master · keras-team/keras · GitHubhttps://github.com/keras-team/keras/tree/maste ...
- C/C++ 数据结构优先级队列的实现(使用二级指针)
#include <iostream> #include <Windows.h> #include <iomanip> //优先级队列的实现 using names ...
- Error parsing HTTP request header 控制台报错分析与解决
控制台报错信息: org.apache.coyote.http11.AbstractHttp11Processor process 信息: Error parsing HTTP request hea ...
- mi-root
1.解锁Bootloder 2.刷开发版系统[xposed最新支持8.1],Android版本相对应,线刷的时候一定要记得只选择"全部删除",不要选择"全部删除并lock ...
- LaTeX in 24 Hours - 3. Formatting Texts I
文章目录 本章内容:文本格式 I 3.1 Sectional Units 3.2 Labeling and Referring Numbered Items 3.3 Texts Alignment 3 ...
- SQL作业编辑报错 无法将COM组件......
在命令行运行下列命令 数据库为2005cd C:\Program Files\Microsoft SQL Server\90\DTS\Binnregsvr32 dts.dll