Uniapp编译后小程序的代码反编译一些思路

这篇具有很好参考价值的文章主要介绍了Uniapp编译后小程序的代码反编译一些思路。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

最近客户做的一个微信小程序,可以原来的开发者忘记给他源文件了,只能通过反编译uniapp找回原来的代码,特此记录一下反编译的过程

举例:

<view class="data-v-5310fc90">
    <u-sticky bind:__l="__l" class="data-v-5310fc90" vueId="6199cf00-1" vueSlots="{{['default']}}">
        <view class="u-border-bottom echo-top-tabsheight echo-bg-white data-v-5310fc90">
            <u-tabs bind:__l="__l" bind:click="__e" class="data-v-5310fc90" current="{{tabscurrent}}" data-event-opts="{{[ [ '^click',[ ['tabsChange'] ] ] ]}}" list="{{tabslist}}" vueId="{{'6199cf00-2'+','+'6199cf00-1'}}"></u-tabs>
        </view>
    </u-sticky>
    <u-empty bind:__l="__l" class="data-v-5310fc90" icon="/static/empty/data.png" iconSize="300" marginTop="50" mode="data" show="{{pempty}}" vueId="6199cf00-3"></u-empty>
    <block wx:if="{{pempty==false}}">
        <view class="data-v-5310fc90" wx:if="{{swiperlist!=null&&cateid==0}}">
            <u-swiper bind:__l="__l" bind:click="__e" circular="{{true}}" class="data-v-5310fc90" data-event-opts="{{[ [ '^click',[ ['goSwiper'] ] ] ]}}" keyName="tilpic" list="{{swiperlist}}" vueId="6199cf00-4"></u-swiper>
        </view>
        <navigator class="data-v-5310fc90" url="{{'/pages/notice/detail?id='+item.id}}" wx:for="{{plist}}" wx:key="id">
            <view class="u-flex u-flex-nowrap u-row-between u-padding-30 u-border-bottom echo-col-stretch data-v-5310fc90">
                <view class="u-flex-1 u-flex u-flex-wrap echo-row-acontent data-v-5310fc90">
                    <view class="u-line-2 u-font-16 data-v-5310fc90">{{item.title}}</view>
                    <view class="u-flex u-flex-nowrap u-row-between u-font-12 u-light-color echo-width-fill u-padding-top-20 data-v-5310fc90">
                        <view class="data-v-5310fc90">{{item.mediaNoticeCate.name}}</view>
                        <view class="data-v-5310fc90" wx:if="{{item.priority>0}}">置顶</view>
                    </view>
                </view>
            </view>
        </navigator>
        <view class="u-padding-top-20 u-padding-bottom-40 data-v-5310fc90">
            <u-loadmore bind:__l="__l" class="data-v-5310fc90" status="{{pstatus}}" vueId="6199cf00-5"></u-loadmore>
        </view>
    </block>
    <echo-tabbar bind:__l="__l" class="data-v-5310fc90" tabber="{{vuex_tabbar}}" value="{{nowpage}}" vueId="6199cf00-6"></echo-tabbar>
</view>

编译后的代码:

<template>
	<view>
		<u-sticky vueId="6199cf00-1" :vueSlots="['default']" customNavHeight="0px" >
			<view class="u-border-bottom echo-top-tabsheight echo-bg-white data-v-5310fc90" >
				<u-tabs @click="tabsChange" :current="tabscurrent" :list="tabslist" :activeStyle="activeStyle" lineColor="#fa3534"></u-tabs>
			</view>
		</u-sticky>
		<u-empty icon="/static/empty/data.png" iconSize="300" marginTop="50" mode="data" :show="pempty" ></u-empty>
		<block v-if="pempty==false">
			<view v-if="swiperlist!=null&&cateid==0">
				<u-swiper :circular="true" keyName="tilpic" :list="swiperlist"></u-swiper>
		 </view>
			<navigator :url="'/pages/notice/detail?id='+item.id" v-for="(item,index) in plist" :key="index">
				<view
					class="u-flex u-flex-nowrap u-row-between u-padding-30 u-border-bottom echo-col-stretch data-v-5310fc90">
					<view class="u-flex-1 u-flex u-flex-wrap echo-row-acontent data-v-5310fc90">
						<view class="u-line-2 u-font-16 data-v-5310fc90">{{item.title}}</view>
						<view
							class="u-flex u-flex-nowrap u-row-between u-font-12 u-light-color echo-width-fill u-padding-top-20 data-v-5310fc90">
							<view>{{item.mediaNoticeCate.name}}</view>
							<view v-if="item.priority>0">置顶</view>
						</view>
					</view>
				</view>
			</navigator>
			<view class="u-padding-top-20 u-padding-bottom-40 data-v-5310fc90">
				<u-loadmore :status="pstatus" vueId="6199cf00-5"></u-loadmore>
			</view>
		</block>
		<!-- 与包裹页面所有内容的元素u-page同级,且在它的下方 -->
		<u-tabbar v-if="tabbarlist" :value="nowpage" :activeColor="tabbarlist.activecolor"
			@change="name => nowpage = name" :fixed="true" :placeholder="true" :safeAreaInsetBottom="true" >
			<u-tabbar-item v-for="(item,index) in tabbarlist.list" :text="item.text" :key="index" :name="item.name" @click="goTabbar(item.pagePath)">
				<image class="u-page__item__slot-icon" slot="active-icon" :src="item.selectedIconPath"></image>
				<image class="u-page__item__slot-icon" slot="inactive-icon" :src="item.iconPath"></image>

			</u-tabbar-item>
		</u-tabbar>

	</view>
