当前位置: 首页 > news >正文

互网站开发维护成本高网站定时数据切换怎么做的

互网站开发维护成本高,网站定时数据切换怎么做的,建站教程的实现方式,php值班系统 wordpress黑马程序员前端项目uniapp小兔鲜儿微信小程序项目视频教程,基于Vue3TsPiniauni-app的最新组合技术栈开发的电商业务全流程_哔哩哔哩_bilibili 参考 有代码,还有app、h5页面、小程序的演示 小兔鲜儿-vue3ts-uniapp-一套代码多端部署: 小兔鲜儿-vue3ts-un…

黑马程序员前端项目uniapp小兔鲜儿微信小程序项目视频教程,基于Vue3+Ts+Pinia+uni-app的最新组合技术栈开发的电商业务全流程_哔哩哔哩_bilibili

参考

有代码,还有app、h5页面、小程序的演示

小兔鲜儿-vue3+ts-uniapp-一套代码多端部署: 小兔鲜儿-vue3+ts-uniapp 项目已上线,小程序搜索《小兔鲜儿》即可体验。🎉🎉🎉 <br/> 配套项目接口文档,配套笔记。

接口文档

说明 - 小兔鲜儿-小程序版

创建uni-app项目 

有HbuilderX创建项目和命令行创建项目两种方式

这里要创建uniapp项目,然后使用vscode开发

项目配置

微信小程序appid

安装依赖,运行 

pnpm i安装依赖,多个node_modules文件夹

然后运行pnpm dev:mp-weixin,mp表示mini program,微信小程序

编译完成的结果在dis目录下

打开微信小程序,导入mp-weixin

分离窗口

分离窗口,方便查看

使用uni-create-view插件

安装后进行设置 

配置好后,直接创建uniapp页面 

前一个是页面,后一个是页面路由pages路径名称 

完善ts类型校验

安装最新版本ts类型声明文件 

