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

前端vue2迁移至uni-app

1.确定文件存放位置

components: 继续沿用
pages: views内容移动到pages
static: assets内容移动到static
uni_modules: uni-app的插件存放位置

  • 迁移前
src├─assets│  └─less├─components│  ├─common│  │  ├─CommentPart│  │  └─MessDetail│  ├─home│  │  └─Search│  ├─message│  ├─partner│  │  └─detail│  └─profile├─router├─store├─utils└─views├─home├─partner└─post
  • 迁移后
src
├─components
│  ├─common           # 通用组件,可放之前的 CommentPart 和 MessDetail
│  ├─home             # 首页相关组件,可放之前的 Search
│  ├─message          # 消息相关组件
│  ├─partner          # 合作伙伴相关组件
│  │  └─detail
│  └─profile          # 用户资料相关组件
├─pages               # 存放uni-app页面
│  ├─home             # 主页
│  ├─partner          # 合作伙伴页面
│  └─post             # 帖子页面
├─static              # 放置静态资源文件,如图片、字体等
├─store               # vuex状态管理
├─uni_modules         # 放置uni-app插件
├─utils               # 工具函数
├─styles              # 样式文件,如.less或.css
└─router              # 路由配置

2.修改原先语法

  • 标签和事件改动:
    • div -> view
    • @click -> @tap
  • UI改动:
    • 把 vant => uni-ui
    • 下拉刷新:van-pull-refresh => scroll-view
    • 触底加载:van-list => scroll-view
    • px => rpx
  • 路由相关:
    • this.$router.push -> uni.navigateTo
    • this.$router.replace -> uni.redirectTo
    • this.$router.back() -> uni.navigateBack()
    • this.$route.params.id -> onLoad的options获取
  • 生命周期:
    • mounted -> onLoad/onShow
    • created -> onLoad
    • beforeDestroy -> onUnload
  • 请求相关:
    • ajax -> uni.request
    • 加载状态使用 uni-load-more 组件
  • 交互:
    • Toast -> uni.showToast
    • Dialog -> uni.showModal
  • 页面:
    • location.reload -> navigateBack
    getCurrentPages().pop();
    uni.navigateBack({delta: 1
    })
    

store配置

// 1. 导入 store 的实例对象
import store from './store/store.js'// 省略其它代码...const app = new Vue({,store
})
app.$mount()

请求改造

改造前

    const url = HomeApis.MessDetailUrl.replace('{}', this.$route.params.id)ajax.get(url).then(({ data }) => {// console.log(data)this.message = data.messagethis.comments = data.comments})

改造后

    onLoad(options) {// 获取页面参数const id = options.idthis.loadMessageDetail(id)},methods: {loadMessageDetail(id) {const url = HomeApis.MessDetailUrl.replace('{}', id)uni.showLoading({title: '加载中'})uni.request({url: url,method: 'GET',success: (res) => {const {data} = res;if (res.statusCode === 200) {  // 假设 200 是成功状态码this.message = data.messagethis.comments = data.comments} else {uni.showToast({title: data.msg || '加载失败',icon: 'none'})}},fail: (err) => {uni.showToast({title: '网络错误',icon: 'none'})},complete: () => {uni.hideLoading()}})}}
}
http://www.lryc.cn/news/473230.html

相关文章:

  • 恋爱脑学Rust之闭包三Traits:Fn,FnOnce,FnMut
  • 区块链介绍
  • git回滚间隔的提交
  • Map和Set(数据结构)
  • vue3uniapp实现自定义拱形底部导航栏,解决首次闪烁问题
  • 新需求编码如何注意低级错误代码
  • 系统架构图设计(行业领域架构)
  • windows 文件监控 c++ 11及以上版本可用
  • jsMind:炸裂项目,用JavaScript构建的思维导图库,GitHub上的热门开源项目
  • postman的脚本设置接口关联
  • 【python】OpenCV—Tracking(10.3)—GOTURN
  • git pull遇到一个问题
  • 书生-第四期闯关:完成SSH连接与端口映射并运行hello_world.py
  • 【CSS3】css开篇基础(5)
  • AI产品独立开发变现实战营,炒掉老板做自由职业赚大钱
  • 【UE5.3 Cesium for Unreal】编译GlobePawn
  • idea连接数据库出现错误的解决方式
  • 数据分级分类工具:敏感数据识别中的AI智能化转型之路
  • 乘云而上,OceanBase再越山峰
  • 设计模式4-工厂模式策略模式
  • 使用Html5基本标签实现“时空电影网”案例步骤及详细代码
  • Servlet 3.0 新特性全解
  • VUE组件学习 | 五、v-for组件
  • uniapp写移动端,适配苹果手机底部导航栏,ios安全区问题,苹果手机遮挡底部信息,uview的u-action-sheet组件
  • CentOS9 Stream上安装Edge浏览器
  • el-datepicker此刻按钮点击失效
  • VUE组件学习 | 六、v-if, v-else-if, v-else组件
  • 机器学习算法之回归算法
  • cordova android 内嵌vue页面 启动页之后白屏问题处理
  • 自研小程序-心情追忆