</template>

<script>
	export default {
		data() {
			return {
				nowpage: uni.$u.page(),
				tabbarlist: [],
				tabslist: [],
				tabscurrent: 0,
				cateid: 0,
				swiperlist: null,
				loading: !1,
				plist: [],
				ppage: 1,
				pstatus: "loadmore",
				activeStyle:{
					color: '#fa3534'
				},
				pempty: !0
			}
		},
		onLoad: function() {
			var  o= this;
			o.getTabber();
			o.vuex_param = uni.getStorageSync('setting').param;
			2 == o.vuex_param.pagenav.notice.status && 0 == o.vuex_memberinfo.id && uni.showModal({
				title: "温馨提示",
				showCancel: !1,
				content: "你还未登录,无权浏览。请先注册登录...",
				success: function(n) {
					uni.$u.route({
						type: "redirect",
						url: "/pages/login/login"
					});
				}
			}), uni.setNavigationBarTitle({
				title: o.vuex_param.pagenav.notice.name
			}), uni.$u.http.post("notice/pagenotice", {}).then(function(e) {
				o.tabslist = e.catelist, o.swiperlist = e.swiperlist, o.pageRefresh();
			});

		},
		methods: {
			getTabber:function(){
				var o = this;
				 o.tabbarlist = uni.getStorageSync('setting').tabbar;
			},
			goTabbar: function(n) {
				console.log(n);
				this.$u.route({
					type: "reLaunch",
					url: n
				});
			},
            getMore: function() {
				var o =this;
				1 != o.loading && (o.loading = !0, uni.$u.http.post("notice/getnotice", {
					cateid: o.cateid,
					ppage: o.ppage
				}).then(function(n) {
					o.pstatus = n.pstatus, o.pempty = n.pempty, o.plist = o.plist.concat(n.plist), o.ppage += 1, 
					uni.stopPullDownRefresh(), o.loading = !1, o.loading = !1;
				}));
			},
			pageRefresh: function() {
				var o =this;
				o.pstatus = "loadmore", o.ppage = 1, o.plist = [], o.getMore();
			},
			tabsChange: function(e) {
				var o =this;
				o.tabscurrent = e.index, o.cateid = e.id, o.pageRefresh();
			},
			goSwiper: function(n) {
				var o =this;
				var t = o.swiperlist[n];
				uni.$u.route({
					url: "/pages/notice/detail",
					params: {
						id: t.id
					}
				});
			}
		}
	}
</script>

<style>

</style>

第一步 移除一些没有用的事件

bind:__l="__l"

第二步 将非标签里面的{{}}里面的转变为 vue 事件 如 

wx:if="{{pempty==false}}"
转为
v-if ="pempty==false"

第三步 将小程序.js里面的onlod onShareAppMessage onShareTimeline onPullDownRefresh methods 等常用得到方法 移植到uniapp里面去 这些方法里面很容易替换 一般替换一个this 一个特殊定义的方法如uni 

uniapp反编译,uniapp,微擎模块,小程序,前端,javascript

 文章来源地址https://www.toymoban.com/news/detail-546998.html