pnpm i -D miniprogram-api-typings@latest @uni-helper/uni-app-types@latest
// tsconfig.json
{"extends": "@vue/tsconfig/tsconfig.json","compilerOptions": {"sourceMap": true,"baseUrl": ".","paths": {"@/*": ["./src/*"]},"lib": ["esnext", "dom"],// 类型声明文件"types": ["@dcloudio/types", // uni-app API 类型"miniprogram-api-typings", // 原生微信小程序类型"@uni-helper/uni-app-types" // uni-app 组件类型]},// vue 编译器类型,校验标签类型"vueCompilerOptions": {// 原配置 experimentalRuntimeMode 已废弃,请升级 Vue - Official 插件至最新版本"plugins": ["@uni-helper/uni-app-types/volar-plugin"] },"include": ["src/**/*.ts", "src/**/*.d.ts", "src/**/*.tsx", "src/**/*.vue"]
}

tsconfig报错

方法一:加上"ignoreDeprecations":"5.0"后重启

在 TypeScript 5.0 及以上版本中,importsNotUsedAsValues 和 preserveValueImports 选项已被弃用,并将在 TypeScript 5.5 中停止支持。取而代之的是使用 verbatimModuleSyntax 选项

如果希望继续使用旧版本的配置,可以在 tsconfig.json 中添加 ignoreDeprecations 选项,使编译器忽略弃用警告

"ignoreDeprecations":"5.0"

方法二:更新@vue/tsconfig 

使用命令查看vue/tsconfig版本

我的版本是0.1.3

pnpm list @vue/tsconfig

升级后重启

pnpm update @vue/tsconfig@^0.7.0

允许pages.json和manifest.json允许注释

在uniapp项目中,允许pages.json和manifest.json允许注释

但是vscode默认严格json 

只有这两个json文件允许注释

值jsonc,表示允许注释

manifest.json中两个值已弃用

两个值已弃用,所以默认false和0 

不用管

安装uni-ui

文档

uni-app官网

pnpm安装

配置easycom完成组件自动导入

开启自动扫描,在components文件夹是否有符合uniapp标准的组件,有就自动导入

但我们通过pnpm包管理器的方式下载,组件在node_modules里

所以这个配置走的是第二个custom正则的规则 

^表示开头,用()包裹.*,表示提取出这个组件的名字,()表示提取,提取的内容会把后面的$1替换

 // 组件自动引入规则"easycom": {// 是否开启自动扫描"autoscan": true,// 以正则方式自定义组件匹配规则"custom": {// uni-ui 规则如下配置"^uni-(.*)": "@dcloudio/uni-ui/lib/uni-$1/uni-$1.vue",// 以 Xtx 开头的组件,在 components 文件夹中查找引入(需要重启服务器)"^Xtx(.*)": "@/components/Xtx$1.vue"} 

为uni-ui提供ts类型

网站:  

@uni-helper/uni-types - npm

ts项目,希望类型更加安全 

但是鼠标悬停组件上是unknow

uni-ui开发时使用js,没有升级到ts

官方提供的组件库,并没有对应的类型声明文件

有人为uni-ui提供了配套的类型声明文件 

安装后需要增加类型声明文件 

"@uni-helper/uni-ui-types"

有了这个,我调用函数,就可以结构了 

小程序端pinia持久化 

文档:

配置 | Pinia Plugin Persistedstate

Pinia 用法与 Vue3 项目完全一致,uni-app 项目仅需解决持久化插件兼容性问题

插件默认使用 localStorage 实现持久化,小程序端不兼容,需要替换持久化 API

 安装持久化存储插件

pnpm i pinia-plugin-persistedstate

参考 

请求工具的封装 

拦截器

文档:

uni.addInterceptor(STRING, OBJECT) | uni-app官网

invoke函数会在拦截前触发 


设置请求基地址

如果首选服务器挂了,换成备用服务器,有基地址设置,只需要改一边就可以了

在项目中用到路径也更简洁


添加请求头标识

当前的小兔鲜服务端除了服务于小程序端,也会服务于pc端和app端

后端需要通过标记识别出数据请求的来源


添加token

用户登录后拿到token

流程 

拦截时,就会拿到uni.request()内部传来的参数

可以通过invoke()的形参获取

参数在ts项目中要指定类型,鼠标悬停到request上,得知参数类型

如果request在用的时候,也写上了header,这里写上的参数会覆盖options.header中的内容

因为options.header这里被赋值成新对象

所以,如果有要先保留,再添加特殊标识 

请求函数

封装请求函数,为了在项目中方便发请求,借鉴axios(axios返回值是Promise对象,配合async,await,能更方便地获取到请求成功的数据)

所以封装的请求函数也要求返回Promise对象

uniapp的拦截器没有axios拦截器完善,uniapp的响应拦截器对类型支持并不友好

所以前面的拦截器只完成了请求前的拦截,没有实现响应拦截器

要通过自己封装的请求函数去实现axios响应拦截器做过的业务(响应分为成功、失败)

流程

这里是Promise对象,所以更方便地用async,await去接收数据 


async/await 是建立在 Promise 之上的语法糖 。Promise 是 ES6 引入的异步编程解决方案,用于封装异步操作并获取其成功或失败结果。async 函数会自动返回一个 Promise 对象,await 关键字用于等待 Promise 对象的状态变为已解决(resolved )或已拒绝(rejected ),从而获取相应结果或处理错误

数据
封装抽离后端返回值的类型

后端返回的数据,变的只有result

所以可以封装抽离后端返回值的类型

类型断言 

返回的类型,uniapp中也有默认的联合类型,可以是string、AnyObject、ArrayBuffer

联合类型在这里是任意的对象类型AnyObject,但是有太大了

这里有更精确的类型,我们定义的Data<T>

在联合类型中指定其中一个类型,使用类型断言

获取数据失败

success()只有服务器有响应,都会走到这里面

如果服务器挂了,或者网络出错,才会走到fail()响应失败

如果没有token,但调用了一个需要携带token才能访问的接口,会走到success()响应成功里面。因为服务器有响应,响应的结果只不过是token失败

对于我们也页面中使用,业务理解会有差异


axios中的处理是只有响应状态码是2开头,才会调用resolve()

所以借鉴axios 

text、view标签报红错误提示

参考文档

vscode开发uniapp小程序,text、view标签报红错误提示 | Ayu's Study Blog

使用VSCode搭建UniApp + TS + Vue3 + Vite项目-阿里云开发者社区

我按照文档中说明,在.npmrc文件中增加了两项,再下载依赖,然后重启vscode就成功了 

http://www.dtcms.com/a/571205.html

相关文章:

  • 网站建设redu大秦建设集团有限责任公司官方网站
  • 被黑的网站创办一个网站
  • C++ 大数乘法
  • 个人网站设计源代码互联网营销是干什么
  • 个人网站怎么制作教程社区推广活动方案
  • 电子商务是建网站如何免费建网站赚钱
  • 广州市建设网站wordpress网站报价
  • 用户需求与业务目标冲突时该如何取舍
  • 乡镇中心小学校园网站建设指南淘宝网站怎么做网站
  • 上海 响应式网站公司国际新闻界官网
  • 贵州省建设学校官方网站想找个人做网站
  • 阿里云服务器wordpress建站教程网站建设的方法有四种
  • 网站备案 多少钱深圳罗湖网站设计公司价格
  • 建德市建设局网站以公司名称为后缀的邮箱
  • 探索Python的新特性:最新版本带来了什么?
  • 什么好的网站学做食品网站推广平台有哪些
  • 揭阳高端网站建设价格网站设计制作方案
  • 广西建设主管部门网站北京新鸿儒做的网站
  • 解决代理环境下NETIO.SYS引发的蓝屏问题:切换至TDI驱动
  • 南头做网站公司许昌seo推荐
  • Makefile的依赖管理
  • 兰州seo网站排名自动发货网站建设
  • 天津建设网站哪家好社交网络营销是什么
  • SQL子查询完全指南:从零掌握嵌套查询的三种用法与最佳实践
  • 建设网站需要的安全设备汕尾招聘网
  • 网站开发技术及软件介绍河津市城乡建设局网站
  • 厦门启明星网站建设优化神马网站关键词排名价格
  • 湖北城乡建设厅官方网站网站做404
  • 网站建设职业wordpress 调用api
  • 重庆网站建设优斗士电子商务网站的建设和维护