UNI-APP_nvue踩坑

2023-11-05 00:01
文章标签 app uni nvue

本文主要是介绍UNI-APP_nvue踩坑,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

踩坑1

1.nvue里面的样式不可以用预编译语言,只能用css;
2.不能随心所欲地使用选择器,nvue只支持单类选择器(不可以使用交集选择器和后代选择器,但可以使用并集选择器);
3.div是容器,里面不能直接写字,要在里面写上text

其他:

1.nvue支持行高line-height,但是不支持纯数字的行高(表示行高是字体大小的多少倍),只支持带单位的长度。(我就特别喜欢用数字做为行高,结果打开页面我一脸懵逼,文字只能看见一条线,改成具体的高度后就正常了)

2.nvue不支持box-sizing的设置。(我之前很喜欢用padding撑开距离,因为box-siziing默认是content-box,用padding可以撑开距离,结果nvue的box-siziing是border-box而且无法修改,给图片加上padding会让图片变形)

3.nvue里的fixed定位的元素不受z-index的影响,层级完全由先来后到决定,写在后面的元素层级永远比写在前面的高。

4.nvue里,如果需要用bottom来定位,怎么办?我知道定位的四个偏移量里,top优先级高于bottom,left高于right。在浏览器中,只想用bottom来定位,不想用top,直接用bottom没问题,在nvue里我就碰壁了。解决方法是:先把优先级高的top“解决掉”,才能用bottom——在样式里,写上top:auto;然后对bottom的设置才会生效。left和right也是同理。

5.nvue要怎么控制文字的换行?CSS里有white-space控制换行,然而nvue不支持。如果想让文字不换行,可以设置lines属性为1(默认为0表示没有限制多少行)

6.uni-app的为vue文件提供了更多的生命周期,nvue文件却没有。比如onLoad就没有,如果要做初始化的工作,可以写在mounted生命周期钩子里去。

踩坑2

1.关于图片圆角。

因为我做的页面上面有出现用户头像,是圆形的,需要做成图片圆角。看了一些别人的博客,他们说是在“外层的父容器

的样式上加上圆角,然后用overflow来切掉它,让图片变圆”可是我尝试了以后发现并没有成功。

然后,我把关注点从

上挪开,改成在上加上border-radius,就成功了,写成50%和带单位的长度都是有效的!

2.关于显示隐藏。

nvue必须用flex布局,我认为原因是它里面的display值为flex,而且不可以改成标准流的block等,也就是不支持修改display。

v-show的显示隐藏就是靠display:none;和 display: block;很显然v-show在nvue里会失效。而v-if是把整个元素删掉和插入了,是可以做到显示隐藏的,但是我认为对于弹窗来说,需要频繁切换显示隐藏,v-if用在这里不合适。所以,必须找一个不借助display:none;的隐藏方法,而且隐藏后不能占空间(不能被误点到),也不能频繁插入和删除元素。

所以不能用插入删除元素的v-if,不能用作为障眼法的transform: scale(0),opacity: 0;也不可能用仍然占空间的visibility:hidden;(我试用了下,发现在nvue里这个没有生效)。我想到了用宽度或高度为0的办法。

具体来说,对于宽度固定的元素,如蒙板是全屏的,宽度肯定是750rpx,或者某个弹窗高度不确定,但宽度为500rpx,这个时候可以给默认样式写成width:0;然后根据条件判断,要显示的时候加上另一个叫“show”的calss,在“show”里面写上正常的宽度。这样,这个元素一直存在于页面,是否可见完全取决于有没有加上show这个class。

反之,有的元素高度是固定的,或者和后面的元素上下相连,不希望隐藏的时候保留高度,就可以做成默认height:0;,在“show”的class里写上具体的高度。

如果不给widh和height设置固定的宽度和高度,则它们的实际大小是由内容撑大的。但是很遗憾,我发现给“show”里面设置width或height为auto;并没有效果。所以只能退而求其次,在确定是固定的大小的那一方进行这样切换。如果width和height都设为0,还能看见元素的一小部分,那不是因为有的东西无法隐藏,而是因为padding撑起了这一小块的空间。

3.一个小细节。

我想让点击内层元素,事件不冒泡,但又暂时不知道内层元素点击了要做些什么事情,就写成了@tap.stop,后面没有绑定事件函数,我记得这样也是可以的。结果出现了非常莫名其妙的错误,value.trim is not a function。我根本就没有写到trim。百度了一堆,错误原因五花八门,我通过排除法才找到这里的。问题应该是我没有绑定函数,我最后是绑定了一个空函数到这里。

4.关于flex的小细节。