到了这里,关于Uniapp编译后小程序的代码反编译一些思路的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • uniapp、vue、小程序常用的一些验证规则校验方法(例如:手机号。身份证、金额等)

    例如: 检查是否为空数组 、是否是空  不为空false 为空true、校验密码、校验手机号格式、校验邮箱格式、校验身份证号格式、校验值长度 不少于6位数、 电话号码加密   15288889999 转化为 152****9999、身份证号码加密、验证输入重量、金额等类型   例如 0.11  2.23  100.123等等

    2024年02月02日
    浏览(50)
  • uniapp开发微信小程序:提交审核不通过,提示AppSecret存在泄漏的安全风险。解决思路。

    如题:微信小程序审核不通过,提示AppSecret存在泄漏的安全风险 审核失败原因: 你好,当前提审小程序包中可能包含明文的AppSecret,存在泄漏的安全风险。一旦被恶意用户通过技术手段获取你的AppSecret,对方可以通过调用API获取你的小程序敏感数据,如接口调用凭证、用户

    2024年02月22日
    浏览(42)
  • 在开发uniapp 编译至微信小程序的过程中报错

    在开发uniapp 编译至微信小程序的过程中报错 尝试了重新编译就马上好,过不了多久就有变成这样了,于是网上百度Page “pagesOthers/pointsExchange/pointsExchange” has not been registered yet. 看到别人说要吧 下图中勾调掉,尝试了 一下果然好了。开心哈哈

    2024年02月11日
    浏览(56)
  • 反编译微信小程序,可导出uniapp或taro项目

    微信小程序反编译(全网通用) 微信小程序反编译 反编译主要分为四个阶段 操作流程 1. node.js安装 2. node安装模块 3. 开始反编译 4. 导入到微信开发者工具既可运行 微信小程序反编译 当碰到不会写的小程序功能时,正好看到隔壁小程序有类似的功能,一般都想借鉴一下,本

    2024年02月12日
    浏览(36)
  • uniapp底部tabbar编译到APP和小程序 图标大小问题

    问题 :(这里借用网友的一张图 说明下问题)图片左边是编译到APP的效果,右边是编译到小程序的效果, 同样大小的图标编译到不同平台,呈现出来的图标大小不一样 , 但是在uniapp中小程序的tabbar没有设置图标大小的属性 ; 解决方案 :(在 图标库下载不同大小的图片,

    2024年02月15日
    浏览(31)
  • uniapp编译成微信小程序中遇到的兼容性问题

    模板里面如果存在这样的语法,则会报错Bad value with message;然而||\\\'\\\'和||[]则不会报错;如下所示; 解决方法:建议java后端加个拦截器统一处理下null 建议使用计算属性来访问全局变量; 原因: 排查循环依赖的问题 ,如下注释的代码即为循环依赖 uni.scss文件一定不能引用过多的样

    2024年02月07日
    浏览(61)
  • 【uniapp】使用canvas组件编译到微信小程序兼容出错问题

    使用uniapp编译跨平台项目会遇到不少兼容问题,这里主要讲canvas组件的,编译到微信小程序会有兼容出错问题,这里给讲一下解决方案,希望有帮助。 如果使用 CanvasContext 绘制,以下代码,编译到微信小程序上可能发现绘制不出来 看canvas组件的属性 type=\\\"2d\\\" 是否有加,要去掉

    2024年02月02日
    浏览(141)
  • uniapp条件编译区分ios、android、小程序、h5、app等

    条件编译 条件编译是用特殊的注释作为标记,在编译时根据这些特殊的注释,将注释里面的代码编译到不同平台。 **写法:**以 #ifdef 或 #ifndef 加 %PLATFORM% 开头,以 #endif 结尾。 示例代码: 注意 Android 和 iOS 平台不支持通过条件编译来区分,如果需要区分 Android、iOS 平台,请

    2024年02月09日
    浏览(42)
  • uniapp中微信小程序不能编译style绑定方法的解决方案

    这是我的代码设置了根据传参显示不同字体颜色和不同背景色 这两个方法我都写在methods中 在浏览器中H5和app模拟器的效果是一样的如图 在HbuildX中运行至微信开发者工具无效,并且报错如图 第一步 第二步 在computed添加如下代码 至此修改成功,微信开发者工具运行效果如图所

    2024年02月16日
    浏览(51)
  • uniapp编译微信小程序主包过大无法上传进行分包优化步骤

    uniapp编译微信小程序主包过大无法上传进行分包优化步骤: 首先是在uniapp项目中的 manifest.json 文件中找到 源码视图 ,进去之后在微信小程序相关 mp-weixin 之下进行开启分包优化的相关配置: 开始新建项目目录,新建一个跟pages同等级的文件夹,然后把想要分包的文件 先复制

    2024年02月11日
    浏览(52)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包