快应用踩坑汇总——下

快应用官方介绍

快应用是一种新的应用形态,以往的手机端应用主要有两种方式:网页、原生应用;网页无需安装,却体验不是很好;原生应用体验流畅,却需要从应用商店下载安装,难以一步直达用户;快应用的出现,就是希望能够让用户无需下载安装,并且还能流畅的体验应用内容。

前排提示:快应用的开发体验真的巨坑,小程序与之相比简直是神仙,例如华为开发甚至要专属的ide,内容也需要额外适配

开发心得感悟

快应用的开发体验真的巨坑,小程序与之相比简直是神仙;

华为开发甚至要专属的ide,内容也需要额外适配;

10分钟能开发完的需求,放在快应用上可能是半小时甚至一小时,ide的坑、语法的坑、连接手机的坑,数不胜数。

坑点汇总

踩坑汇总------上

  1. 快应用不像微信小程序,并不支持浮动float布局,也不支持grid布局,只支持flex布局。

  2. 快应用里的CSS是间接用原生渲染实现的,所以并不支持web css全部属性,常见的不支持:box-shadowoverflowletter-spacingpositionrelativeabsoluttransitionnth-child选择器、hover选择器

  3. 文字要用包裹,在div层写文字默认不渲染,同样在div层设置字体color无效,与字体有关的css都要在text层设置。

  4. 虽然支持border属性,但是你如果只是要一边border:

css 复制代码
// 这样写不行❌

border-bottom: 5px solid #000000; 

// 这样写可以

border-bottom-width: 5px;
border-bottom-style: solid;
border-bottom-color: #000000;
  1. 快应用的px和网页的px不是同一个东西,快应用的px是这样定义的:

    快应用750px = 网页100%width = 微信小程序750rpx = 网页100vw

  2. 接口申明在 manifest 文件的 features 中,除了@system.app使用前以外都需要申明。

  3. 纯文字需text标签 div标签文字内容不展示(文本节点必须放在text, span, a, label 标签内)

  4. 相对定位和绝对定位都不能用,也没有z-index , 因此想实现某个东西浮在另一个东西的上面,需要用到它的stack标签

  5. 设置或清空输入框的值示例.注意: 必须在input的change事件中同步value的变量值

html 复制代码
<div class="input-item">
    <text class="input-hint">设置或清空输入框的值:</text>
    <input class="input-text" type="text" placeholder="必须在change事件中同步value才能改变value" value="{{inputValue}}"
           onchange="updateValue"></input>
    <div class="doc-row" style="margin-top: 30px;">
      <input class="input-button input-button-first color-3" type="button" value="设置value值" onclick="setValue"></input>
      <input class="input-button color-3" type="button" value="清空value值" onclick="resetValue"></input>
    </div>
</div>
updateValue (e) {
 this.inputValue = e.text
},
  1. list-item是一个巨坑,它总是会报各种BUG。为了减少BUG,它内部就不要使用if指令,而改用show指令。
  2. block 用来表示逻辑,不渲染
html 复制代码
<block for="hotWords" :key="$idx">
    <div @click="tapKeyword($item.keyword)" class="hot-search-item">
	<image :src="'/static/' + ($idx+1) + '.png'"></image>
	<text class="desc">{{ $item.keyword }}</text>
    </div>
</block>
  1. 背景颜色要用background-color,用background的话不展示颜色
  2. 在快应用中,想要在某个值发生变化的时候监听到,可以这么写:
js 复制代码
// 我们现给出一组属性:
props: [
    'name',
    'age'
]
onInit () { 
      // 监听数据变化,如果监听的是对象中的某一特性,可以用.   比如user.name,user.age
      this.$watch('name', 'watchNameChange')
      this.$watch('age', 'watchAgeChange')
 },
 watchNameChange (newV, oldV) {
      console.info(`监听name变化:`, newV, oldV)
 },
 watchAgeChange (newV, oldV) {
      console.info(`监听age变化:`, newV, oldV)
 }
  1. display只有flex和none两种值 没有浮动和清除浮动的样式
js 复制代码
// 不支持这么写
flex-flow: row wrap;   
// 需要写成这样
flex-direction: row;
flex-wrap: wrap;
  1. 不支持white-space: nowrap; 要是想单行的话用lines:1

  2. props: ['title', ''], // 传入属性:必须字母开头,全小写、数字和 - ,不能保留字和函数,不能以符号开头,dataList这种大小写混着会报错

  3. 子组件在emit方法时也不能大小写混写 会触发不了事件

  4. 子组件emit事件往父组件传的参数,父组件接收到是个含有时间戳和事件类型还有参数内容的对象

  5. 动态设置当前页面的标题this.$page.setTitleBar({ text: '你要设置的标题' })

相关推荐
王哈哈^_^1 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie2 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic2 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿3 小时前
webWorker基本用法
前端·javascript·vue.js
cy玩具3 小时前
点击评论详情,跳到评论页面,携带对象参数写法:
前端
清灵xmf3 小时前
TypeScript 类型进阶指南
javascript·typescript·泛型·t·infer
小白学大数据4 小时前
JavaScript重定向对网络爬虫的影响及处理
开发语言·javascript·数据库·爬虫
qq_390161774 小时前
防抖函数--应用场景及示例
前端·javascript
334554324 小时前
element动态表头合并表格
开发语言·javascript·ecmascript
John.liu_Test4 小时前
js下载excel示例demo
前端·javascript·excel