实现步骤

1、静态页面准备

在这里插入图片描述
页面使用了元件的UI的Icon 图标, ,el-checkbox,el-input-number,el-popover,el-button所有在main.js需要引入元件的UI。

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);

页面代码如下:
说明:为了方便,此处直接放最终的代码。

<template><div class="shoppingCart"><!-- 购物车头部 --><div class="cart-header"><div class="cart-header-content"><p><i class="el-icon-shopping-cart-full" style="color:#ff6700; font-weight: 600;"></i>我的购物车</p><span>温馨提示:产品是否购买成功,以最终下单为准哦,请尽快结算</span></div></div><!-- 购物车头部END --><!-- 购物车主要内容区 --><div class="content" v-if="getShoppingCart.length>0"><ul><!-- 购物车表头 --><li class="header"><div class="pro-check"><el-checkbox v-model="isAllCheck">全选</el-checkbox></div><div class="pro-img"></div><div class="pro-name">商品名称</div><div class="pro-price">单价</div><div class="pro-num">数量</div><div class="pro-total">小计</div><div class="pro-action">操作</div></li><!-- 购物车表头END --><!-- 购物车列表 --><li class="product-list" v-for="(item,index) in getShoppingCart" :key="item.id"><div class="pro-check"><el-checkbox :value="item.check" @change="checkChange($event,index)"></el-checkbox></div><div class="pro-img"><router-link :to="{path: '/goods/details',query: {productID:item.productID}}"><img :src="$target + item.productImg" /></router-link></div><div class="pro-name"><router-link:to="{ path: '/goods/details', query: {productID:item.productID} }">{{item.productName}}</router-link></div><div class="pro-price">{{item.price}}</div><div class="pro-num"><el-input-numbersize="small":value="item.num"@change="handleChange($event,index,item.productID)":min="1":max="item.maxNum"></el-input-number></div><div class="pro-total pro-total-in">{{item.price*item.num}}</div><div class="pro-action"><el-popover placement="right"><p>确定删除吗?</p><div style="text-align: right; margin: 10px 0 0"><el-buttontype="primary"size="mini"@click="deleteItem($event,item.id,item.productID)">确定</el-button></div><i class="el-icon-error" slot="reference" style="font-size: 18px;"></i></el-popover></div></li><!-- 购物车列表END --></ul><div style="height:20px;background-color: #f5f5f5"></div><!-- 购物车底部导航条 --><div class="cart-bar"><div class="cart-bar-left"><span><router-link to="/goods">继续购物</router-link></span><span class="sep">|</span><span class="cart-total"><span class="cart-total-num">{{getNum}}</span> 件商品,已选择<span class="cart-total-num">{{getCheckNum}}</span></span></div><div class="cart-bar-right"><span><span class="total-price-title">合计:</span><span class="total-price">{{getTotalPrice}}</span></span><router-link :to="getCheckNum > 0 ? '/confirmOrder' : ''"><div :class="getCheckNum > 0 ? 'btn-primary' : 'btn-primary-disabled'">去结算</div></router-link></div></div><!-- 购物车底部导航条END --></div><!-- 购物车主要内容区END --><!-- 购物车为空的时候显示的内容 --><div v-else class="cart-empty"><div class="empty"><h2>您的购物车还是空的!</h2><p>快去购物吧!</p></div></div><!-- 购物车为空的时候显示的内容END --></div>
</template>

2、创建Vuex

/store/index.js

import Vue from 'vue'
import Vuex from 'vuex'import shoppingCart from './modules/shoppingCart'Vue.use(Vuex)export default new Vuex.Store({strict: true,modules: {shoppingCart}
})

/store/modules/shoppingCart.js

