鴻蒙OSUniApp開發的商品詳情展示頁面(鴻蒙系統適配版)#三方框架 #Uniapp

使用UniApp開發的商品詳情展示頁面(鴻蒙系統適配版)

前言

隨著移動電商的普及,一個體驗良好的商品詳情頁對于提高用戶轉化率至關重要。本文將分享我在使用UniApp開發商品詳情頁時的實踐經驗,并特別關注如何適配鴻蒙系統,確保在華為設備上也能獲得出色的用戶體驗。

作為一個跨端開發者,我深知要在各類設備上提供一致且優質的體驗并不容易。尤其是國產鴻蒙系統的興起,給我們的開發工作帶來了新的挑戰和機遇。通過本文的分享,希望能幫助更多開發者構建既美觀又高效的商品詳情頁。

需求分析

一個完善的商品詳情頁通常包含以下核心功能:

  1. 商品圖片輪播與預覽
  2. 商品基本信息展示(標題、價格、銷量等)
  3. 規格選擇與庫存展示
  4. 商品詳情(圖文詳情、參數、評價等)
  5. 底部固定購買欄(加入購物車、立即購買等)
  6. 相關推薦商品

在鴻蒙系統上,還需要特別關注以下方面:

  • 手勢操作的流暢性
  • 動效設計符合鴻蒙的設計風格
  • 適配鴻蒙系統特有的API

技術選型

我們的技術棧主要包括:

  • UniApp作為跨端開發框架
  • Vue3 + TypeScript開發核心邏輯
  • SCSS處理樣式
  • uView UI提供基礎組件支持
  • Vuex管理全局狀態
  • 針對鴻蒙系統的特殊處理

項目實現

頁面布局基礎結構

首先,我們來看一下商品詳情頁的基礎結構:

<template><view class="product-detail" :class="{'harmony-container': isHarmonyOS}"><!-- 狀態欄占位 --><view class="status-bar" :style="{ height: statusBarHeight + 'px' }"></view><!-- 自定義導航欄 --><view class="custom-navbar"><view class="left" @click="handleBack"><text class="iconfont icon-back"></text></view><view class="navbar-tabs"><view v-for="(tab, index) in tabs" :key="index"class="tab-item":class="{'active': currentTab === index}"@click="switchTab(index)"><text>{{ tab }}</text></view></view><view class="right"><text class="iconfont icon-more" @click="showMore"></text></view></view><!-- 內容區域 --><scroll-view class="content-scroll"scroll-y:scroll-top="scrollTop"@scroll="handleScroll":show-scrollbar="false":bounce="false":enhanced="isHarmonyOS" :fast-deceleration="isHarmonyOS"><!-- 輪播圖 --><swiper-section :images="product.images" @preview="previewImage"></swiper-section><!-- 商品信息 --><product-info :product="product" :is-harmony="isHarmonyOS"></product-info><!-- 規格選擇 --><spec-section :specs="product.specs" :selected="selectedSpec"@select="selectSpec"></spec-section><!-- 詳情內容 --><detail-section :detail="product.detail":params="product.params":comments="product.comments":current-tab="currentDetailTab"@change-tab="changeDetailTab"></detail-section><!-- 推薦商品 --><recommend-section :products="relatedProducts"></recommend-section></scroll-view><!-- 底部操作欄 --><view class="bottom-actions" :class="{'harmony-bottom': isHarmonyOS}"><view class="action-btn service"><text class="iconfont icon-service"></text><text>客服</text></view><view class="action-btn favorite" @click="toggleFavorite"><text class="iconfont" :class="isFavorite ? 'icon-favorited' : 'icon-favorite'"></text><text>{{ isFavorite ? '已收藏' : '收藏' }}</text></view><view class="action-btn cart" @click="goToCart"><text class="iconfont icon-cart"></text><text>購物車</text><view class="cart-badge" v-if="cartCount > 0">{{ cartCount }}</view></view><view class="action-btn add-to-cart" @click="addToCart">加入購物車</view><view class="action-btn buy-now" @click="buyNow">立即購買</view></view><!-- 規格選擇彈窗 --><spec-popup :visible="specPopupVisible" :product="product":selected="selectedSpec"@close="closeSpecPopup"@confirm="confirmSpec"@select="selectSpec"></spec-popup></view>
</template><script lang="ts">
import { defineComponent, ref, reactive, computed, onMounted, onUnmounted } from 'vue';
import { isHarmonyOS, getStatusBarHeight } from '@/utils/system';
import SwiperSection from './components/SwiperSection.vue';
import ProductInfo from './components/ProductInfo.vue';
import SpecSection from './components/SpecSection.vue';
import DetailSection from './components/DetailSection.vue';
import RecommendSection from './components/RecommendSection.vue';
import SpecPopup from './components/SpecPopup.vue';export default defineComponent({components: {SwiperSection,ProductInfo,SpecSection,DetailSection,RecommendSection,SpecPopup},props: {productId: {type: [String, Number],required: true}},setup(props) {// 狀態變量const product = ref({} as any);const relatedProducts = ref([] as any[]);const isLoading = ref(true);const scrollTop = ref(0);const currentTab = ref(0);const currentDetailTab = ref(0);const statusBarHeight = ref(0);const specPopupVisible = ref(false);const selectedSpec = ref({} as any);const isFavorite = ref(false);const cartCount = ref(0);const isHarmonyOS = ref(false);// Tab選項const tabs = ['商品', '詳情', '評價'];// 檢測是否為鴻蒙系統onMounted(() => {isHarmonyOS.value = isHarmonyOS();statusBarHeight.value = getStatusBarHeight();fetchProductData();});// 獲取商品數據const fetchProductData = async () => {try {isLoading.value = true;// 模擬請求數據setTimeout(() => {// 這里通常是調用API獲取數據product.value = {id: props.productId,title: '2023新款智能手表 多功能運動監測',price: 299.00,originalPrice: 399.00,sales: 1280,stock: 860,images: ['https://example.com/watch1.jpg','https://example.com/watch2.jpg','https://example.com/watch3.jpg',],specs: [{title: '顏色',options: ['黑色', '白色', '藍色']},{title: '尺寸',options: ['42mm', '46mm']}],detail: '<div>這里是商品詳情的HTML內容</div>',params: [{ key: '品牌', value: 'WatchBrand' },{ key: '防水等級', value: 'IP68' },{ key: '電池容量', value: '300mAh' }],comments: [{user: '用戶A',avatar: 'https://example.com/avatar1.jpg',content: '商品很好,手表質量不錯',rating: 5,date: '2023-05-21'}]};// 相關推薦relatedProducts.value = [{id: 101,title: '運動手環',price: 129.00,image: 'https://example.com/band1.jpg'},{id: 102,title: '智能耳機',price: 199.00,image: 'https://example.com/earphone1.jpg'}];isLoading.value = false;}, 1000);} catch (error) {console.error('獲取商品數據失敗', error);isLoading.value = false;}};// 切換Tabconst switchTab = (index: number) => {currentTab.value = index;// 根據Tab計算滾動位置if (index === 0) {scrollTop.value = 0;} else if (index === 1) {scrollTop.value = 800; // 根據實際情況調整} else {scrollTop.value = 1200; // 根據實際情況調整}};// 處理滾動事件const handleScroll = (e: any) => {const scrollPosition = e.detail.scrollTop;// 根據滾動位置自動切換Tabif (scrollPosition < 700) {currentTab.value = 0;} else if (scrollPosition < 1100) {currentTab.value = 1;} else {currentTab.value = 2;}};// 顯示規格選擇彈窗const openSpecPopup = () => {specPopupVisible.value = true;};// 關閉規格選擇彈窗const closeSpecPopup = () => {specPopupVisible.value = false;};// 選擇規格const selectSpec = (spec: any) => {selectedSpec.value = { ...selectedSpec.value, ...spec };};// 確認規格const confirmSpec = () => {// 這里可以檢查是否已選擇完所有規格closeSpecPopup();};// 預覽圖片const previewImage = (index: number) => {uni.previewImage({current: index,urls: product.value.images,// 鴻蒙特殊處理longPressActions: isHarmonyOS.value ? {itemList: ['保存圖片', '分享'],success: function(data) {console.log('選中了第' + (data.tapIndex + 1) + '個按鈕');},fail: function(err) {console.log(err.errMsg);}} : undefined});};// 切換收藏狀態const toggleFavorite = () => {isFavorite.value = !isFavorite.value;// 鴻蒙系統特有的震動反饋if (isHarmonyOS.value) {// #ifdef APP-PLUSif (plus.os.name === 'Android' && plus.device.vendor === 'HUAWEI') {try {plus.device.vibrate(10);} catch (e) {console.error('震動API調用失敗', e);}}// #endif}uni.showToast({title: isFavorite.value ? '已加入收藏' : '已取消收藏',icon: 'none'});};// 前往購物車const goToCart = () => {uni.switchTab({url: '/pages/cart/cart'});};// 加入購物車const addToCart = () => {// 檢查是否已選擇規格if (!selectedSpec.value.顏色 || !selectedSpec.value.尺寸) {openSpecPopup();return;}// 模擬加入購物車操作cartCount.value += 1;uni.showToast({title: '已加入購物車',icon: 'success'});};// 立即購買const buyNow = () => {// 檢查是否已選擇規格if (!selectedSpec.value.顏色 || !selectedSpec.value.尺寸) {openSpecPopup();return;}uni.navigateTo({url: `/pages/order/confirm?productId=${props.productId}&specId=${JSON.stringify(selectedSpec.value)}`});};// 處理返回const handleBack = () => {uni.navigateBack();};// 顯示更多操作const showMore = () => {uni.showActionSheet({itemList: ['分享', '舉報'],success: function(res) {if (res.tapIndex === 0) {// 分享uni.share({provider: 'weixin',scene: 'WXSceneSession',type: 0,title: product.value.title,summary: `限時特惠:¥${product.value.price}`,imageUrl: product.value.images[0],href: `https://example.com/product/${product.value.id}`});} else if (res.tapIndex === 1) {// 舉報uni.navigateTo({url: '/pages/report/report'});}}});};return {product,relatedProducts,isLoading,scrollTop,currentTab,currentDetailTab,tabs,statusBarHeight,specPopupVisible,selectedSpec,isFavorite,cartCount,isHarmonyOS,switchTab,handleScroll,openSpecPopup,closeSpecPopup,selectSpec,confirmSpec,previewImage,toggleFavorite,goToCart,addToCart,buyNow,handleBack,showMore};}
});
</script><style lang="scss">
.product-detail {position: relative;width: 100%;min-height: 100vh;background-color: #f5f5f5;.status-bar {background-color: #ffffff;}.custom-navbar {display: flex;align-items: center;height: 44px;background-color: #ffffff;padding: 0 15px;.left, .right {width: 40px;display: flex;justify-content: center;.iconfont {font-size: 24px;color: #333;}}.navbar-tabs {flex: 1;display: flex;justify-content: center;.tab-item {padding: 0 15px;height: 44px;line-height: 44px;font-size: 15px;color: #666;position: relative;&.active {color: #333;font-weight: bold;&:after {content: '';position: absolute;bottom: 0;left: 15px;right: 15px;height: 2px;background-color: #333;}}}}}.content-scroll {height: calc(100vh - 44px - var(--status-bar-height) - 50px);}.bottom-actions {position: fixed;left: 0;right: 0;bottom: 0;height: 50px;background-color: #fff;display: flex;align-items: center;border-top: 1px solid #eee;padding-bottom: env(safe-area-inset-bottom);.action-btn {height: 50px;display: flex;flex-direction: column;justify-content: center;align-items: center;font-size: 12px;color: #666;position: relative;.iconfont {font-size: 18px;margin-bottom: 2px;}&.service, &.favorite, &.cart {flex: 1;}&.add-to-cart, &.buy-now {flex: 2;font-size: 14px;color: #fff;}&.add-to-cart {background-color: #ff9500;}&.buy-now {background-color: #ff3b30;}.cart-badge {position: absolute;top: 2px;right: 50%;transform: translateX(6px);background-color: #ff3b30;color: #fff;font-size: 10px;min-width: 16px;height: 16px;line-height: 16px;text-align: center;border-radius: 8px;padding: 0 4px;}}}
}/* 鴻蒙系統特殊樣式 */
.harmony-container {.custom-navbar {.navbar-tabs {.tab-item {&.active {&:after {background-color: #0078ff;height: 3px;border-radius: 1.5px;}}}}}.bottom-actions {&.harmony-bottom {border-top: none;box-shadow: 0 -3px 10px rgba(0, 0, 0, 0.05);.action-btn {&.add-to-cart {background: linear-gradient(135deg, #ff9500, #ff7000);border-radius: 22px;margin: 4px 6px;height: 42px;}&.buy-now {background: linear-gradient(135deg, #ff3b30, #ff2020);border-radius: 22px;margin: 4px 6px;height: 42px;}}}}
}
</style>

輪播組件的實現

輪播圖是商品詳情頁的核心組件,下面是輪播組件的實現:

<!-- components/SwiperSection.vue -->
<template><view class="swiper-section" :class="{'harmony-swiper': isHarmonyOS}"><swiper class="swiper" circular :indicator-dots="true" :autoplay="true" :interval="5000" indicator-active-color="#fff"indicator-color="rgba(255, 255, 255, 0.3)"><swiper-item v-for="(image, index) in images" :key="index" @click="handlePreview(index)"><image class="swiper-image" :src="image" mode="aspectFill"></image></swiper-item></swiper></view>
</template><script lang="ts">
import { defineComponent, onMounted, ref } from 'vue';
import { isHarmonyOS } from '@/utils/system';export default defineComponent({props: {images: {type: Array,default: () => []}},emits: ['preview'],setup(props, { emit }) {const isHarmonyOS = ref(false);onMounted(() => {isHarmonyOS.value = isHarmonyOS();});const handlePreview = (index: number) => {emit('preview', index);};return {isHarmonyOS,handlePreview};}
});
</script><style lang="scss">
.swiper-section {width: 100%;.swiper {width: 100%;height: 750rpx;.swiper-image {width: 100%;height: 100%;}}
}/* 鴻蒙系統特殊樣式 */
.harmony-swiper {.swiper {border-radius: 0 0 20rpx 20rpx;overflow: hidden;}
}
</style>

商品信息組件

接下來是商品信息展示組件:

<!-- components/ProductInfo.vue -->
<template><view class="product-info" :class="{'harmony-card': isHarmony}"><view class="price-section"><text class="price">¥{{ product.price.toFixed(2) }}</text><text class="original-price">¥{{ product.originalPrice.toFixed(2) }}</text><view class="discount" v-if="discountRate > 0">{{ discountRate }}折</view></view><view class="title-section"><text class="title">{{ product.title }}</text></view><view class="sales-section"><text class="sales">銷量 {{ product.sales }}</text><text class="divider">|</text><text class="stock">庫存 {{ product.stock }}</text></view></view>
</template><script lang="ts">
import { defineComponent, computed } from 'vue';export default defineComponent({props: {product: {type: Object,required: true},isHarmony: {type: Boolean,default: false}},setup(props) {// 計算折扣率const discountRate = computed(() => {if (!props.product.originalPrice || props.product.originalPrice <= 0) {return 0;}return Math.floor((props.product.price / props.product.originalPrice) * 10);});return {discountRate};}
});
</script><style lang="scss">
.product-info {background-color: #fff;padding: 20rpx;margin-top: 10rpx;.price-section {display: flex;align-items: center;.price {font-size: 36rpx;color: #ff3b30;font-weight: bold;}.original-price {font-size: 24rpx;color: #999;text-decoration: line-through;margin-left: 10rpx;}.discount {font-size: 20rpx;color: #fff;background-color: #ff3b30;padding: 2rpx 10rpx;border-radius: 10rpx;margin-left: 10rpx;}}.title-section {margin-top: 10rpx;.title {font-size: 28rpx;color: #333;line-height: 1.4;}}.sales-section {margin-top: 10rpx;display: flex;align-items: center;.sales, .stock {font-size: 24rpx;color: #999;}.divider {margin: 0 10rpx;color: #eee;}}
}/* 鴻蒙系統特殊樣式 */
.harmony-card {border-radius: 20rpx;margin: 20rpx;box-shadow: 0 4rpx 12rpx rgba(0, 0, 0, 0.05);.price-section {.price {background: linear-gradient(to right, #ff3b30, #ff6b30);-webkit-background-clip: text;color: transparent;font-family: 'HarmonyOS Sans', sans-serif;}.discount {background: linear-gradient(to right, #ff3b30, #ff6b30);border-radius: 12rpx;}}
}
</style>

鴻蒙系統適配關鍵點

在為鴻蒙系統適配我們的商品詳情頁時,以下幾點值得特別關注:

1. 檢測鴻蒙系統

首先,我們需要一個工具函數來檢測當前設備是否運行鴻蒙系統:

// utils/system.ts/*** 檢測當前設備是否為鴻蒙系統*/
export function isHarmonyOS(): boolean {// #ifdef APP-PLUSconst systemInfo = uni.getSystemInfoSync();const systemName = systemInfo.osName || '';const systemVersion = systemInfo.osVersion || '';// 鴻蒙系統識別return systemName.toLowerCase().includes('harmony') || (systemName === 'android' && systemVersion.includes('harmony'));// #endifreturn false;
}/*** 獲取狀態欄高度*/
export function getStatusBarHeight(): number {const systemInfo = uni.getSystemInfoSync();return systemInfo.statusBarHeight || 20;
}/*** 鴻蒙系統UI適配*/
export function adaptHarmonyUI(): void {// #ifdef APP-PLUSif (!isHarmonyOS()) return;try {// 全局設置圓角尺寸變量document.documentElement.style.setProperty('--harmony-border-radius', '16rpx');// 設置字體家族document.documentElement.style.setProperty('--harmony-font-family', 'HarmonyOS Sans, sans-serif');// 設置顏色變量document.documentElement.style.setProperty('--harmony-primary-color', '#0078ff');document.documentElement.style.setProperty('--harmony-gradient-start', '#ff3b30');document.documentElement.style.setProperty('--harmony-gradient-end', '#ff6b30');} catch (e) {console.error('適配鴻蒙UI失敗', e);}// #endif
}

2. UI設計適配

鴻蒙系統有其獨特的設計語言,我們需要對UI進行相應調整:

  1. 圓角設計:鴻蒙系統的設計語言偏向于使用較大的圓角,我們可以增加卡片、按鈕等元素的圓角值
  2. 漸變色:鴻蒙UI使用較多漸變色,尤其是按鈕和強調元素
  3. 陰影效果:輕微的陰影可以增強層次感
  4. 字體適配:使用鴻蒙系統的HarmonyOS Sans字體

3. 性能優化

鴻蒙系統對于動畫和滾動性能有較高的要求:

  1. 滾動優化
<scroll-view :enhanced="isHarmonyOS" :fast-deceleration="isHarmonyOS":bounces="false"
>
  1. 圖片懶加載
<image lazy-load :fade-show="isHarmonyOS" :webp="isHarmonyOS"mode="aspectFill"src="..."
></image>
  1. 動畫優化:使用transform代替position變化,并開啟硬件加速
.animated-element {transform: translateZ(0);will-change: transform;
}

4. 手勢交互

鴻蒙系統對手勢交互有獨特的處理,我們可以利用這一點增強用戶體驗:

// 雙指縮放預覽
const handleImageZoom = (e) => {if (!isHarmonyOS.value) return;// #ifdef APP-PLUSif (e.touches.length === 2) {const touch1 = e.touches[0];const touch2 = e.touches[1];// 計算兩指距離const distance = Math.sqrt(Math.pow(touch2.pageX - touch1.pageX, 2) + Math.pow(touch2.pageY - touch1.pageY, 2));// 根據距離變化處理縮放if (!lastDistance.value) {lastDistance.value = distance;return;}const scale = distance / lastDistance.value;if (scale > 1.05 || scale < 0.95) {// 觸發縮放操作handleZoom(scale > 1 ? 'in' : 'out');lastDistance.value = distance;}}// #endif
};

實際應用案例

我最近負責了一個電商App的商品詳情頁改版,特別是為了適配華為新發布的鴻蒙系統設備。下面分享幾個在實際項目中的經驗:

案例一:圖片瀏覽優化

華為旗艦機通常有出色的屏幕,用戶喜歡放大查看商品細節。我們通過以下方式優化了圖片瀏覽體驗:

  1. 使用高清圖片資源,但配合懶加載減少流量消耗
  2. 添加雙指縮放功能,并優化縮放流暢度
  3. 長按圖片提供保存、分享選項

效果是華為設備上的用戶停留時間增加了15%,放大查看圖片的次數提升了23%。

案例二:規格選擇交互優化

由于鴻蒙系統對動畫效果的支持較好,我們對規格選擇的交互做了改進:

  1. 彈出規格選擇面板增加了平滑的過渡動畫
  2. 選擇規格時添加微小的震動反饋
  3. 調整按鈕樣式為鴻蒙系統推薦的樣式

這些小改進帶來了明顯的體驗提升,在鴻蒙設備上的轉化率提高了約8%。

總結

通過本文,我們詳細探討了如何使用UniApp開發一個適配鴻蒙系統的商品詳情頁。從基礎布局到組件實現,從UI設計到性能優化,我們全方位考慮了如何在鴻蒙系統上提供最佳的用戶體驗。

隨著鴻蒙系統的普及,更好的適配這一系統將成為應用成功的關鍵因素之一。通過關注系統特性、遵循設計規范以及針對性的優化,我們可以為用戶提供流暢、美觀且易用的商品詳情頁體驗。

希望本文對你在UniApp開發商品詳情頁以及鴻蒙系統適配方面有所幫助。如有任何問題或經驗分享,歡迎在評論區留言交流!

參考資源

  1. UniApp官方文檔
  2. HarmonyOS設計指南
  3. Vue3官方文檔
  4. ScrollView性能優化
  5. 華為原子化服務集成指南

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/81590.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/81590.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/81590.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

redis中key的過期和淘汰

一、過期&#xff08;redis主動刪除&#xff09; 設置了ttl過期時間的key&#xff0c;在ttl時間到的時候redis會刪除過期的key。但是redis是惰性過期。惰性過期&#xff1a;redis并不會立即刪除過期的key&#xff0c;而是會在獲取key的時候判斷key是否過期&#xff0c;如果發現…

Qwen3 - 0.6B與Bert文本分類實驗:深度見解與性能剖析

Changelog [25/04/28] 新增Qwen3-0.6B在Ag_news數據集Zero-Shot的效果。新增Qwen3-0.6B線性層分類方法的效果。調整Bert訓練參數&#xff08;epoch、eval_steps&#xff09;&#xff0c;以實現更細致的觀察&#xff0c;避免嚴重過擬合的情況。 TODO&#xff1a; 利用Qwen3-0.6…

HTML應用指南:利用POST請求獲取全國京東快遞服務網點位置信息

京東快遞作為中國領先的智能供應鏈與綜合物流服務提供商,自2007年成立以來,始終致力于通過技術創新與高效運營,為客戶提供安全、可靠、快速的物流解決方案。京東快遞依托京東集團的強大資源支持,憑借其自營倉儲、干線運輸、末端配送一體化的物流網絡,在激烈的市場競爭中脫…

js中eval的用法風險與替代方案全面解析

1. 前言 在 JavaScript 里&#xff0c;eval是一個既強大又充滿爭議的函數。它為開發者提供了一種動態執行字符串代碼的能力&#xff0c;在某些特定場景下能發揮出獨特的作用。然而&#xff0c;由于其特殊的運行機制&#xff0c;也帶來了諸多潛在的風險和問題。本文將深入探討e…

antd樹結構

一、場景實現 1、左側為查詢條件&#xff0c;查詢條件為樹和多選。點擊查詢條件在右上方顯示搜索條件的內容&#xff0c;右上方查詢條件 tag 刪除后&#xff0c;左側條件也對應刪除。 2、樹結構&#xff1a;默認第一層下所有節點都展開。 1、頁面效果圖 2、查詢效果圖 二、前端…

Jenkins 安裝與配置指南

Jenkins 安裝與配置指南&#xff08;MD 示例&#xff09; markdown Jenkins 安裝與配置指南 ## 一、環境準備 1. **系統要求** - 操作系統&#xff1a;Linux/macOS/Windows - Java 版本&#xff1a;JDK 8 或更高&#xff08;建議 JDK 11&#xff09;2. **安裝方式** - **L…

[Linux性能優化] 線程卡頓優化。Linux加入USB(HID)熱插拔線程占用CPU優化。Linux中CPU使用率過高優化

文章目錄 [Linux性能優化] 線程卡頓優化。0、省流版本一、問題定位&#xff1a;CPU 資源分析二、線程卡頓現場復現線程優化前圖片 三、線程卡頓優化方向1.如果是輪詢方式2.如果是事件驅動方式 四、修改方式線程優化后圖片 [Linux性能優化] 線程卡頓優化。 0、省流版本 如果采…

ip與mac-數據包傳輸過程學習

你管這破玩意叫網絡&#xff1f; 內容來源于飛天閃客&#xff0c;以前沒有學習過網絡的相關基礎知識&#xff0c;只會去瞎設置&#xff0c;現在終于是弄明白了。 多臺電腦之間想要通信&#xff0c;可以直接通過一條網線進行連接。但是隨著網線的增加&#xff0c;這個就會比較…

數值分析知識重構

數值分析知識重構 一 Question 請構造一下數值分析中的誤差概念以及每一個具體數值方法的誤差是如何估計的&#xff1f; 二 Question 已知 n 1 n1 n1個數據點 ( x i , y i ) , i 0 , 1 , ? , n (x_i,y_i),i0,1,\cdots,n (xi?,yi?),i0,1,?,n,請使用多種方法建立數據之間…

使用 Qt QGraphicsView/QGraphicsScene 繪制色輪

使用 Qt QGraphicsView/QGraphicsScene 繪制色輪 本文介紹如何在 Qt 中利用 QGraphicsView 和 QGraphicsScene 實現基礎圓形繪制&#xff0c;以及進階的色輪&#xff08;Color Wheel&#xff09;效果。 色輪是色彩選擇器的常見控件&#xff0c;廣泛應用于圖形設計、繪畫和 UI …

移除鏈表元素數據結構oj題(力扣題206)

目錄 題目描述&#xff1a; 題目解讀&#xff08;分析&#xff09; 解決代碼 題目描述&#xff1a; 給你一個鏈表的頭節點 head 和一個整數 val &#xff0c;請你刪除鏈表中所有滿足 Node.val val 的節點&#xff0c;并返回 新的頭節點 。 題目解讀&#xff08;分析&#…

GLPK(GNU線性規劃工具包)中建模語言MathProg的使用

GNU MathProg是一種用于描述線性數學規劃模型的建模語言。用GNU MathProg語言編寫的模型描述由一組語句和數據塊組成。 在MathProg中&#xff0c;模型以集合、參數、變量、約束和目標(sets, parameters, variables, constraints, objectives稱為模型對象)的形式進行描述。 在Ma…

《Python星球日記》 第77天:模型部署與總結

名人說:路漫漫其修遠兮,吾將上下而求索。—— 屈原《離騷》 創作者:Code_流蘇(CSDN)(一個喜歡古詩詞和編程的Coder??) 目錄 一、模型部署技術1. 模型文件導出不同模型格式對比2. 使用Flask構建RESTful API3. 使用FastAPI構建高性能API4. 部署優化與最佳實踐二、部署架構…

【JavaWeb】MySQL(準備篇)

1 MySQL安裝 1.1 解壓 下載完成后我們得到的是一個壓縮包&#xff08;所有文件均在文末安裝包中&#xff09;&#xff0c;將其解壓&#xff0c;我們就可以得到MySQL 8.0.34 的軟件本體了(就是一個文件夾)&#xff0c;我們可以把它放在你想安裝的位置 。 1.2 配置 1.2.1 配置…

國產數據庫工具突圍:SQLynx如何解決Navicat的三大痛點?深度體驗報告

引言&#xff1a;Navicat的"中國困境" 當開發者面對達夢數據庫的存儲過程調試&#xff0c;或是在人大金倉中處理復雜查詢時&#xff0c;Navicat突然變得力不從心——這不是個例。 真實痛點&#xff1a;某政務系統遷移至OceanBase后&#xff0c;開發團隊發現Navicat無…

ETL數據集成產品選型需要關注哪些方面?

ETL&#xff08;Extract&#xff0c;Transform&#xff0c;Load&#xff09;工具作為數據倉庫和數據分析流程中的關鍵環節&#xff0c;其選型對于企業的數據戰略實施有著深遠的影響。谷云科技在 ETL 領域耕耘多年&#xff0c;通過自身產品的實踐應用&#xff0c;對 ETL 產品選型…

數據結構實驗10.1:內部排序的基本運算

文章目錄 一&#xff0c;實驗目的二&#xff0c;實驗內容1. 數據生成與初始化2. 排序算法實現&#xff08;1&#xff09;直接插入排序&#xff08;2&#xff09;二分插入排序&#xff08;3&#xff09;希爾排序&#xff08;4&#xff09;冒泡排序&#xff08;5&#xff09;快速…

從秒開到絲滑體驗!WebAssembly助力ZKmall商城重構 B2B2C 商城性能基線

在 B2B2C 電商領域&#xff0c;用戶對頁面加載速度與交互流暢度的要求日益嚴苛。傳統 Web 技術在處理復雜業務邏輯、海量數據渲染時&#xff0c;常出現卡頓、延遲等問題&#xff0c;導致用戶流失。ZKmall 商城創新性地引入 WebAssembly&#xff08;簡稱 Wasm&#xff09;技術&a…

FD+Mysql的Insert時的字段賦值亂碼問題

方法一 FDQuery4.SQL.Text : INSERT INTO 信息表 (中心, 分組) values(:中心,:分組); FDQuery4.Params[0].DataType : ftWideString; //必須加這個數據類型的定義&#xff0c;否則會有亂碼 FDQuery4.Params[1].DataType : ftWideString; //ftstring就不行&#xff0c;必須是…

vue2.0 組件生命周期

個人簡介 &#x1f468;?&#x1f4bb;?個人主頁&#xff1a; 魔術師 &#x1f4d6;學習方向&#xff1a; 主攻前端方向&#xff0c;正逐漸往全棧發展 &#x1f6b4;個人狀態&#xff1a; 研發工程師&#xff0c;現效力于政務服務網事業 &#x1f1e8;&#x1f1f3;人生格言&…