我发现给内层的元素设置宽度和高度的时候,用百分比无效,用带单位的数字可以。

这篇关于UNI-APP_nvue踩坑的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/346075

相关文章

MFC中App,Doc,MainFrame,View各指针的互相获取

纸上得来终觉浅,为了熟悉获取方法,我建了个SDI。 首先说明这四个类的执行顺序是App->Doc->Main->View 另外添加CDialog类获得各个指针的方法。 多文档的获取有点小区别,有时间也总结一下。 //  App void CSDIApp::OnApp() {      //  App      //  Doc     CDocument *pD

ConstraintLayout布局里的一个属性app:layout_constraintDimensionRatio

ConstraintLayout 这是一个约束布局,可以尽可能的减少布局的嵌套。有一个属性特别好用,可以用来动态限制宽或者高app:layout_constraintDimensionRatio 关于app:layout_constraintDimensionRatio参数 app:layout_constraintDimensionRatio=“h,1:1” 表示高度height是动态变化

App Store最低版本要求汇总

1,自此日期起: 2024 年 4 月 29 日 自 2024 年 4 月 29 日起,上传到 App Store Connect 的 App 必须是使用 Xcode 15 为 iOS 17、iPadOS 17、Apple tvOS 17 或 watchOS 10 构建的 App。将 iOS App 提交至 App Store - Apple Developer 2,最低XCode版本 Xcod

鸿蒙自动化发布测试版本app

创建API客户端 API客户端是AppGallery Connect用于管理用户访问AppGallery Connect API的身份凭据,您可以给不同角色创建不同的API客户端,使不同角色可以访问对应权限的AppGallery Connect API。在访问某个API前,必须创建有权访问该API的API客户端。 1.登录AppGallery Connect网站,选择“用户与访问”。选择左侧

Xinstall助力App全渠道统计,参数传递下载提升用户体验!

在移动互联网时代,App已成为我们日常生活中不可或缺的一部分。然而,对于App开发者来说,如何有效地推广和运营自己的应用,却是一个不小的挑战。尤其是在面对众多渠道、复杂的数据统计和用户需求多样化的情况下,如何精准地触达目标用户,提升用户的下载、安装和活跃度,更是考验着每一个运营者的智慧。 今天,我们就来揭秘一个能够帮助App开发者解决这些痛点的神器——Xinstall。作为一家一站式App全渠道

Flask 创建app 时候传入的 static_folder 和 static_url_path参数理解

Flask 在创建app的时候 是用 app = Flask(__name__) 来创建的,不传入 static_folder参数的话 ,默认的静态文件的位置是在 static目录下 我们可以进入 Flask的源码里面查看 ctrl+鼠标左键进入 这是Flask的 __init__源码(后面还有一些,我就选了需要的代码)     def __init__(self,import_

Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: '-[__NSCFArra

这个错误说的是一个不可变数组负值给了一个可变的数组。有可能你前面定义的数组是一个可变数组,但是在你其他方法里面用他的时候,他就是一个不可变数组,因为在可变数组拿到别的地方用的时候,他会默认为不可变的,可能这只是一个类里面你只是简单的声明了他吧,并没有进行对他初始化,或者分配什么内存,所以他只是一个不可变的数组,当你在其他地方用他的时候,他就默认为不可变的数组,他可能因为你的没分配内存,而变回不可变

app提交到腾讯开发平台,提示无法获取签名信息,请上传有效包(110506)

最近提交APP时遇到的,一般情况下是因为打包时至勾选v2没有勾选v1的原因,如下图: 这个时候将v1勾选即可。 但是在打包时ˉv1和v2都勾选了也可能会出现这个报错,那就要看一下gradle的 minSdkVersion,如果这个版本在24-26之间也可能会提示这个错误,所以降低这个版本就可以了

基于Python的电商导购APP设计与实现

基于Python的电商导购APP设计与实现 Design and Implementation of an E-commerce Shopping Guide App based on Python 完整下载链接:基于Python的电商导购APP设计与实现 文章目录 基于Python的电商导购APP设计与实现摘要第一章 简介1.1 研究背景1.2 研究目的1.3 研究方法1.4 论文结

uni-app填坑指南——解决处理处理静态资源的问题

说实在话,这个标题其实有点夸大了。 uni-app并没有不解决,而是解决的不够充分不够彻底。这里我们来讨论一下uni-app在处理静态资源的问题上的一些不足之处。 1. 问题描述 在uni-app中,我们可以将静态资源放在static目录下,然后通过相对路径的方式引用。比如我们有一个图片资源logo.png,我们可以通过<img src="@/static/logo.png" />的方式引用。