export default {state: {shoppingCart: []// shoppingCart结构/*shoppingCart = {id: "", // 购物车idproductID: "", // 商品idproductName: "", // 商品名称productImg: "", // 商品图片price: "", // 商品价格num: "", // 商品数量maxNum: "", // 商品限购数量check: false // 是否勾选}*/}
}

3、同步购物车状态

思路:
在根组件App.vue监听用户登录状态;
如果用户已经登录,从数据库获取用户的购物车数据,把获取到数据更新到vuex;
用户没有登录,把vuex中购物车的状态设置为空。

代码如下:

import { mapActions } from "vuex";
import { mapGetters } from "vuex";computed: {...mapGetters(["getUser", "getNum"])
},
methods: {...mapActions(["setShoppingCart"]),
}
watch: {// 获取vuex的登录状态getUser: function(val) {if (val === "") {// 用户没有登录this.setShoppingCart([]);} else {// 用户已经登录,获取该用户的购物车信息this.$axios.post("/api/user/shoppingCart/getShoppingCart", {user_id: val.user_id}).then(res => {if (res.data.code === "001") {// 001 为成功, 更新vuex购物车状态this.setShoppingCart(res.data.shoppingCartData);} else {// 提示失败信息this.notifyError(res.data.msg);}}).catch(err => {return Promise.reject(err);});}}
}

vuex的变异:

setShoppingCart (state, data) {// 设置购物车状态state.shoppingCart = data;
},

vuex的动作

setShoppingCart({ commit }, data) {commit('setShoppingCart', data);
}

4、动态生成购物车页面

思路:
通过vuex中的getters.getShoppingCart获取购物车的状态;
使用v-if判断购物车是否存在商品;
如果存在,使用v-for生成购物车列表;
如果不存在,显示购物车为空的时候显示的内容;

购物车html伪代码:

<div class="shoppingCart"><div class="content" v-if="getShoppingCart.length>0"><ul><li class="header"><!-- 购物车表头部分,省略详细代码 --></li><li class="product-list" v-for="(item,index) in getShoppingCart" :key="item.id"><!-- 购物车列表部分,省略详细代码 --></li></ul></div><!-- 购物车为空的时候显示的内容 --><div v-else class="cart-empty"><div class="empty"><h2>您的购物车还是空的!</h2><p>快去购物吧!</p></div></div>
</div>

vuex的getters:

getShoppingCart(state) {// 获取购物车状态return state.shoppingCart;
}

5、添加商品到购物车

思路:
用户在商品的详情页面,通过点击加入购物车按钮,调用点击事件addShoppingCart;
先向最初发起添加购物车的请求,根据返回信息操作vuex;
该商品第一次加入购物车:通过vuex的Actions(unshiftShoppingCart)把重新返回的购物车信息插入vuex;
该商品已经在购物车,通过vuex的Actions(addShoppingCartNum)把该商品数量+1;
商品数量达到限购数量,禁止点击加入购物车按钮。

html:

<el-button class="shop-cart" :disabled="dis" @click="addShoppingCart">加入购物车
</el-button>

逻辑代码如下:

methods: {...mapActions(["unshiftShoppingCart", "addShoppingCartNum"]),// 加入购物车addShoppingCart() {// 判断是否登录,没有登录则显示登录组件if (!this.$store.getters.getUser) {this.$store.dispatch("setShowLogin", true);return;}// 向后端发起请求,把商品信息插入数据库的购物车表this.$axios.post("/api/user/shoppingCart/addShoppingCart", {user_id: this.$store.getters.getUser.user_id,product_id: this.productID}).then(res => {switch (res.data.code) {case "001":// 新加入购物车成功this.unshiftShoppingCart(res.data.shoppingCartData[0]);this.notifySucceed(res.data.msg);break;case "002":// 该商品已经在购物车,数量+1this.addShoppingCartNum(this.productID);this.notifySucceed(res.data.msg);break;case "003":// 商品数量达到限购数量this.dis = true;this.notifyError(res.data.msg);break;case "401":// 没有登录this.$store.dispatch("setShowLogin", true);this.notifyError(res.data.msg);break;default:this.notifyError(res.data.msg);}}).catch(err => {return Promise.reject(err);});}
}

vuex的变异:

unshiftShoppingCart(state, data) {// 添加商品到购物车// 用于在商品详情页点击添加购物车,后台添加成功后,更新vuex状态state.shoppingCart.unshift(data);
},
addShoppingCartNum(state, productID) {// 增加购物车商品数量// 用于在商品详情页点击添加购物车,后台返回002,“该商品已在购物车,数量 +1”,更新vuex的商品数量for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];if (temp.productID == productID) {if (temp.num < temp.maxNum) {temp.num++;}}}
}

vuex的动作:

unshiftShoppingCart({ commit }, data) {commit('unshiftShoppingCart', data);
},
addShoppingCartNum({ commit }, productID) {commit('addShoppingCartNum', productID);
}

6、删除购物车中的商品

思路:
购物车每个商品都有一个删除按钮,用户点击删除按钮,先点击确认即可;
当用户选择确认删除,调用点击事件deleteItem($ event,item.id,item.productID);
通过点击事件获取到购物车id和商品id;
先向首次发起删除购物车的请求,根据返回信息操作vuex;
删除成功,通过通过vuex的Actions(deleteShoppingCart),把该商品从购物车删除;
如果删除失败,提示相关信息。
html:

<div class="pro-action"><el-popover placement="right"><p>确定删除吗?</p><div style="text-align: right; margin: 10px 0 0"><el-button type="primary" size="mini" @click="deleteItem($event,item.id,item.productID)">确定</el-button></div><i class="el-icon-error" slot="reference" style="font-size: 18px;"></i></el-popover>
</div>

逻辑代码如下:

methods: {// 向后端发起删除购物车的数据库信息请求deleteItem(e, id, productID) {this.$axios.post("/api/user/shoppingCart/deleteShoppingCart", {user_id: this.$store.getters.getUser.user_id,product_id: productID}).then(res => {switch (res.data.code) {case "001":// 删除成功// 更新vuex状态this.deleteShoppingCart(id);// 提示删除成功信息this.notifySucceed(res.data.msg);break;default:// 提示删除失败信息this.notifyError(res.data.msg);}}).catch(err => {return Promise.reject(err);});}
}

vuex的变异:

deleteShoppingCart(state, id) {// 根据购物车id删除购物车商品for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];if (temp.id == id) {state.shoppingCart.splice(i, 1);}}
}

vuex的动作:

deleteShoppingCart({ commit }, id) {commit('deleteShoppingCart', id);
}

7、修改购物车商品的数量

思路:
购物车每个商品都有一个计数器,可以点击加减按钮修改商品数量,或者直接在输入输入框输入商品数量进行修改。计数器使用了element-ui的el-input-number实现。
通过计数器的变化事件获取到新的数量,购物车商品的索引(即副本的索引),商品id;
先向最初发起修改购物车商品数量的请求,根据返回信息操作vuex;
修改成功,通过vuex的Actions(updateShoppingCart),修改购物车商品的数量;
修改失败,提示失败信息。其中:数量小于1,数量是否达到限购数量(这两种情况,前端有设置校正,一般不会出现)。

html:

<div class="pro-num"><el-input-number size="small" :value="item.num" @change="handleChange($event,index,item.productID)" :min="1":max="item.maxNum">
</el-input-number>

逻辑代码如下:

// 修改商品数量的时候调用该函数
handleChange(currentValue, key, productID) {// 当修改数量时,默认勾选this.updateShoppingCart({ key: key, prop: "check", val: true });// 向后端发起修改购物车商品数量的请求this.$axios.post("/api/user/shoppingCart/updateShoppingCart", {user_id: this.$store.getters.getUser.user_id,product_id: productID,num: currentValue}).then(res => {switch (res.data.code) {case "001":// 001代表修改成功// 更新vuex状态this.updateShoppingCart({key: key,prop: "num",val: currentValue});// 提示修改成功信息this.notifySucceed(res.data.msg);break;default:// 提示修改失败信息this.notifyError(res.data.msg);}}).catch(err => {return Promise.reject(err);});
}

vuex的变异:

updateShoppingCart(state, payload) {// 更新购物车// 可更新商品数量和是否勾选// 用于购物车点击勾选及加减商品数量if (payload.prop == "num") {// 判断效果的商品数量是否大于限购数量或小于1if (state.shoppingCart[payload.key].maxNum < payload.val) {return;}if (payload.val < 1) {return;}}// 根据商品在购物车的数组的索引和属性更改state.shoppingCart[payload.key][payload.prop] = payload.val;
}

vuex的动作:

updateShoppingCart({ commit }, payload) {commit('updateShoppingCart', payload);
}

8、是否可以购买商品

思路:
购物车每个商品都有一个替换框,使用element-ui的el-checkbox实现,结算时提交全部重置的商品。
通过change事件获取到拖动框的状态(是或否),购物车商品的索引(即细分的索引);
通过vuex的操作(updateShoppingCart),修改购物车商品的移位状态;

HTML:

<div class="pro-check"><el-checkbox :value="item.check" @change="checkChange($event,index)"></el-checkbox>
</div>

逻辑代码如下:

checkChange(val, key) {  // 更新vuex中购物车商品是否勾选的状态  this.updateShoppingCart({ key: key, prop: "check", val: val });}

说明:此处使用的vuex的变异vuex和动作,和修改商品数量的是同一个,两个场景,通过传递的参数不同进行区分。修改商品数量时传递参数是{key:key,prop:“ num” ,val:val},是否重置商品传递的参数是{key:key,prop:“ check”,val:val},请注意prop的变化。

9、是否全选商品

思路:
购物车设置了一个全选框,通过v-model绑定isAllCheck。
isAllCheck **值是通过计算属性的getter获取vuex中的getters.getIsAllCheck;
vuex中的getters.getIsAllCheck通过遍历购物车分段,判断每个一个商品替换状态,只要有一个商品没有替换,getIsAllCheck替换为false,否则为true;
当点击全选框,通过计算属性的设置器调用vuex的操作(checkAll),更改每个商品的位置,从而修改全选框的状态。

HTML:

<div class="pro-check"><el-checkbox v-model="isAllCheck">全选</el-checkbox>
</div>

逻辑代码如下:

computed: {isAllCheck: {get() {return this.$store.getters.getIsAllCheck;},set(val) {this.checkAll(val);}}
}

vuex的getters:

getIsAllCheck(state) {// 判断是否全选let isAllCheck = true;for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];// 只要有一个商品没有勾选立即return false;if (!temp.check) {isAllCheck = false;return isAllCheck;}}return isAllCheck;
}

vuex的变异:

checkAll(state, data) {// 点击全选按钮,更改每个商品的勾选状态for (let i = 0; i < state.shoppingCart.length; i++) {state.shoppingCart[i].check = data;}
}

vuex的动作:

checkAll({ commit }, data) {commit('checkAll', data);
}

10、计算购物车中商品的总数量

在购物车页面和根组件的顶部导航栏使用。
vuex的getters:

getNum(state) {// 购物车商品总数量let totalNum = 0;for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];totalNum += temp.num;}return totalNum;
}

11、计算购物车中偏移的商品总数量

在购物车页面和结算页面使用。
vuex的getters:

getCheckNum(state) {// 获取购物车勾选的商品总数量let totalNum = 0;for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];if (temp.check) {totalNum += temp.num;}}return totalNum;
}

12、计算购物车中偏移的商品总价格

在购物车页面和结算页面使用。
vuex的getters:

getTotalPrice(state) {// 购物车勾选的商品总价格let totalPrice = 0;for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];if (temp.check) {totalPrice += temp.price * temp.num;}}return totalPrice;
}

13、生成购物车中偏移的商品详细信息

在结算页面使用。
vuex的getters:

getCheckGoods(state) {// 获取勾选的商品信息// 用于确认订单页面let checkGoods = [];for (let i = 0; i < state.shoppingCart.length; i++) {const temp = state.shoppingCart[i];if (temp.check) {checkGoods.push(temp);}}return checkGoods;
}

总结

至此之后,购物车的前端部分已经全部实现:从数据库同步购物车数据,根据购物车数据动态生成购物车页面,添加商品到购物车,删除购物车中的商品,修改购物车商品的数量,是否勾选购物车商品,是否全选购物车商品,计算购物车中商品的总数量,计算购物车中偏移的商品总数量,计算购物车中偏移的商品总价格,生成购物车中重置的商品详细信息。

完整项目代码仓库:https://github.com/hai-27/vue-store

参考文章 https://juejin.im/post/5e660ef9518825490276748a

查看全文
如若内容造成侵权/违法违规/事实不符,请联系编程学习网邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

相关文章

  1. Python可视化matplotlib07-更靓的单颜色(二)

    如果您感觉上篇介绍的python内置1000+种颜色太丑,请看本篇;本篇汇总几个个人感觉比较好的颜色网站色号,主要是比较接近生活,譬如说胡萝卜的黄色,合欢花的红色,竹子的绿色,海水的蓝色等等。我的公众号:“pythonic生物人“,持续分享数据科学和生物信息干货。版权声明:“…...

    2024/4/14 20:38:41
  2. 【编程实践】Joyful-Pandas(下)Task02(第七章):文本数据

    【编程实践】Joyful-Pandas(下)Task02(第七章):文本数据string类型的性质string与object的区别String类型的转换拆分与拼接str.split方法分割符与str的位置元素选取其他参数str.cat方法不同对象的拼接模式cat中的索引对齐替换子串匹配与提取常用字符串方法问题与练习问题练…...

    2024/4/18 13:58:20
  3. 解决H5发送短信被脚本恶意盗刷(java)

    之前在写h5的发送短信业务的时候,发现有人通过脚本生成手机号,然后不断的调用发送短信的业务。这里没有做对相同手机的业务校验。解决方案有两种一,在发送短信的时候,需要获取对方的ip,然后通过ip去进行限制,每一个ip每天只能发送多少条数据,这种方案能够解决一些问题。…...

    2024/4/14 20:38:40
  4. 渗透测试----书单

    《0day安全软件漏洞分析技术》 《Android 软件安全与逆向分析》 《Android安全攻防权威指南》 《http://ASP.NET从入门到精通》 《C Primer Plus》 《C++黑客编程揭秘与防范》 《C和指针》 《go语言编程》 《ajax权威指南》 《hadoop权威指南》 《HTTP权威指南》 《HTML5+CSS3从…...

    2024/4/14 20:38:38
  5. 1077 互评成绩计算

    1077 互评成绩计算解题代码测试结果问题整理 解题代码 #include<iostream> int main() {int n, m;double gT, gC;scanf("%d %d", &n, &m);for (int i = 0; i < n; i++) {int cnt = 0;double score = 0.0, max = -1.0, min = 101.0;scanf("%lf&…...

    2024/4/14 20:38:37
  6. VirtualBox 复制虚拟机 克隆系统

    打开 VirtualBox,在想要复制的虚拟机上,右键,点击 - 复制 - 。修改 - 名称 - 和 - 存储路径 - 。MAC地址设定 建议使用 - 为所有网卡重新生成MAC地址 - ,毕竟谁也不希望看到同时运行的两个虚拟机的 MAC是一样的。点击 - 下一步 - 。使用默认的 - 完全复制 - 选项。点击 - 复…...

    2024/4/17 14:20:32
  7. Action:Consider defining a bean of type“org.springframework.web.client.RestTemplate”in your conf

    报错代码: 很低级的错误,代码是copy过来的,但是启动类是我自己手动创建的,导致没有观察到需要创建一个bean Description:Field restTemplate in com.changgou.oauth.service.impl.AuthServiceImpl required a bean of type org.springframework.web.client.RestTemplate th…...

    2024/4/14 20:38:36
  8. 一、PDF搜索网站推荐

    昨天看到的分享记录一下:对于大部分程序员来说,电子书的需求量还是很大的,介绍几个不错的免费搜电子书的网站吧。1、鸠摩搜书这个网址可以用来搜索一些pdf的书,有了这个网址,就不用百度全网搜索pdf的书了。虽然可能没有像百度全网搜索那么全,但大部分也都有了。注意每种搜…...

    2024/4/14 20:38:34
  9. 【单调栈】 42接雨水

    题目 给定 n 个非负整数表示每个宽度为 1 的柱子的高度图,计算按此排列的柱子,下雨之后能接多少雨水。输入: [0,1,0,2,1,0,1,3,2,1,2,1] 输出: 6 思路 单调递减栈:当找到一根比前面高的柱子,就可以接雨水,当后面的比前面的低就不可以接。因此相当于寻找右边第一个更大的,…...

    2024/4/14 23:52:15
  10. MapReduce Shuffle流程

    Map端Shuffle过程每个map task都有一个内存缓冲区,存储着map的输出结果,当缓冲区快满的时候需要将缓冲区的数据以一个临时文件的方式存放到磁盘,当整个map task结束后再对磁盘中这个map task产生的所有临时文件做合并,生成最终的正式输出文件,然后等待reduce task来拉数据…...

    2024/4/14 23:52:45
  11. Java小白修炼手册--第二阶段--Java SE--集合框架-Collection 和集合操作-Map

    集合框架Java集合框架(Java Collections Framework,JCF)是为表示和操作集合而规定的一种统一的标准的体系结构。任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。集合框架-Collection:Collection集合框架* java.util.Collection接口,该接口是所有…...

    2024/4/14 23:52:20
  12. 数据库(二)之关系模型介绍

    一、关系模型概述关系模型用表表示;行指代一个数据元组;列指代数据属性; 关系模式图: department(dept_name, building, budget);二、码超码:一个或多个属性的集合,这些属性的组合可以使我们在一个关系中唯一标识一个元组; 候选码:最小的超码; 主码:被数据库设计者选中…...

    2024/4/14 23:52:15
  13. deepin,真好用-08-VS Code编译运行调试C/C++

    作为一个程序员,调试C/C++程序的能力还是要有的。推荐使用vscode(vs,真好用) 安装 vs code 安装方法有三:应用商店里有,可以一键安装 官网下载deb文件安装 命令行sudo apt install code插件安装C/C++(制作者是microsoft,最基础的插件) Code Runner(实用工具,可以选中…...

    2024/4/14 23:52:20
  14. 求旋转体体积

    1.圆盘法将图形想象成无数个超级小的圆柱体叠在一起,则dV=πr^2dx或dy,其中r根据函数和旋转轴确定,dx或dy由旋转轴的选择确定。一般情况下(即y用x表示),绕x轴或y=a旋转时,用圆盘法例如y=x^2与y=2和y轴围成的图形绕y轴旋转,则r=√(y),选择dy,积分上下限为0到2y=x^2与x…...

    2024/4/15 5:02:41
  15. Docker学习笔记九:初识Dockerfile

    由于commit在构建镜像时,很容易将无关内容添加到镜像且维护起来十分困难。所以我们不推荐使用commit来构建一个镜像。官方推荐使用Dockerfile来构建一个镜像。 Dockerfile简介 镜像的定制实际上就是定制每一层所添加的配置、文件。那么如果我们可以把每一层修改、安装、构建、…...

    2024/4/18 8:39:37
  16. 3.1.4 使用Actuator管理你的Spring程序

    Actuator介绍端点配置Http端点配置端点讲解 - Health健康检查端口讲解 - 日志配置端口讲解 - metrics自定义端点快速理解JMX机制...

    2024/4/17 15:36:01
  17. KVO实现原理分析

    在开发过程中,很多时候会用到KVO键值观察,它能够很轻松地去监听某对象属性的变化,监听一些带状态的控件的状态变化,字符串的改变等等,今天就来探讨一下KVO的使用及实现原理。 先来引用一下苹果官方文档对KVO的定义:Key-value observing is a mechanism that allows objec…...

    2024/4/18 12:53:04
  18. 信息技术-计算机程序计算

    信息技术选修部分计算机程序算法...

    2024/4/14 23:52:15
  19. python-装饰器-为函数添加功能但不改变调用方式

    使用闭包简单模拟装饰器的实现原理 def verify(func):def test():print("验证通过")func()return test def func1():print("func1被调用")func1()#普通调用func1 = verify(func1)#装饰器修饰后func1()#装饰器调用运行结果func1被调用 -------装饰器-------…...

    2024/4/14 23:52:25
  20. Java安装(win10)

    下载Java 官方链接:https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html 这里下载的是JDK1.8 安装 按步骤安装 设置环境变量 (1)此电脑 --> 右键–> 属性–> 高级系统设置 (2)点击环境变量 (3)新增一个JAVA_HOME变量,指向…...

    2024/4/16 0:23:56

最新文章

  1. SynchronousQueue

    SynchronousQueue 解释&#xff1a; 同步队列 介绍 实现了BlockingQueue 和 Queue 其中每个插入操作必须等待另一个线程相应的删除操作 同步队列没有任何容量&#xff0c;甚至没有一个容量 如果你想放入一个元素&#xff0c;就必须有另外一个线程尝试从中移除元素 使用 …...

    2024/4/20 21:18:17
  2. 梯度消失和梯度爆炸的一些处理方法

    在这里是记录一下梯度消失或梯度爆炸的一些处理技巧。全当学习总结了如有错误还请留言&#xff0c;在此感激不尽。 权重和梯度的更新公式如下&#xff1a; w w − η ⋅ ∇ w w w - \eta \cdot \nabla w ww−η⋅∇w 个人通俗的理解梯度消失就是网络模型在反向求导的时候出…...

    2024/3/20 10:50:27
  3. 大数据学习十三天(hadhoop基础2)

    一: MapReduce概述(了解) MapReduce是hadoop三大组件之一,是分布式计算组件 Map阶段 : 将数据拆分到不同的服务器后执行Maptask任务,得到一个中间结果 Reduce阶段 : 将Maptask执行的结果进行汇总,按照Reducetask的计算 规则获得一个唯一的结果 我们在MapReduce计算框架的使用过…...

    2024/4/19 18:21:57
  4. jQuery(一)

    文章目录 1. 基本介绍2.原理示意图3.快速入门1.下载jQuery2.创建文件夹&#xff0c;放入jQuery3.引入jQuery4.代码实例 4.jQuery对象与DOM对象转换1.基本介绍2.dom对象转换JQuery对象3.JQuery对象转换dom对象4.jQuery对象获取数据获取value使用val&#xff08;&#xff09;获取…...

    2024/4/20 9:51:00
  5. 【外汇早评】美通胀数据走低,美元调整

    原标题:【外汇早评】美通胀数据走低,美元调整昨日美国方面公布了新一期的核心PCE物价指数数据,同比增长1.6%,低于前值和预期值的1.7%,距离美联储的通胀目标2%继续走低,通胀压力较低,且此前美国一季度GDP初值中的消费部分下滑明显,因此市场对美联储后续更可能降息的政策…...

    2024/4/19 14:24:02
  6. 【原油贵金属周评】原油多头拥挤,价格调整

    原标题:【原油贵金属周评】原油多头拥挤,价格调整本周国际劳动节,我们喜迎四天假期,但是整个金融市场确实流动性充沛,大事频发,各个商品波动剧烈。美国方面,在本周四凌晨公布5月份的利率决议和新闻发布会,维持联邦基金利率在2.25%-2.50%不变,符合市场预期。同时美联储…...

    2024/4/19 18:20:22
  7. 【外汇周评】靓丽非农不及疲软通胀影响

    原标题:【外汇周评】靓丽非农不及疲软通胀影响在刚结束的周五,美国方面公布了新一期的非农就业数据,大幅好于前值和预期,新增就业重新回到20万以上。具体数据: 美国4月非农就业人口变动 26.3万人,预期 19万人,前值 19.6万人。 美国4月失业率 3.6%,预期 3.8%,前值 3…...

    2024/4/19 11:57:31
  8. 【原油贵金属早评】库存继续增加,油价收跌

    原标题:【原油贵金属早评】库存继续增加,油价收跌周三清晨公布美国当周API原油库存数据,上周原油库存增加281万桶至4.692亿桶,增幅超过预期的74.4万桶。且有消息人士称,沙特阿美据悉将于6月向亚洲炼油厂额外出售更多原油,印度炼油商预计将每日获得至多20万桶的额外原油供…...

    2024/4/19 11:57:31
  9. 【外汇早评】日本央行会议纪要不改日元强势

    原标题:【外汇早评】日本央行会议纪要不改日元强势近两日日元大幅走强与近期市场风险情绪上升,避险资金回流日元有关,也与前一段时间的美日贸易谈判给日本缓冲期,日本方面对汇率问题也避免继续贬值有关。虽然今日早间日本央行公布的利率会议纪要仍然是支持宽松政策,但这符…...

    2024/4/19 11:57:52
  10. 【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响

    原标题:【原油贵金属早评】欧佩克稳定市场,填补伊朗问题的影响近日伊朗局势升温,导致市场担忧影响原油供给,油价试图反弹。此时OPEC表态稳定市场。据消息人士透露,沙特6月石油出口料将低于700万桶/日,沙特已经收到石油消费国提出的6月份扩大出口的“适度要求”,沙特将满…...

    2024/4/19 11:57:53
  11. 【外汇早评】美欲与伊朗重谈协议

    原标题:【外汇早评】美欲与伊朗重谈协议美国对伊朗的制裁遭到伊朗的抗议,昨日伊朗方面提出将部分退出伊核协议。而此行为又遭到欧洲方面对伊朗的谴责和警告,伊朗外长昨日回应称,欧洲国家履行它们的义务,伊核协议就能保证存续。据传闻伊朗的导弹已经对准了以色列和美国的航…...

    2024/4/19 11:58:14
  12. 【原油贵金属早评】波动率飙升,市场情绪动荡

    原标题:【原油贵金属早评】波动率飙升,市场情绪动荡因中美贸易谈判不安情绪影响,金融市场各资产品种出现明显的波动。随着美国与中方开启第十一轮谈判之际,美国按照既定计划向中国2000亿商品征收25%的关税,市场情绪有所平复,已经开始接受这一事实。虽然波动率-恐慌指数VI…...

    2024/4/19 11:58:20
  13. 【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试

    原标题:【原油贵金属周评】伊朗局势升温,黄金多头跃跃欲试美国和伊朗的局势继续升温,市场风险情绪上升,避险黄金有向上突破阻力的迹象。原油方面稍显平稳,近期美国和OPEC加大供给及市场需求回落的影响,伊朗局势并未推升油价走强。近期中美贸易谈判摩擦再度升级,美国对中…...

    2024/4/20 7:40:48
  14. 【原油贵金属早评】市场情绪继续恶化,黄金上破

    原标题:【原油贵金属早评】市场情绪继续恶化,黄金上破周初中国针对于美国加征关税的进行的反制措施引发市场情绪的大幅波动,人民币汇率出现大幅的贬值动能,金融市场受到非常明显的冲击。尤其是波动率起来之后,对于股市的表现尤其不安。隔夜美国股市出现明显的下行走势,这…...

    2024/4/19 11:58:39
  15. 【外汇早评】美伊僵持,风险情绪继续升温

    原标题:【外汇早评】美伊僵持,风险情绪继续升温昨日沙特两艘油轮再次发生爆炸事件,导致波斯湾局势进一步恶化,市场担忧美伊可能会出现摩擦生火,避险品种获得支撑,黄金和日元大幅走强。美指受中美贸易问题影响而在低位震荡。继5月12日,四艘商船在阿联酋领海附近的阿曼湾、…...

    2024/4/19 11:58:51
  16. 【原油贵金属早评】贸易冲突导致需求低迷,油价弱势

    原标题:【原油贵金属早评】贸易冲突导致需求低迷,油价弱势近日虽然伊朗局势升温,中东地区几起油船被袭击事件影响,但油价并未走高,而是出于调整结构中。由于市场预期局势失控的可能性较低,而中美贸易问题导致的全球经济衰退风险更大,需求会持续低迷,因此油价调整压力较…...

    2024/4/20 3:12:02
  17. 氧生福地 玩美北湖(上)——为时光守候两千年

    原标题:氧生福地 玩美北湖(上)——为时光守候两千年一次说走就走的旅行,只有一张高铁票的距离~ 所以,湖南郴州,我来了~ 从广州南站出发,一个半小时就到达郴州西站了。在动车上,同时改票的南风兄和我居然被分到了一个车厢,所以一路非常愉快地聊了过来。 挺好,最起…...

    2024/4/19 11:59:15
  18. 氧生福地 玩美北湖(中)——永春梯田里的美与鲜

    原标题:氧生福地 玩美北湖(中)——永春梯田里的美与鲜一觉醒来,因为大家太爱“美”照,在柳毅山庄去寻找龙女而错过了早餐时间。近十点,向导坏坏还是带着饥肠辘辘的我们去吃郴州最富有盛名的“鱼头粉”。说这是“十二分推荐”,到郴州必吃的美食之一。 哇塞!那个味美香甜…...

    2024/4/19 11:59:23
  19. 氧生福地 玩美北湖(下)——奔跑吧骚年!

    原标题:氧生福地 玩美北湖(下)——奔跑吧骚年!让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 让我们红尘做伴 活得潇潇洒洒 策马奔腾共享人世繁华 对酒当歌唱出心中喜悦 轰轰烈烈把握青春年华 啊……啊……啊 两…...

    2024/4/19 11:59:44
  20. 扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!

    原标题:扒开伪装医用面膜,翻六倍价格宰客,小姐姐注意了!扒开伪装医用面膜,翻六倍价格宰客!当行业里的某一品项火爆了,就会有很多商家蹭热度,装逼忽悠,最近火爆朋友圈的医用面膜,被沾上了污点,到底怎么回事呢? “比普通面膜安全、效果好!痘痘、痘印、敏感肌都能用…...

    2024/4/19 11:59:48
  21. 「发现」铁皮石斛仙草之神奇功效用于医用面膜

    原标题:「发现」铁皮石斛仙草之神奇功效用于医用面膜丽彦妆铁皮石斛医用面膜|石斛多糖无菌修护补水贴19大优势: 1、铁皮石斛:自唐宋以来,一直被列为皇室贡品,铁皮石斛生于海拔1600米的悬崖峭壁之上,繁殖力差,产量极低,所以古代仅供皇室、贵族享用 2、铁皮石斛自古民间…...

    2024/4/19 12:00:06
  22. 丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者

    原标题:丽彦妆\医用面膜\冷敷贴轻奢医学护肤引导者【公司简介】 广州华彬企业隶属香港华彬集团有限公司,专注美业21年,其旗下品牌: 「圣茵美」私密荷尔蒙抗衰,产后修复 「圣仪轩」私密荷尔蒙抗衰,产后修复 「花茵莳」私密荷尔蒙抗衰,产后修复 「丽彦妆」专注医学护…...

    2024/4/20 21:12:02
  23. 广州械字号面膜生产厂家OEM/ODM4项须知!

    原标题:广州械字号面膜生产厂家OEM/ODM4项须知!广州械字号面膜生产厂家OEM/ODM流程及注意事项解读: 械字号医用面膜,其实在我国并没有严格的定义,通常我们说的医美面膜指的应该是一种「医用敷料」,也就是说,医用面膜其实算作「医疗器械」的一种,又称「医用冷敷贴」。 …...

    2024/4/19 12:00:25
  24. 械字号医用眼膜缓解用眼过度到底有无作用?

    原标题:械字号医用眼膜缓解用眼过度到底有无作用?医用眼膜/械字号眼膜/医用冷敷眼贴 凝胶层为亲水高分子材料,含70%以上的水分。体表皮肤温度传导到本产品的凝胶层,热量被凝胶内水分子吸收,通过水分的蒸发带走大量的热量,可迅速地降低体表皮肤局部温度,减轻局部皮肤的灼…...

    2024/4/19 12:00:40
  25. 配置失败还原请勿关闭计算机,电脑开机屏幕上面显示,配置失败还原更改 请勿关闭计算机 开不了机 这个问题怎么办...

    解析如下&#xff1a;1、长按电脑电源键直至关机&#xff0c;然后再按一次电源健重启电脑&#xff0c;按F8健进入安全模式2、安全模式下进入Windows系统桌面后&#xff0c;按住“winR”打开运行窗口&#xff0c;输入“services.msc”打开服务设置3、在服务界面&#xff0c;选中…...

    2022/11/19 21:17:18
  26. 错误使用 reshape要执行 RESHAPE,请勿更改元素数目。

    %读入6幅图像&#xff08;每一幅图像的大小是564*564&#xff09; f1 imread(WashingtonDC_Band1_564.tif); subplot(3,2,1),imshow(f1); f2 imread(WashingtonDC_Band2_564.tif); subplot(3,2,2),imshow(f2); f3 imread(WashingtonDC_Band3_564.tif); subplot(3,2,3),imsho…...

    2022/11/19 21:17:16
  27. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机...

    win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”问题的解决方法在win7系统关机时如果有升级系统的或者其他需要会直接进入一个 等待界面&#xff0c;在等待界面中我们需要等待操作结束才能关机&#xff0c;虽然这比较麻烦&#xff0c;但是对系统进行配置和升级…...

    2022/11/19 21:17:15
  28. 台式电脑显示配置100%请勿关闭计算机,“准备配置windows 请勿关闭计算机”的解决方法...

    有不少用户在重装Win7系统或更新系统后会遇到“准备配置windows&#xff0c;请勿关闭计算机”的提示&#xff0c;要过很久才能进入系统&#xff0c;有的用户甚至几个小时也无法进入&#xff0c;下面就教大家这个问题的解决方法。第一种方法&#xff1a;我们首先在左下角的“开始…...

    2022/11/19 21:17:14
  29. win7 正在配置 请勿关闭计算机,怎么办Win7开机显示正在配置Windows Update请勿关机...

    置信有很多用户都跟小编一样遇到过这样的问题&#xff0c;电脑时发现开机屏幕显现“正在配置Windows Update&#xff0c;请勿关机”(如下图所示)&#xff0c;而且还需求等大约5分钟才干进入系统。这是怎样回事呢&#xff1f;一切都是正常操作的&#xff0c;为什么开时机呈现“正…...

    2022/11/19 21:17:13
  30. 准备配置windows 请勿关闭计算机 蓝屏,Win7开机总是出现提示“配置Windows请勿关机”...

    Win7系统开机启动时总是出现“配置Windows请勿关机”的提示&#xff0c;没过几秒后电脑自动重启&#xff0c;每次开机都这样无法进入系统&#xff0c;此时碰到这种现象的用户就可以使用以下5种方法解决问题。方法一&#xff1a;开机按下F8&#xff0c;在出现的Windows高级启动选…...

    2022/11/19 21:17:12
  31. 准备windows请勿关闭计算机要多久,windows10系统提示正在准备windows请勿关闭计算机怎么办...

    有不少windows10系统用户反映说碰到这样一个情况&#xff0c;就是电脑提示正在准备windows请勿关闭计算机&#xff0c;碰到这样的问题该怎么解决呢&#xff0c;现在小编就给大家分享一下windows10系统提示正在准备windows请勿关闭计算机的具体第一种方法&#xff1a;1、2、依次…...

    2022/11/19 21:17:11
  32. 配置 已完成 请勿关闭计算机,win7系统关机提示“配置Windows Update已完成30%请勿关闭计算机”的解决方法...

    今天和大家分享一下win7系统重装了Win7旗舰版系统后&#xff0c;每次关机的时候桌面上都会显示一个“配置Windows Update的界面&#xff0c;提示请勿关闭计算机”&#xff0c;每次停留好几分钟才能正常关机&#xff0c;导致什么情况引起的呢&#xff1f;出现配置Windows Update…...

    2022/11/19 21:17:10
  33. 电脑桌面一直是清理请关闭计算机,windows7一直卡在清理 请勿关闭计算机-win7清理请勿关机,win7配置更新35%不动...

    只能是等着&#xff0c;别无他法。说是卡着如果你看硬盘灯应该在读写。如果从 Win 10 无法正常回滚&#xff0c;只能是考虑备份数据后重装系统了。解决来方案一&#xff1a;管理员运行cmd&#xff1a;net stop WuAuServcd %windir%ren SoftwareDistribution SDoldnet start WuA…...

    2022/11/19 21:17:09
  34. 计算机配置更新不起,电脑提示“配置Windows Update请勿关闭计算机”怎么办?

    原标题&#xff1a;电脑提示“配置Windows Update请勿关闭计算机”怎么办&#xff1f;win7系统中在开机与关闭的时候总是显示“配置windows update请勿关闭计算机”相信有不少朋友都曾遇到过一次两次还能忍但经常遇到就叫人感到心烦了遇到这种问题怎么办呢&#xff1f;一般的方…...

    2022/11/19 21:17:08
  35. 计算机正在配置无法关机,关机提示 windows7 正在配置windows 请勿关闭计算机 ,然后等了一晚上也没有关掉。现在电脑无法正常关机...

    关机提示 windows7 正在配置windows 请勿关闭计算机 &#xff0c;然后等了一晚上也没有关掉。现在电脑无法正常关机以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;关机提示 windows7 正在配…...

    2022/11/19 21:17:05
  36. 钉钉提示请勿通过开发者调试模式_钉钉请勿通过开发者调试模式是真的吗好不好用...

    钉钉请勿通过开发者调试模式是真的吗好不好用 更新时间:2020-04-20 22:24:19 浏览次数:729次 区域: 南阳 > 卧龙 列举网提醒您:为保障您的权益,请不要提前支付任何费用! 虚拟位置外设器!!轨迹模拟&虚拟位置外设神器 专业用于:钉钉,外勤365,红圈通,企业微信和…...

    2022/11/19 21:17:05
  37. 配置失败还原请勿关闭计算机怎么办,win7系统出现“配置windows update失败 还原更改 请勿关闭计算机”,长时间没反应,无法进入系统的解决方案...

    前几天班里有位学生电脑(windows 7系统)出问题了&#xff0c;具体表现是开机时一直停留在“配置windows update失败 还原更改 请勿关闭计算机”这个界面&#xff0c;长时间没反应&#xff0c;无法进入系统。这个问题原来帮其他同学也解决过&#xff0c;网上搜了不少资料&#x…...

    2022/11/19 21:17:04
  38. 一个电脑无法关闭计算机你应该怎么办,电脑显示“清理请勿关闭计算机”怎么办?...

    本文为你提供了3个有效解决电脑显示“清理请勿关闭计算机”问题的方法&#xff0c;并在最后教给你1种保护系统安全的好方法&#xff0c;一起来看看&#xff01;电脑出现“清理请勿关闭计算机”在Windows 7(SP1)和Windows Server 2008 R2 SP1中&#xff0c;添加了1个新功能在“磁…...

    2022/11/19 21:17:03
  39. 请勿关闭计算机还原更改要多久,电脑显示:配置windows更新失败,正在还原更改,请勿关闭计算机怎么办...

    许多用户在长期不使用电脑的时候&#xff0c;开启电脑发现电脑显示&#xff1a;配置windows更新失败&#xff0c;正在还原更改&#xff0c;请勿关闭计算机。。.这要怎么办呢&#xff1f;下面小编就带着大家一起看看吧&#xff01;如果能够正常进入系统&#xff0c;建议您暂时移…...

    2022/11/19 21:17:02
  40. 还原更改请勿关闭计算机 要多久,配置windows update失败 还原更改 请勿关闭计算机,电脑开机后一直显示以...

    配置windows update失败 还原更改 请勿关闭计算机&#xff0c;电脑开机后一直显示以以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容&#xff0c;让我们赶快一起来看一下吧&#xff01;配置windows update失败 还原更改 请勿关闭计算机&#x…...

    2022/11/19 21:17:01
  41. 电脑配置中请勿关闭计算机怎么办,准备配置windows请勿关闭计算机一直显示怎么办【图解】...

    不知道大家有没有遇到过这样的一个问题&#xff0c;就是我们的win7系统在关机的时候&#xff0c;总是喜欢显示“准备配置windows&#xff0c;请勿关机”这样的一个页面&#xff0c;没有什么大碍&#xff0c;但是如果一直等着的话就要两个小时甚至更久都关不了机&#xff0c;非常…...

    2022/11/19 21:17:00
  42. 正在准备配置请勿关闭计算机,正在准备配置windows请勿关闭计算机时间长了解决教程...

    当电脑出现正在准备配置windows请勿关闭计算机时&#xff0c;一般是您正对windows进行升级&#xff0c;但是这个要是长时间没有反应&#xff0c;我们不能再傻等下去了。可能是电脑出了别的问题了&#xff0c;来看看教程的说法。正在准备配置windows请勿关闭计算机时间长了方法一…...

    2022/11/19 21:16:59
  43. 配置失败还原请勿关闭计算机,配置Windows Update失败,还原更改请勿关闭计算机...

    我们使用电脑的过程中有时会遇到这种情况&#xff0c;当我们打开电脑之后&#xff0c;发现一直停留在一个界面&#xff1a;“配置Windows Update失败&#xff0c;还原更改请勿关闭计算机”&#xff0c;等了许久还是无法进入系统。如果我们遇到此类问题应该如何解决呢&#xff0…...

    2022/11/19 21:16:58
  44. 如何在iPhone上关闭“请勿打扰”

    Apple’s “Do Not Disturb While Driving” is a potentially lifesaving iPhone feature, but it doesn’t always turn on automatically at the appropriate time. For example, you might be a passenger in a moving car, but your iPhone may think you’re the one dri…...

    2022/11/19 21:16:57