开发小程序问题总结

1.获取页面可视区的高度

//getSystemInfoSync是获取系统的信息的
wx.getSystemInfoSync().windowHeight;

2.获取页面的dom元素,原生js在小程序中是无法获取到dom元素的,可以通过下面的方式获取

//https://developers.weixin.qq.com/miniprogram/dev/api/SelectorQuery.exec.html
wx.createSelectorQuery().selectAll('.tables-list').boundingClientRect((tablesList) => {
//这里是获取到的对象列表tablesList.forEach((item, index) => {height += item.height;});
}).exec((tablesList) => {//执行所有的请求,请求结果返回的是dom列表
});

3.scroll-view简单的使用,原理是:需要滚动的元素的高度必须超出父元素(scroll-view)的高度,真机调试才可以看到效果

<scroll-view scroll-y scroll-with-animation></scroll-view>

4.小程序的模板里不允许直接使用原生js的方法和return值,如果需要进行复杂的操作可以使用computed和filter进行数据计算或过滤

5.textarea原生组件如果它的外层元素是fixed的,即使使用fixed=”true”,文字会固定在当前位置,目前解决方法是不给外层添加fixed

6.目前的语言包是通过模拟i81n实现语言包的,在子组件使用语言包需要通过props传值,例如(:t=”t=”t=t”)

7.关于小程序原生组件层级过高问题可以使用它的cover-view进行覆盖

8.mpvue中无法使用axios,而我们的原本的h5项目需要在原来的基础上改版为小程序,可以使用flyio

(1)import Fly from "flyio/dist/npm/wx"const axios = new Fly()export default axios;
另外可以参考一下文档:https://www.poorren.com/mpvue-mini-program-ajax-axioshttps://www.jianshu.com/p/7a4b56e793e4

9.解决小程序内容不够的时候,高度100%无法撑满容器,解决的办法是
1.给page标签添加css
2.是给模板外层容器添加固定定位
3.使用小程序的wx.getSystemInfoSync().windowHeight;例如

(1)
Page{Height:100%;Overflow-y:auto;
}
(2)
.container{position: fixed;height: 100%;width: 100%;display:flex;flex-direction:column;align-items:center;justify-content: center;
}
(3)wx.getSystemInfoSync()可以获取到系统的信息,wx.getSystemInfoSync().windowHeight可以获取到移动端的可视区的高度,可以使用这个给最外层的元素绑定高度。

10.使用mpvue-router-patch代替vue-router实现this.$router.push方法,跳转链接改为/pages/home/main

11.textarea穿透遮罩层的问题,因为原生组件层级最高,会导致textarea定位在遮罩上,解决的办法是通过一个容器模拟textarea的样式,在遮罩出现的时候textarea隐藏,模拟的容器显示,遮罩隐藏的时候,textarea显示,示例:

<textarea :class="is_weixin ? 'textarea-padding' : ''" v-show="!mastload" name="" :placeholder="请输入留言" v-model="notice" cursor-spacing="90">
</textarea>
<div :class="is_weixin ? 'textarea-div' : ''" v-show="mastload" class="textarea">
请输入留言
</div>

(1)is_weixin是用来判断手机系统的,因为textarea在android和ios的样式不同,在computed里计算,代码如下:

is_weixin: function () {let res = wx.getSystemInfoSync();//获取手机系统类型android或ioslet system = res.platform === 'android' ? true : false;return system; 
}

12.页面层数的处理,我们知道小程序的页面栈达到10层的时候,如果还是使用wx.navigateTo()是无法跳转的,这个时候我们可以使用wx.reLaunch()、wx.redirectTo()、wx.navigateBack()解决这个问题,看代码(mpvue里的解决方案,如果使用其它框架或原生api替换掉跟mpvue-router-patch相关的方法即可)

