weex h5开发区别-实践初级篇
html标签
weex中没有标签的概念,html中标签对应于weex中的Components
weex 无
<span> 、<p>,用<text>替代。但是<text>内部不能嵌入组件在HTML中通常使用的
<img>标签在 Weex 中不支持,应该使用<image>。内容部分有滚动效果,使用
<scroller>。使用css的overflow属性不能让内容滚动。
css语法
Weex 中只支持单个类名选择器,不支持关系选择器,也不支持属性选择器。
样式默认是 scoped,即组件级别作用域。
视窗的宽度是750px(width=device-width),设计稿给出的是375px,故写css px 的时候要用2倍
布局,使用
flexbox布局box-shadow 安卓不支持, 目前官方最新的weex版本支持,需客户端sdk升级
iOS 如果写外部阴影,ios 要加上一个background。
box-shadow: 0px 0px 6px #cccccc;
background: #ffffff;
native, DOM设置position: absolute时, 不支持top、 left百分比, 要用px 写死。
支持自定义font-family, 但是不支持自提文件放在服务器端,一般放在客户端本地。
把字体文件放在native的时候,注意下路径,本地资源都采用'local:// '的方式加载,但是android需要加一个path,这个path随便填,如rpd。
不支持z-index, 如果想要层级(如蒙层),请用position: absolute, 把你想要层级高的dom元素放在后边
不支持css动画,要动画效果使用内建组件animation, 具体见https://weex-project.io/cn/references/modules/animation.html
border不支持简写。style、width、color只能分开写
关于DOM和BOM
weex环境中没有DOM,weex在native解析的html得到的是原生布局数
weex没有BOM,但是可以使用移动设备原生 API(即Modules),通过注册、调用模块来实现。
例如
const storage = weex.requireModule('storage');
vue语法
事件修饰符
.prevent,.capture,.stop,.self在native不支持。键盘事件修饰符.enter,.tab,.ctrl,.shift同样在native也不支持。指令不支持 v-html 、v-show、v-clock
options 不支持comments
实例方法不支持vm.$mount()
内置组件不支持transition
生命周期不支持activated和deactivated
使用组件,直接绑定click.native ,在web端会触发两次,用事件传递(事件名称避免使用原生事件名称),可避免。
组件事件传递,最好不要和原生事件冲突。比如子组件this.$emit('click'),在web端 父组件@click会响应两次,native却没有这个问题。
:class="['verifyitem--' + verifyStatus]”, class 写法不支持vue object的写法,只支持数组式的写法 , 而且只能写一个自定义的类。 由于 Weex 在 native 上的渲染机制,从类名中取样式会是一个高频操作,简化,具体见<https://github.com/alibaba/weex/issues/2303
inputandswitch组件不支持 click事件,使用changeorinput替代。不支持
document和其他各种 DOM API。没有
window、screen、history、location、navigator等变量。关于蒙层, 安卓点透问题解决办法:e.preventDefault && e.preventDefault();
配置
- 页面
src/entry.js 执行的始端,相当于项目模版中的index.js
src/views/a.js 页面a的配置,指定title和页面入口
src/entries/a/ 页面, 相当于项目模版中的src/webview/a
- 代码在web端运行,需要依赖weex-vue-render(web端的vue DSL)。
- 解析
.vue文件需要的loader,native端需要 weex-loader , web端需要Webpack + vue-loader
调试
本地运行的时候需要同时执行npm run dev 和 npm run serve
ios调试小工具->Week DebugTool->扫描二维码
安卓调试小工具->功能->扫码
动态更新机制
目前,打开的weex页面的时候会向服务器请求js bundle,但是本次渲染的是本地的js bundle,要等到第二次打开才会渲染最新的。
这个更新机制不太友好,做不到h5的动态性。
其他
区分端 weex.config.env.platform = web/iOS/android
通过this.$route.push('/**') 打开另外一个weex页面,回到上一个页面的事件使用viewappear。具体见https://weex.apache.org/cn/references/common-event.html#Page-事件
ajax请求,如果是native端, 避免跨域
svg-icon 如果碰到显示不全,请用图片替代
一些参考的资料
阿里的weex-ui组件 https://github.com/alibaba/weex-ui/blob/master/README_cn.md
Weex调试神器——Weex Devtools使用手册 https://github.com/weexteam/article/issues/50
https://segmentfault.com/a/1190000011027225
weex h5开发区别-实践初级篇的更多相关文章
- 使用Asp.Net Core MVC 开发项目实践[第一篇:项目结构说明]
先从下图看整体项目结构: Mango.Manager: 为后台管理项目 Mango.Web: 为前台项目 Mango.Framework.Core: 为常用的基础操作类项目 Mango.Framewo ...
- vivo浏览器的快速开发平台实践-总览篇
一.什么是快速开发平台 快速开发平台,顾名思义就是可以使得开发更为快速的开发平台,是提高团队开发效率的生产力工具.近一两年,国内很多公司越来越注重研发效能的度量和提升,基于软件开发的特点,覆盖管理和优 ...
- 使用Asp.Net Core MVC 开发项目实践[第二篇:EF Core]
在项目中使用EF Core还是比较容易的,在这里我们使用的版本是EF Core 2.2. 1.使用nuget获取EF Core包 这个示例项目使用的是SQLSERVER,所以还需要下载Microsof ...
- ABP框架实践基础篇之开发UI层
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 说明 其实最开始写的,就是这个ABP框架实践基础篇.在写这篇博客之前,又回头复习了一下ABP框架的理论,如果你还没学习,请查看AB ...
- Python开发【第七篇】:面向对象 和 python面向对象(初级篇)(上)
Python 面向对象(初级篇) 51CTO同步发布地址:http://3060674.blog.51cto.com/3050674/1689163 概述 面向过程:根据业务逻辑从上到下写垒代码 ...
- 【转帖】H5 手机 App 开发入门:概念篇
H5 手机 App 开发入门:概念篇 http://www.ruanyifeng.com/blog/2019/12/hybrid-app-concepts.html 作者: 阮一峰 日期: 2019年 ...
- Hadoop MapReduce开发最佳实践(上篇)
body{ font-family: "Microsoft YaHei UI","Microsoft YaHei",SimSun,"Segoe UI& ...
- 零基础学习hadoop到上手工作线路指导初级篇:hive及mapreduce
此篇是在零基础学习hadoop到上手工作线路指导(初级篇)的基础,一个继续总结.五一假期:在写点内容,也算是总结.上面我们会了基本的编程,我们需要对hadoop有一个更深的理解:hadoop分为h ...
- Python开发【第七篇】:面向对象 和 python面向对象进阶篇(下)
Python开发[第七篇]:面向对象 详见:<Python之路[第五篇]:面向对象及相关> python 面向对象(进阶篇) 上一篇<Python 面向对象(初级篇)> ...
随机推荐
- Linux进阶指令(重点)
三.Linux进阶指令(重点) 1.df指令 作用:查看磁盘的空间 #df -h 选项:-h 表示以可读性较高的形式展示大小 2.free指令 作用:查看内存使用情况 #free ...
- python中令人惊艳的小众数据科学库
Python是门很神奇的语言,历经时间和实践检验,受到开发者和数据科学家一致好评,目前已经是全世界发展最好的编程语言之一.简单易用,完整而庞大的第三方库生态圈,使得Python成为编程小白和高级工程师 ...
- Mui中常见问题记录
1.mui中A标签如果有这个class="mui-control-item"时,a标签点击链接是没有反应的,那么可以用以下方式实现 : mui.init(); mui('body' ...
- py库:os、shutil、pathlib
https://www.cnblogs.com/MnCu8261/p/5494807.html shutil模块 http://blog.csdn.net/rozol/article/details/ ...
- 利用checkbox自带属性indeterminate构建含部分选中状态的树状结构
本来上个月就像发的,但是一直忙啊忙的也没时间整理,所以拖到了现在. 好吧上面这句就是废话,我就是感概下.下面是正文. 前段时间在弄一个轻量级的web项目,要构建一个树状结构目录,同时希望能把部分选中的 ...
- Vsftpd服务重启、暂停命令
VSFTP是一个基于GPL发布的类Unix系统上使用的FTP服务器软件,它的全称是Very Secure FTP 从此名称可以看出来,编制者的初衷是代码的安全. 在使用Vsftp服务是经常需要启动.停 ...
- ios 信任charles https 证书
https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/ https://support.apple.com ...
- MySql:SELECT 语句(六) CONCAT() 函数的使用
一.计算字段 为什么要用计算字段? 1)想要在一个字段中既显示公司地址,又显示公司名称,但是往往这两个都不在一个字段中 2)列数据是大小写混合的,但是报表程序需要把他们全部按大写形式展示出来 3)需要 ...
- C# 异步示例代码
在 使用BackgroundWorker组件 一文中,阐述了在Winform编程中,使用BackgroundWorker组件实现异步调用,本文主要讲述利用委托实现异步. 以下描述摘抄于MSDN: 异步 ...
- Jquery 字符串转数字
其实在jquery里把字符串转换为数字,用的还是js,因为jquery本身就是用js封装编写的. 比如我们在用jquery里的ajax来更新文章的阅读次数或人气的时候,就需要用到字符串转换为数字的功能 ...