首先。微信小程序转uniapp是有现成的js脚本的,比较方便,但是直接用js脚本转,完成后的效果不太好,尤其是用了插件的地方,会把插件内容直接加载进来,页面变得很大,我曾经转过一次,页面转换完成后有错不说,hbuilderx打开就会卡死。
最后。思考了我想要达到的目的,就是把.json,.js,.wxml,.wxss四个文件转换为vue就行了。其他的网络读取有现成的项目可以套用。所以需要把这几个文件按照规律拼接一下就行了。
进入正题,由于我擅长php,且项目周期感人,直接用php吧,cs版的有时间了再说
由于各个程序的运行环境不同,注意更换处理环境,不过多说
文件目录结构
文章图片
第一。uniapp项目的pages.json是包含所有的页面路径和style的。直接上代码吧
由于项目app.json已经改成vue版的pages.json了,结果和微信小程序的结构不太一样,不过有开发基础的都能看的懂
$json=json_decode(file_get_contents('./pages.json'),true);
foreach($json['pages'] as $k=>$v){
$path=$v['path'];
$page_json=$path.'.json';
$page_json2=json_decode(file_get_contents("./".$page_json),true);
$json['pages'][$k]['style']=$page_json2;
}
file_put_contents('./pages.json',json_encode($json,JSON_UNESCAPED_SLASHES|JSON_UNESCAPED_UNICODE));
第二。拼接vue文件
$json=json_decode(file_get_contents('./pages.json'),true);
foreach($json['pages'] as $k=>$v){
$path=$v['path'];
$vue=$path.'.vue';
$json=$path.'.json';
$wxml=$path.'.wxml';
$wxss=$path.'.wxss';
$js=$path.'.js';
$_wxml=file_get_contents('./'.$wxml);
$_js=file_get_contents('./'.$js);
$_wxss=file_get_contents('./'.$wxss);
file_put_contents('./'.$vue,
'
'.$_wxml.'
'.$_wxss.'
'
);
unlink($json);
unlink($wxss);
unlink($wxml);
unlink($js);
//exit;
}
第三。转换完成后,由于微信小程序和vue语法不同,还要批量改语法
推荐用notepad++或sublime,我经常搞这种批量查找或替换程序的事,一般喜欢用正则,下面是几组替换正则
先替换这种标签 wx:xxx=“{{yyy}}”
wx:if="\{\{(.*?)\}\}"---替换为--->v-if="$1"
wx:for=('|")\{\{(.*?)\}\}('|")\s+wx:key=('|")(.*?)('|")\s+wx:for-item=('|")(.*?)('|")---替换为--->v-for="\($8,$5\) in $2"
【小程序|微信小程序转uniapp】不搞了 耽误时间 闲了再补充
推荐阅读
- 微信开发|一文实现微信小程序支付 史上最全版
- 微信小程序|微信小程序项目实例——图片处理小工具(自制低配版美图秀秀)
- PHP|PHP 解压 ZIP 压缩包,解决多级中文乱码问题
- 前端|前端面试八股文--Vue篇(持续更新)
- 微信小程序|微信小程序学习之旅--零基础制作自己的小程序--第二个页面的制作
- vue|微信小程序中的web-view,实现微信小程序与h5页面间跳转
- 小程序|微信小程序入门篇
- 微信小程序|二、零基础入门微信小程序项目开发之页面跳转实现
- axios|vue项目 使用axios封装request请求(一)