//跳转的时候直接调用这个函数,这篇文章有详细说明 https://segmentfault.com/a/1190000012282464
toPushPages: function (params) {//获取页面层数let currentsPages = getCurrentPages();let len = currentsPages.length;//可能每个人的传进来的参数不同,有可能是字符串或对象let path = typeof params == 'object' ? params.path : params;//查找是否存在页面层数中let index = currentsPages.findIndex(item => {//替换掉第一个/,有可能不同的传进来的参数不同return path.replace(/^\//, '') == item.route;})//回退的页面层数,默认是1let backFloor = len - (index + 1);//判断页面栈中是否已经存在,存在则使用回退的方式if (index >= 0) {this.$router.go(backFloor);} else {//判断页面栈中的层数是否达到限制,就让顶层的栈出栈,需要跳转的页面进栈if (len >= 10) {this.$router.replace(params);} else {this.$router.push(params);}}}

13.注意小程序中,编译后的代码包最大为2M,超过2M,需要对资源进行处理,例如图片的优化,或者做分包处理最大为8M

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/517029.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

为什么 APP 纷纷开发“暗黑模式”?优酷最佳实践总结

一、缘起 随着iOS 13和Android 10的正式发布&#xff0c;一个名词"暗黑模式(Dark Mode)"逐渐走入了大家的视野。各大APP都将暗黑模式的适配列入了开发日程&#xff0c;舆情上用户们对暗黑模式支持的呼声也非常的高。优酷主客也顺应时势&#xff0c;启动了相应的技术…

Mongo 安装、配置、启动 Windows

文章目录一、Mongo 安装1. Mongo 下载2. 安装3. 配置环境变量4. 验证5. 连接二、Mongo 配置2.1. 编辑mongod.cfg2.2. 修改dbPath2.3. systemLog路径2.4. 启动Mongod服务2.5. 安装MongoDB服务2.6. 验证一、Mongo 安装 1. Mongo 下载 下载Mongo数据库并安装 https://www.mongod…

混合云存储阵列与云存储网关的协同解决方案

前言 混合云存储阵列&#xff08;CSA&#xff09;于2017年云栖大会发布&#xff0c;上市2年多&#xff0c;已经被基因测序&#xff0c;医疗PACS&#xff0c;影视制作&#xff0c;非编&#xff0c;广电&#xff0c;视频监控等行业和场景的客户广泛采用。混合云存储阵列承载了用户…

炸裂!Google这波操作,预警了什么?

我们都知道谷歌爸爸收购了Cask Data一家公司。长期以来&#xff0c;谷歌致力于推动围绕 GoogleCloud 的企业业务&#xff0c;但在这方面一直被亚马逊和微软吊打&#xff0c;这次的收购正是为了弥补自身的短板。被收购的 Cask Data 是一家专门提供基于Hadoop的大型数据分析服务解…

Robo 3T 安装连接 MongoDB

文章目录1. 官网2.安装3. 连接 MongoDB1. 官网 https://robomongo.org 2.安装 3. 连接 MongoDB

何为真正的 FaaS ?阿里舜天平台做了四大创新

导读&#xff1a;数据中心和云计算的超高增速&#xff0c;AI、视频、基因测序等应用对于算力的无尽渴求和摩尔定律发展事实上已经停滞的现实&#xff0c;均给异构加速带来了巨大的应用潜力和商机。但 Faas 解决方案仍有较高的门槛&#xff0c;今天&#xff0c;我们一起了解 Faa…

oracle+mybatis查询遇到CHAR类型字段

工作中遇到的&#xff1a; 某一张表A的某个字段B的类型为CHAR(4),往表A中插入一条数据&#xff0c;B字段的值为1&#xff0c;表面上(肉眼)看到B的值为1&#xff0c;但实际上为1加3个空格&#xff0c;会出现如下问题&#xff1a;mybatis的sql中用B字段去做查询条件 B1’时查不到…

阿里云杜欢:云上Serverless开发能力将成为前端的“金手指”

云 端模式成为当前前端开发的新风向&#xff0c;由此而来的 Serverless 正帮助前端工程师提升开发能力和效率。InfoQ 记者在近日有幸在 2019ArchSummit 全球架构师峰会北京站采访到了阿里高级前端技术专家杜欢&#xff08;风驰&#xff09;&#xff0c;他为我们详细梳理了阿里…

SOA为什么不“香”了? | 大咖说中台

作者 | 耿立超责编 | 晋兆雨来源 | 《大数据平台架构与原型实现&#xff1a;数据中台建设实战》SOA 所有的理念都是基于现有应用系统展开的&#xff0c;不管是对服务的梳理还是服务之间的交互&#xff0c;都是以现有应用系统为载体的&#xff0c;中台不同于SOA 的地方在于&…

MongoDB 4.2 内核解析 - Change Stream

MongoDB 从3.6版本开始支持了 Change Stream 能力&#xff08;4.0、4.2 版本在能力上做了很多增强&#xff09;&#xff0c;用于订阅 MongoDB 内部的修改操作&#xff0c;change stream 可用于 MongoDB 之间的增量数据迁移、同步&#xff0c;也可以将 MongoDB 的增量订阅应用到…

Vue项目启动后Error: Cannot find module ‘xxx’的解决方法

文章目录1. 删除2. 安装依赖3. 启动项目解决方法 1. 删除 删除 node_modules 整个文件夹和 package-lock.json 文件(这个文件不一定有)&#xff0c;注意不是 package.json 2. 安装依赖 在项目下运行&#xff1a;npm install# or yarn3. 启动项目 npm start # or yarn star…

看到抖音上Python工程师晒得工资条,我沉默了......

我是个抖音中毒者闲来无事就喜欢刷抖音最近刷到了一个Python工程师的工资条然后我默默的打开看了然后就默默的关闭了如今Python技术由于大数据、人工智能的兴起Python也越来越火大家都纷纷学Python我不能跟你确保说学完Python你就能拿高工资但是你学完Python肯定有饭吃说不定还…

不用 H5,闲鱼 Flutter 如何玩转小游戏?

阿里妹导读&#xff1a;最近APP游戏化成为了一个新的风口&#xff0c;把在游戏中一些好玩的、能吸引用户的娱乐方式或场景应用在应用当中&#xff0c;以达到增加用户粘性&#xff0c;提升DAU的效果&#xff0c;成本较低。同时在一些需要对用户有引导性的场景&#xff0c;游戏化…

阿里巴巴向全社会开放黑科技:“泡在水里”的服务器

为了让数据中心更绿色&#xff0c;阿里工程曾将服务器“泡在水里”进行散热&#xff0c;节能超70%&#xff0c;今天这项黑科技的神秘面纱被揭开。 2020年1月6日&#xff0c;阿里巴巴宣布将“浸没式液冷数据中心技术规范”向全社会开放。这项规范旨在用一套标准流程为下一代绿色…

VS Code vue 模板

我们希望每次新建.vue文件后&#xff0c;VSCODE能够根据配置&#xff0c;自动生成我们想要的内容。 打开VSCODE编辑器&#xff0c;依次选择“文件 -> 首选项 -> 用户代码片段”&#xff0c;此时&#xff0c;会弹出一个搜索框&#xff0c;我们输入vue&#xff0c; 如下&am…

程序员必备基础:Git 命令全方位学习

来源 | 捡田螺的小男孩责编 | Carol封图 | CSDN 下载自视觉中国掌握Git命令是每位程序员必备的基础&#xff0c;之前一直是用smartGit工具&#xff0c;直到看到大佬们都是在用Git命令操作的&#xff0c;回想一下&#xff0c;发现有些Git命令我都忘记了&#xff0c;于是写了这篇…

eBay邓明:dubbo-go 中 metrics 的设计

最近因为要在 Apache/dubbo-go&#xff08;以下简称 dubbo-go &#xff09;里面实现类似的这个 metrics 功能&#xff0c;于是花了很多时间去了解现在 Dubbo 里面的 metrics 是怎么实现的。该部分&#xff0c;实际上是被放在一个独立的项目里面&#xff0c;即 metrics 。 总体…

稳定性专题 | Spring Boot 常见错误及解决方法

导读 『StabilityGuide』是阿里多位阿里技术工程师共同发起的稳定性领域的知识库开源项目&#xff0c;涵盖性能压测、故障演练、JVM、应用容器、服务框架、流量调度、监控、诊断等多个技术领域&#xff0c;以更结构化的方式来打造稳定性领域的知识库。 Spring Boot 作为 Java…

vue3 线上环境 ctx 无法识别

解决方案&#xff1a; Vue3获取当前组件实例的 getCurrentInstance 方法上 ctx 生产获取不到 上面的全局方法&#xff0c; getCurrentInstance代表上下文&#xff0c;即当前实例。ctx相当于Vue2的this, 但是需要特别注意的是ctx代替this只适用于开发阶段&#xff0c;如果将项目…

新职业风口已至!人社部宣布这10个职业缺口近千万!

负责阿里小蜜产品的陈海青是阿里最年轻的P9专家&#xff0c;才30岁出头&#xff0c;已经年入百万。小编的前领导&#xff0c;农村出身毫无背景&#xff0c;但是抓住风口卖掉了手里的比特币全款买了学区房&#xff0c;让他的孩子赢在起跑线上。面对这些踩在风口上的幸运儿&#…