uniapp 跨端开发

一、创建uniapp项目

1. 项目架构

在这里插入图片描述

2. 初始化项目

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. pages.json 和 tabBar 案例

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. uni-app和原生小程序开发区别

在这里插入图片描述

5. 用命令行创建uni-app项目

官网链接:https://uniapp.dcloud.net.cn/quickstart-cli.html#创建uni-app
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

6. 用vscode开发uni-app

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在uni-app中只有manifest.json和pages.json这两个json文件允许写注释,按如下添加后,这两个文件的注释就不报错了
在这里插入图片描述

7. 拉取项目模板

小兔鲜儿
在这里插入图片描述
这里填入appid
在这里插入图片描述
项目模板中已配置好了下面的第8、第9点

8. 额外:项目基础配置统一代码风格

  • 安装 eslint + prettier
pnpm i -D eslint prettier eslint-plugin-vue @vue/eslint-config-prettier @vue/eslint-config-typescript @rushstack/eslint-patch @vue/tsconfig
  • 新建 .eslintrc.cjs 文件,添加以下 eslint 配置
/* eslint-env node */
require('@rushstack/eslint-patch/modern-module-resolution')module.exports = {root: true,extends: ['plugin:vue/vue3-essential','eslint:recommended','@vue/eslint-config-typescript','@vue/eslint-config-prettier',],// 小程序全局变量globals: {uni: true,wx: true,WechatMiniprogram: true,getCurrentPages: true,getApp: true,UniApp: true,UniHelper: true,App: true,Page: true,Component: true,AnyObject: true,},parserOptions: {ecmaVersion: 'latest',},rules: {'prettier/prettier': ['warn',{singleQuote: true,semi: false,printWidth: 100,trailingComma: 'all',endOfLine: 'auto',},],'vue/multi-word-component-names': ['off'],'vue/no-setup-props-destructure': ['off'],'vue/no-deprecated-html-element-is': ['off'],'@typescript-eslint/no-unused-vars': ['off'],},
}
  • 配置 package.json
{"script": {// ... 省略 ..."lint": "eslint . --ext .vue,.js,.ts --fix --ignore-path .gitignore"}
}
  • 运行
pnpm lint

::: tip 温馨提示
到此,你已完成 eslint + prettier 的配置。
:::

9. 额外:Git 工作流规范

  • 安装并初始化 husky

::: code-group

pnpm dlx husky-init
npx husky-init

:::

  • 安装 lint-staged
pnpm i -D lint-staged
  • 配置 package.json
{"script": {// ... 省略 ...},"lint-staged": {"*.{vue,ts,js}": ["eslint --fix"]}
}
  • 修改 .husky/pre-commit 文件
npm test   // [!code --]
npm run lint-staged     // [!code ++]

::: tip 温馨提示
到此,你已完成 husky + lint-staged 的配置。
:::

二、基础架构

1. 引入uni-ui

ts类型如果之前已经配置过了则忽略
在这里插入图片描述

2. 小程序端 Pinia 持久化

在这里插入图片描述
配置示例
在这里插入图片描述
在这里插入图片描述

3. 请求封装

1. 添加请求和上传文件拦截器

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

2. 封装promise请求函数

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
http.ts 添加 http 请求函数及类型

import { useMemberStore } from '@/stores'const baseURL = 'https://pcapi-xiaotuxian-front-devtest.itheima.net'// 拦截器
const httpInterceptor = {// 拦截前触发invoke(options: UniApp.RequestOptions) {// 1. 非 http 开头需拼接地址if (!options.url.startsWith('http')) {options.url = baseURL + options.url}// 2. 请求超时, 默认 60soptions.timeout = 10000// 3. 添加小程序端请求头标识options.header = {...options.header,'source-client': 'miniapp',}// 4. 添加 token 请求头标识const memberStore = useMemberStore()const token = memberStore.profile?.tokenif (token) {options.header.Authorization = token}console.log(24, options)},
}
uni.addInterceptor('request', httpInterceptor)
uni.addInterceptor('uploadFile', httpInterceptor)/*** 请求函数* @param  UniApp.RequestOptions* @returns Promise*  1. 返回 Promise 对象*  2. 获取数据成功*    2.1 提取核心数据 res.data*    2.2 添加类型,支持泛型*  3. 获取数据失败*    3.1 401错误  -> 清理用户信息,跳转到登录页*    3.2 其他错误 -> 根据后端错误信息轻提示*    3.3 网络错误 -> 提示用户换网络*/
type Data<T> = {code: stringmsg: stringresult: T
}
// 2.2 添加类型,支持泛型
export const http = <T>(options: UniApp.RequestOptions) => {// 1. 返回 Promise 对象return new Promise<Data<T>>((resolve, reject) => {uni.request({...options,// 响应成功success(res) {// 状态码 2xx, axios 就是这样设计的if (res.statusCode >= 200 && res.statusCode < 300) {// 2.1 提取核心数据 res.dataresolve(res.data as Data<T>)} else if (res.statusCode === 401) {// 401错误  -> 清理用户信息,跳转到登录页const memberStore = useMemberStore()memberStore.clearProfile()uni.navigateTo({ url: '/pages/login/login' })reject(res)} else {// 其他错误 -> 根据后端错误信息轻提示uni.showToast({icon: 'none',title: (res.data as Data<T>).msg || '请求错误',})reject(res)}},// 响应失败fail(err) {uni.showToast({icon: 'none',title: '网络错误,换个网络试试',})reject(err)},})})
}

三、项目首页

1. 自定义导航

在这里插入图片描述
样式适配-预留安全区域
在这里插入图片描述

2. 通用轮播图组件

通用组件自动导入
在这里插入图片描述
配置自动导入
在这里插入图片描述

添加组件类型声明:目前添加组件声明后没效果
在这里插入图片描述
轮播图指示点:非空断言
在这里插入图片描述
在这里插入图片描述
轮播图接口数据类型
在这里插入图片描述
页面加载的生命周期onLoad需要从@dcloudio/uni-app中引入
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 首页分类组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 首页热门推荐组件

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 首页猜你喜欢组件

在这里插入图片描述
多处会使用到猜你喜欢组件,所以样式及数据请求都放到组件内部,组件defineExpose暴露出方法供父组件调用
在这里插入图片描述
在这里插入图片描述
typeof XtxGuess 拿到的是组件的类型,InstanceType拿到的是组件的实例类型
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
由于类型PageParams中的page是可选的,下面pageParams.page会报错提示page可能未定义,解决办法是如下加上Required,将可选参数变成必填
在这里插入图片描述

在这里插入图片描述

6. 首页下拉刷新

refresher-enabled: 开启自定义下拉刷新,会出现对应的动画;
refresherrefresh 下拉刷新回调
在这里插入图片描述
在这里插入图片描述
下拉刷新开始,先重置猜你喜欢组件数据
在这里插入图片描述

7. 首页骨架屏

在这里插入图片描述
在这里插入图片描述
生成骨架屏,把html和样式抽到PageSkeleton组件,删除原生的注释部分、删除导航部分,只保留滚动部分
在这里插入图片描述

四、热门推荐

1. 动态设置热门推荐标题

在这里插入图片描述
在这里插入图片描述

2. 获取热门推荐数据

交叉类型: PageParams & { subType?: string }
在这里插入图片描述

3. 热门推荐类型定义

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

4. 热门推荐页面渲染和tab交互

在这里插入图片描述
在这里插入图片描述

5. 热门推荐分页加载

在这里插入图片描述
分页加载的条件判断
扩展字段;环境变量判断
在这里插入图片描述

五、商品分类

1. 商品分类轮播图

在这里插入图片描述

2. 渲染一级分类和Tab交互

在这里插入图片描述
在这里插入图片描述

3. 二级分类和商品渲染

在这里插入图片描述

4. 商品分类骨架屏

在这里插入图片描述
把骨架屏样式放到.vue文件的style中,把html和css中的注释删除,解决html中的报红

在这里插入图片描述

六、商品详情

1. 商品详情接口请求

defineProps接收页面传参
在这里插入图片描述

2. 详情页面渲染

在这里插入图片描述

3. 商品详情轮播图渲染

在这里插入图片描述

4. 商品详情弹出层

在这里插入图片描述
弹出层交互
联合类型;用typeof获取类型;子组件给父组件通信
在这里插入图片描述

七、登录模块

1. 小程序快捷登录

在这里插入图片描述
获取登录凭证code:https://developers.weixin.qq.com/miniprogram/dev/api/open-api/login/wx.login.html
获取手机号:https://developers.weixin.qq.com/miniprogram/dev/framework/open-ability/getPhoneNumber.html
在这里插入图片描述

调用后台登录接口成功示例
在这里插入图片描述
模拟快捷登录
在这里插入图片描述

2. 保存登录信息

如果这里不用延时,登录成功的提示就看不见了,因为switchTab()会自动关闭当前页面所有内容并跳转到 tabBar 页面
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 会员信息渲染

在这里插入图片描述

4. 会员信息-猜你喜欢部分抽离成组合式函数

并复用到首页
在这里插入图片描述

5. 会员中心-设置页分包和预下载

在这里插入图片描述

6. 会员中心-退出登录

在这里插入图片描述

7. 会员中心-个人信息页

在这里插入图片描述
分包、自定义导航
在这里插入图片描述
个人信息页接口请求及数据类型
在这里插入图片描述
在这里插入图片描述
修改用户头像
uni.chooseMedia 调用拍照/本地相册
uni.uploadFile 上传文件,url为后端接口地址
在这里插入图片描述
修改用户昵称
v-model处去掉非空断言,定义profile时改用as 断言
在这里插入图片描述
更新Store信息
在这里插入图片描述
直接修改单个属性,不调用setProfile
在这里插入图片描述
code 数组的类型和长度都确定了(类型 [string, string, string],元组),这里定义fullLocationCode得定义成如下
在这里插入图片描述
修改性别
在这里插入图片描述
修改生日
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

八、地址模块

1. 动态设置标题

在这里插入图片描述
分包规则里置空
在这里插入图片描述

2. 新建地址

在这里插入图片描述

3. 地址列表

在onShow页面每次显示的钩子函数中调用(新增返回列表也要请求)
在这里插入图片描述
修改地址-回显
在这里插入图片描述修改-保存地址
在这里插入图片描述

4. 地址表单校验

在这里插入图片描述
在这里插入图片描述

5. 删除地址

uni-swipe-action 滑动操作组件
在这里插入图片描述

九、SKU模块

1. SKU插件

SKU算法:https://juejin.cn/post/7002746459456176158
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 渲染商品信息

在这里插入图片描述

打开弹窗交互-修改按钮模式

枚举按钮模式
在这里插入图片描述

选中值处理

从SKU组件内部获取选中值,绑定到商品信息页
在这里插入图片描述

3. 加入购物车

在这里插入图片描述

十、购物车模块

1. 购物车列表渲染

在这里插入图片描述
uni-swipe-action组件无法渲染,把@dcloudio/uni-ui从1.5.8降级到"@dcloudio/uni-ui": “1.4.23”

2. 删除购物车商品

在这里插入图片描述

3. 修改单品数量

在这里插入图片描述

4. 修改选中状态

在这里插入图片描述

5. 底部结算信息

在这里插入图片描述

6. 两个购物车页面

在这里插入图片描述

十一、订单模块

1. 填写订单-基本信息渲染

在这里插入图片描述

2. 填写订单-收货地址

在这里插入图片描述

3. 填写订单-立即购买

查看页面参数
在这里插入图片描述
在这里插入图片描述

4. 填写订单-提交订单

在这里插入图片描述
添加编译模式
在这里插入图片描述

十二、订单详情

1. 自定义导航栏交互

获取当前页面栈集合 getCurrentPages()
小程序滚动驱动动画
在页面渲染完成钩子onReady中调用
在这里插入图片描述

2.订单状态渲染

在这里插入图片描述

在这里插入图片描述

3. 待付款倒计时

uni-countdown组件
在这里插入图片描述
控制台报错uni-countdown.js被无依赖过滤,导致无法显示该组件,如下设置可解决
在这里插入图片描述

4. 订单支付

发起微信支付wx.requestPayment
关闭当前页然后跳转 uni.redirectTo
在这里插入图片描述

5. 订单发货

在这里插入图片描述

6. 确认收货

在这里插入图片描述

7. 订单物流渲染

在这里插入图片描述

8. 删除订单

在这里插入图片描述

十三、订单列表

1. Tabs滑动切换

swiper的current绑定activeIndex
在这里插入图片描述
Tabs传参高亮
在这里插入图片描述

2. 订单列表渲染

在这里插入图片描述
订单列表抽成了一个组件,请求列表接口在组件挂载生命周期onMounted中调用
在这里插入图片描述

3. 订单列表订单支付

这里更新订单状态,没有刷新接口而是前端查找对应数据修改状态
在这里插入图片描述

十四、项目打包

1.打包上传

在这里插入图片描述

2.网页端 pnpm dev:h5 开发调试

首页轮播图、商品详情图宽高有问题,没有自适应:首页轮播图 :host选择器在h5端不生效,修改如下
在这里插入图片描述
商品详情图宽高有问题,因为图片上的mode="aspectFill"没生效,加上image类:宽高100%
在这里插入图片描述
调用微信自有能力的地方都要修改,比如以wx.开头的都加上条件判断 #ifdef MP-WEIXIN #endif


搜索包含open-type的按钮,凡是调用微信能力的地方都加条件判断,注意路由跳转在h5是支持的,不需要改
在这里插入图片描述

在这里插入图片描述

3. 网页端打包 pnpm build:h5

build/h5/index.html 预览报错
在这里插入图片描述
原因是这里的路径是根路径
在这里插入图片描述
修改如下,加如下配置重新执行pnpm build:h5打包

在这里插入图片描述
在这里插入图片描述

4. android app 端预览及调试

用Hbuilder X 打开项目,按如下操作
在这里插入图片描述
注意:华为mate 40 pro USB选项选择MIDI
在这里插入图片描述

项目中的依赖@dcloudio/uni-app 与 Hbuilder X 版本不一致
在这里插入图片描述
复制如下命令,改成与Hbuilder X 一致的版本:npx @dcloudio/uvm@latest 4.7.5

在这里插入图片描述
在终端执行
在这里插入图片描述
重新运行
在这里插入图片描述

5. Android app 打正式包(云打包)

在这里插入图片描述

在HbuilderX中,打开manifest,获取AppId
在这里插入图片描述

在dcloud开发中心生成证书 https://dev.dcloud.net.cn/pages/app/list
在这里插入图片描述

5. IOS端预览调试打包

在这里插入图片描述

十五、跨端兼容样式

在这里插入图片描述

1. 通配符选择器在小程序端不生效

在这里插入图片描述

2. 页面视口差异导致

去结算部分,如果定位的bottom写0,在小程序端没问题,在h5端就会被下面的tabbar覆盖住,所以这里用的uni-app提供的内置css变量–window-bottom
在这里插入图片描述
在这里插入图片描述

3. h5端单页面应用,默认开启了样式隔离scoped

导致首页骨架屏样式错乱,解决办法把首页各个部分的样式抽离出来,在各部分及骨架屏组件中单独引入
在这里插入图片描述
注意下面的XtxSwiper.css改成.scss,引入的时候也改成.scss,否则小程序端会报错

在这里插入图片描述
在这里插入图片描述

4. navigator组件在h5端渲染包裹了一层a标签

导致样式错乱
在这里插入图片描述
小程序端没有
在这里插入图片描述
解决办法:加render-link:false
在这里插入图片描述

5. app端没有渲染un-page-body

导致app端display:flex;没生效,scroll-view高度有问题,滚动的时候把顶部固定部分滑走了;
app端外层是id=app的容器
在这里插入图片描述
解决:
在这里插入图片描述

十六、跨端组件兼容

1. button type=open-type一些能力

在这里插入图片描述
只有小程序支持
在这里插入图片描述

2. navigator open-type=navigate,在h5及app端会多渲染一层a标签

在这里插入图片描述

在这里插入图片描述
解决:选中类名,再设置一次flex: 1
在这里插入图片描述

十七、跨端JS API兼容

上传图片api,小程序用uni.chooseMedia,app和h5端使用uni.chooseImage
在这里插入图片描述

十八、uniClound 云开发

1. 准备工作

在这里插入图片描述

2. 完成城市选择

picker mode=region在app和h5端不支持,需要换成uni-data-picker,城市数据由云端提供
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
解决如下
在这里插入图片描述
加条件判断,覆盖默认样式
在这里插入图片描述

在这里插入图片描述
解决:加上clear-icon=“false”
另外:修改时无法回显,加上v-model这句
在这里插入图片描述

在h5端,地址列表点击修改先跳转修改页瞬间有返回上一页了,解决:加上@tap.prevent
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/94309.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/94309.shtml

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

相关文章

区块链支付技术的核心原理

区块链支付利用分布式账本技术&#xff08;DLT&#xff09;实现点对点的价值转移&#xff0c;无需传统银行或支付网关的中介。核心特点是去中心化、透明、可追溯。• 基本流程&#xff1a;1. 用户发起交易&#xff1a;通过加密货币钱包发送支付请求&#xff08;例如用ETH支付&a…

linux中 多进程 导致cuda错误的问题解决

问题总结与解决方案 核心问题 在使用 Linux 系统时&#xff0c;多进程并行计算中加载模型到 GPU 时出现错误&#xff1a;_MODEL SentenceTransformer( model_path, device "cuda" if torch.cuda.is_available() else "cpu" )根本原因&#xff1a; CUDA 上…

智能感知的新入口:AIGC 与低延迟视频通路的深度融合

✳️ 引言&#xff1a;AIGC&#xff0c;正在重构视觉智能的“生成逻辑” AI生成内容&#xff08;AIGC&#xff09;正在从“内容创作工具”跃升为计算机视觉系统的新引擎。它不再只是“文生图”、“图生文”的演示技术&#xff0c;而是实实在在地改变着我们构建、处理和理解视觉…

Ubuntu 内网多台服务器时间同步方案(适用于临时能上外网的环境)

哎&#xff0c;最近项目是运行在内网环境下的&#xff0c;出现了由于时间不同步导致的bug。一般来讲&#xff0c;几台服务器的时间不一致&#xff0c;会带来很多问题&#xff0c;比如日志时间对不上、分布式服务出现异常&#xff0c;等等。项目上现在有三台服务器&#xff0c;其…

延长电池寿命的低Iq技术

本文章是笔者整理的备忘笔记。希望在帮助自己温习避免遗忘的同时&#xff0c;也能帮助其他需要参考的朋友。如有谬误&#xff0c;欢迎大家进行指正。一、概述随着电池供电型应用的激增&#xff0c;人们对质优价廉的电池和电池包的需求持续猛涨。电池制造商们不断采用新的化学物…

QT 如何实现enum与字符串的互转

将enum中定义的枚举值&#xff0c;以字符串的形式写入文件&#xff0c;同时也能从字符串转为枚举值。举例说明&#xff1a; ColorSelector中的Colors枚举&#xff0c;我们希望 kColorRed 这个写入到本地文件时&#xff0c;可以直接保存“kColorRed”&#xff0c;而非kColorRed对…

SLAM卷不动了,机器人还有哪些方向能做?

关注gongzhonghao【CVPR顶会精选】众所周知&#xff0c;机器人因复杂环境适应性差、硬件部署成本高&#xff0c;对高效泛化一直需求迫切。再加上多传感器协同难题、真实场景数据获取不易&#xff0c;当下对迁移学习 机器人智能融合的研究也就更热烈了。不过显然&#xff0c;这…

H.266 vs H.265/AV1/H.264:从工程落地看下一代视频系统的技术演进

一、背景&#xff1a;编解码标准演进背后的技术驱动 视频编码标准的更迭&#xff0c;从未只是一次简单的技术升级&#xff0c;而是对码率压缩效率、编码复杂度与画质质量三者之间平衡点的持续探索。在 H.264 成为全平台事实标准的十余年里&#xff0c;它成功支撑了 SD 至 1080…

Javascript面试题及详细答案150道之(031-045)

《前后端面试题》专栏集合了前后端各个知识模块的面试题&#xff0c;包括html&#xff0c;javascript&#xff0c;css&#xff0c;vue&#xff0c;react&#xff0c;java&#xff0c;Openlayers&#xff0c;leaflet&#xff0c;cesium&#xff0c;mapboxGL&#xff0c;threejs&…

Git如何同步本地与远程仓库并解决冲突

在团队协作开发中&#xff0c;保持本地仓库与远程仓库同步是至关重要的。本文将详细介绍如何使用 Git 更新本地仓库至最新远程版本&#xff0c;并深入解析冲突的产生原因及解决方法。一、同步本地与远程仓库1. 检查远程仓库配置首先&#xff0c;确保本地仓库已正确关联远程仓库…

Hadoop MapReduce 3.3.4 讲解~

✨博客主页&#xff1a; https://blog.csdn.net/m0_63815035?typeblog &#x1f497;《博客内容》&#xff1a;.NET、Java.测试开发、Python、Android、Go、Node、Android前端小程序等相关领域知识 &#x1f4e2;博客专栏&#xff1a; https://blog.csdn.net/m0_63815035/cat…

1、【数学】【硬币悖论】旋转硬币问题

问题描述&#xff1a; 两个相同的硬币&#xff0c;半径都是 rrr。一个硬币&#xff08;称为“动硬币”&#xff09;沿着另一个固定不动的硬币&#xff08;“静硬币”&#xff09;的外边缘无滑动地滚动一圈&#xff0c;回到起始位置。问&#xff1a;动硬币自身旋转了几圈&#x…

【盘古100Pro+开发板实验例程】FPGA学习 | PCIE 通信测试实验例程

本原创文章由深圳市小眼睛科技有限公司创作&#xff0c;版权归本公司所有&#xff0c;如需转载&#xff0c;需授权并注明出处&#xff08;www.meyesemi.com) 1. 实验简介 实验目的&#xff1a; 完成 PCIE 通信测试。 实验环境&#xff1a; Window11 PDS2022.2-SP6.4 硬件环…

基于高阶累积量的调制识别

基于高阶累积量的调制识别是一种利用信号的高阶统计特性来识别不同调制方式的方法。 1. 基本原理 高阶累积量&#xff08;Higher-Order Cumulants&#xff09;是信号处理中的一个重要工具&#xff0c;能够捕捉信号的非高斯特性。与高阶矩相比&#xff0c;高阶累积量对高斯噪声具…

Java常用数据结构入门

Java常用数据结构入门 前言 数据结构是程序设计中的基础&#xff0c;掌握常用数据结构能帮助你更高效地解决问题。本文面向Java初学者&#xff0c;介绍Java中常用的数据结构及其基本使用方法。 1. 数组 (Array) 数组是最基础的数据结构&#xff0c;可以存储固定大小的同类型…

Android GPU测试

一、Basemark GPU 可选择进行vulkan和opengl测试&#xff1a; 二、GFXBench 进行各种offscreen测试&#xff08;包括曼哈顿离屏&#xff09; 这是由GFXBench图形性能测试套件提供的一个著名3D图形渲染场景。 它模拟了一个复杂的未来都市环境&#xff08;类似曼哈顿&#xff…

2025年6月最新SCI-灰熊脂肪增长优化算法Grizzly Bear Fat Increase-附Matlab免费代码

引言 本期介绍一种受自然启发的创新算法——灰熊脂肪增长优化算法Grizzly Bear Fat Increase optimizer&#xff0c;GBFIO。GBFIO算法模仿灰熊为准备过冬而积累身体脂肪的自然行为&#xff0c;借鉴了它们的狩猎、捕鱼、吃草、蜂蜜等策略。于2025年6月发表在JCR 1区&#xff0c…

Pytorch实现一个简单的贝叶斯卷积神经网络模型

贝叶斯深度模型的主要特点和实现说明&#xff1a;模型结构&#xff1a;结合了常规卷积层&#xff08;用于特征提取&#xff09;和贝叶斯线性层&#xff08;用于分类&#xff09;贝叶斯层将权重视为随机变量&#xff0c;而非传统神经网络中的确定值使用变分推断来近似权重的后验…

Dubbo 3.x源码(32)—Dubbo Provider处理服务调用请求源码

基于Dubbo 3.1&#xff0c;详细介绍了Dubbo Provider处理服务调用请求源码 上文我们学习了&#xff0c;Dubbo消息的编码解的源码。现在我们来学习一下Dubbo Provider处理服务调用请求源码。 当前consumer发起了rpc请求&#xff0c;经过请求编码之后到达provider端&#xff0c;…

每日一leetcode:移动零

目录 解题过程: 描述: 分析条件: 解题思路: 通过这道题可以学到什么: 解题过程: 描述: 给定一个数组 nums&#xff0c;编写一个函数将所有 0 移动到数组的末尾&#xff0c;同时保持非零元素的相对顺序。 请注意 &#xff0c;必须在不复制数组的情况下原地对数组进行操…