微信小程序转uniapp

5 篇文章 0 订阅
5 篇文章 1 订阅

首先。微信小程序转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,
		'<template>
		'.$_wxml.'
		</template>
		<script>
		'.$_js.'
		</script>
		<style>
		'.$_wxss.'
		</style>'
	);
	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"

不搞了 耽误时间 闲了再补充

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值