vue移动端项目迁移到uniapp,并兼容小程序

这篇具有很好参考价值的文章主要介绍了vue移动端项目迁移到uniapp,并兼容小程序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、视图dom标签的替换

以下标签的替换需要注意css中的选择器也需要跟着替换。

1、div、p、h1~5等等块级元素替换为view标签

h1~5注意字体大小需要调整,具体根据页面大小调整。

2、span、label等等所有内联元素替换为text标签

注意:text的字体大小,选择器必须选择到text标签才能修改其字体大小。
因为text标签它本身就拥有一个默认字体大小12px的属性。

3、img替换位image标签

image需要闭合否则会运行时报错。

二、request请求

请求需要从axios更换为uni.request

三、路由跳转

1、路由配置

router变为pages.json配置

2、路由跳转

router.push标为uni.navigateTo,其他的router.go等等也需要被替换。

3、路由拦截

路由拦截,可以使用ui组件中的路由拦截,例如uview的路由跳转uni.$u.route方法可以配置路由拦截。
此时路由跳转,需要全部更换成改方法

四、浏览器缓存数据

小程序时没有localStorage、sessionStorage和cookies的,如果需要存缓存就只能用uni.setStorage、uni.setStorageSync

五、组件的替换

1、整体UI组件的替换(工作量最大)

项目中ui组件在uniapp中大概率是不兼容的,比如:我们vue移动端常用的组件有vantUI等等,不兼容uniapp。
这时可以去uniapp官网的插件市场,找到兼容的ui组件,比如uni-ui、uview然后替换ui组件。
其中大体包括一些标签,例如:
input,textarea,checkbox,radio,button,img等等,
以上这些需要替换成新替换上去ui组件对应的标签。

2、npm install组件的兼容与替换

1、首先:uniapp项目中可以不用npm install就不用,如果用的话,尽量保持组件的体积不要过大,因为小程序要发布提交到管理平台的话,整体打包后的代码主包不能超过2M,如果组件太大,会导致vendor.js文件过大。

2、有些组件有包括dom操作根据情况使用,这里是不建议使用的,因为如果你要兼容小程序的话,小程序中是没有dom操作的
遇到这种情况的话:
(1)要么就在uniapp插件市场寻找对应的组件进行替换。
(2)要么就自己写一个,小程序有自己的dom操作api,uni.createSelectorQuery,可去官网搜索这个api进行查看。

六、组件样式修改

1、建议不要在组件上加class样式。

有时候运行到h5是正常的,
运行到小程序就被吃掉了,直接不见。

2、某个页面需要修改组件内部样式。(重要)

H5我们使用::v-deep一般就能穿透到组件内部去影响样式。
但是小程序光有这个还不行,得在methods同级加上:

options: {
	styleIsolation: "shared"
}

^^

七、数据获取问题

1、vuex数据获取问题

H5上数据能够用state或getters中的数据进行数据的实时渲染。
小程序不行,永远是旧的数据,无法进行实时渲染。
小程序得借助页面中的computed属性,来实现vuex数据在dom上的实施渲染,例如:

computed: {
	username() {
		return this.$store.getters.user.username;
	}
}

2、小程序中Vue.protype中属性渲染问题

H5中,如果在main.js中使用Vue.prototype.定义一个属性,这时候如果把这个属性使用在视图上,当属性变化的时候,视图也会跟着变化。
但是在小程序上却不行,永远是旧的数据,无法进行实时变化。
解决办法:
(1)尽量不设置Vue.prototype属性,把变换的属性放到Vuex中。
(2)使用方法的形式,例如:

Vue.prototype.getData = () => {
	return Vue.prototype.data;
}

通过方法的形式,再每次执行方法的时候重新获取数据。
也有情况不建议使用,如果你停留在这个页面,又去改变了Vue.prototype.data,视图还是不会刷新。
这种方法仅仅适用于,获取一次性的数据。例如:进入项目时获取用户信息。

八、主包体积过大的问题

1、小程序包主包体积大于2M就无法上传发布。

这时候我们就要进行分包,分包有几个注意的点:
(1)通常我们写代码每个文件夹里面的文件可能与其他文件夹里的文件有有依赖关系,这时需要注意:主包、分包无法引用其他分包中的文件主包、分包可以引用主包中的文件
(2)分包数量没有上限。
(3)每个分包的大小不可大于2M
(4)tabbar页面组件必须在主包中。
(5)技巧:如果多个分包的内容相互依赖了,那么为了可以将这多个分包整合成一个分包。这样能避免分包不能引用分包的问题。文章来源地址https://www.toymoban.com/news/detail-478273.html

