【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 ...
随机推荐
- iOS Unity 项目解析
本文旨在记录Unity 导出的iOS 项目笔记,另带接入SDK的终极方案,顺带对比Android 项目 1蓝色的目录 Data 这个就是项目的数据,每个项目不一样也就是这个目录不一样,是不是可以把这个 ...
- css scoped和moudle
scoped css 官方文档 缺点 一.如果用户在别处定义了相同的类名,也许还是会影响到组件的样式. 二.根据css样式优先级的特性,scoped这种处理会造成每个样式的权重加重了: 即理论上我们要 ...
- Git_基础理论
三个区域 Git本地有三个工作区域:工作目录(Working Directory).暂存区(Stage/Index).资源库(Repository或Git Directory).如果在加上远程的git ...
- What is RSS
What is RSS?RSS (Rich Site Summary) is a format for delivering regularly changing web content. Many ...
- C++11:初始化列表
在老版本的C++中,我们可以比较方便得对结构体.数组等对象利用{}进行初始化,而类变量的初始化则取决于构造函数的形式,例如: struct A { int a, b, c; }; class Foo ...
- bitmap_find_next_zero_area_off函数
备注:
- [C#]接口Interface快速Demo
参考代码1: using System; namespace InterfaceDemo { /// <summary> /// 定义一个爬树接口 /// </summary> ...
- Shell脚本实现模拟并发及并发数控制
#!/bin/bash #by inmoonlight@163.com #下面的代码控制并发数.其实是利用令牌原理实现 #一个线程要运行,首先要拿到令牌在该代码中即read一行数据,读取不到就会暂停, ...
- C# async、await、Task 探讨
test02.ProntOut(); ///*第五题*/ static class test02 { public static async void ProntOut() { Console.Wri ...
- 腾讯云等Linux环境下Redis安装配置
1.下载redis解压安装命令教程 https://www.cnblogs.com/hunanzp/p/12304622.html 2.配置远程连接 修改bind 127.0.0.0 为 bind ...