2、删掉冗余的代码


# 九、dom操作的指令无法使用 小程序不支持dom操作。
# 十、图片的迁移 除了tabbar的icon图标,其他的图片全部迁移到服务器上,通过链接的形式访问。
# 十一、dom操作别用 小程序不支持dom操作。

到了这里,关于vue移动端项目迁移到uniapp,并兼容小程序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 高校大学校园后勤移动报修系统 微信小程序uniapp+vue

    本文主要是针对线下校园后勤移动报修传统管理方式中管理不便与效率低的缺点,将电子商务和计算机技术结合起来,开发出管理便捷,效率高的基于app的大学校园后勤移动报修app。该系统、操作简单、界面友好、易于管理和维护;而且对后勤报修信息具有较强的针对性、实

    2024年02月03日
    浏览(48)
  • uniapp(全端兼容) - 实现点击输入框时完美顶起键盘,获取键盘高度动态计算顶起距离,解决软键盘弹出时输入框被覆盖问题,uniapp微信小程序/移动端h5网页/安卓苹果app(示例代码,一键复制

    在uniapp小程序/h5网页网站/安卓苹果app/nvue等(全平台完美兼容)开发中,完美解决input输入框激活时软键盘从底部弹出遮挡问题,采用获取键盘高度动态计算每个平台下的弹出高度,彻底消除各平台端的弹出距离不一致、有差异的问题! 还能彻底解决软键盘顶不起来输入框的

    2024年03月14日
    浏览(162)
  • 将Vue项目迁移到微信小程序中

    使用 Vue-Cli 脚手架创建一个新的Vue.js应用程序。 启动应用程序 在你的Web浏览器中打开URL http://localhost:8080,你应该可以看到你的vue.js应用程序正在运行。 微信小程序是一个独立的平台,需要自己构建,不能直接将vue.js应用程序上传至微信小程序平台。需要把你的vue.js应用程序

    2024年02月07日
    浏览(34)
  • 【Influxdb数据迁移,从windos移到linux】

    前提——保证两边的版本不要相差太多 1、windows的导出G:influxdb2为暂存的目录 导出之后会有一堆文件 全部上传到/var/lib/influxdb这个目录下。这个应该是默认的linux的存储地址 然后就可以导出 注意 1、influxdb需要是启动状态: 会在屏幕上打印日志,方便看输出内容 后台启动

    2024年02月12日
    浏览(47)
  • vue移动端H5调起手机发送短信(兼容ios和android)

    移动端h5页面调起手机发送短信功能,ios和android的兼容写法不一样。 android  ios

    2024年02月08日
    浏览(44)
  • 前端vue/uniapp —— 兼容ios与安卓问题

    ① css样式无效:安卓可,ios不可 ② 富文本外层包裹:安卓可,ios不可 ③ 提取富文本文字后加css样式:安卓可,ios可,不完美的解决办法

    2024年02月16日
    浏览(41)
  • uniapp 小程序 使用vue3+ts运行项目

    uniapp官网教程:uni-app官网 创建方式有2种 第一种:通过HBuilderX可视化界面创建 第二种:通过vue-cli命令行 注意:若不能直接使用命令下载,可去gitee下载模板使用 下载完模板后进行解压,利用vscode打开文件,会发现报这样的错误👇主要原因是没有下载依赖 解决以上错误:使

    2024年02月13日
    浏览(53)
  • 使用命令行新建vue2/uniapp小程序项目

    1.执行命令创建项目。 2.选择模板,需要ts加上ts,一般默认选择默认模板。  3.新建完成后的package.json,有对应的打包命令,    博主报了一个这样的错误,是因为autoprefixer版本过高,降低一下版本即可 这里也可以会出现sassloader版本的报错的问题,如果出现查一下版本换一下

    2024年02月09日
    浏览(34)
  • hbuilder创建基于vue2的uniapp小程序项目

    参考vant官网:https://vant-contrib.gitee.io/vant/v3/#/zh-CN/quickstart#an-zhuang官网 参考别人博客:https://www.yii666.com/blog/465379.html 1.1 hbuilder进去右上角点击文件–新建–项目 1.2 vue2项目如下图 2.1 2.2

    2024年02月17日
    浏览(53)
  • [微信小程序] movable-view 可移动视图容器 - 范围问题

    movable-view 可移动视图容器 可移动视图容器,在页面中可以拖拽滑动。movable-view必须在 movable-area 组件中,并且必须是直接子节点 运行效果: 发现文字超出了移动区域的问题,去查阅了文档,发现这个默认是不允许超出的 问题原因:没有给 movable-view设置宽高,所以它自动

    2024年02月16日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包