惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

G
Google Developers Blog
Jina AI
Jina AI
大猫的无限游戏
大猫的无限游戏
Martin Fowler
Martin Fowler
博客园 - 司徒正美
云风的 BLOG
云风的 BLOG
C
Cybersecurity and Infrastructure Security Agency CISA
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
S
Securelist
S
Security Affairs
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
L
LINUX DO - 热门话题
博客园 - 三生石上(FineUI控件)
T
Threatpost
T
The Blog of Author Tim Ferriss
C
CERT Recently Published Vulnerability Notes
IT之家
IT之家
P
Palo Alto Networks Blog
Microsoft Azure Blog
Microsoft Azure Blog
Spread Privacy
Spread Privacy
Cyberwarzone
Cyberwarzone
腾讯CDC
L
LangChain Blog
Know Your Adversary
Know Your Adversary
C
CXSECURITY Database RSS Feed - CXSecurity.com
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
I
Intezer
T
Tor Project blog
AWS News Blog
AWS News Blog
T
Tenable Blog
NISL@THU
NISL@THU
Security Latest
Security Latest
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
H
Hackread – Cybersecurity News, Data Breaches, AI and More
人人都是产品经理
人人都是产品经理
MongoDB | Blog
MongoDB | Blog
MyScale Blog
MyScale Blog
D
DataBreaches.Net
Microsoft Security Blog
Microsoft Security Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
量子位
美团技术团队
The Cloudflare Blog
酷 壳 – CoolShell
酷 壳 – CoolShell
罗磊的独立博客
The GitHub Blog
The GitHub Blog
阮一峰的网络日志
阮一峰的网络日志
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Stack Overflow Blog
Stack Overflow Blog

博客园 - 薛端阳

12小时包你学会基于ReactMix框架的ReactNativeApp开发(一)Hello World! ReactMix框架,让你实现一套js代码,基于ReactNative在H5,App都能完美跑起来,Write Once,Run Anywhere [分享黑科技]纯js突破localstorage存储上线,远程抓取图片,并转码base64保存本地,最终实现整个网站所有静态资源离线到用户手机效果却不依赖浏览器的缓存机制,单页应用最新黑科技 不要听吹牛逼什么前端MVVM框架就是好,其实都是一帮没学好分层设计的搞出来的,让你彻底看清前端MVVM的本质 基于Css反射形自触发事件,优化你的延时事件 巧用正则零宽断言实现靓号检索逻辑 HTML5触屏版多线程渲染模板技术分享 (造福中国前端界)纯前端Js完美解决各种汉字urlencode,urldecode,编码解码问题,不借助任何字库,内码表,轻松一行,兼容IE8+,chrome,firefox,safari等主流浏览器 分享Css3设计---纯Css实现超酷的iphone玻璃气泡效果 中文前端UI框架Kit(十四)超酷的瀑布流特效动画 中文前端UI框架Kit(十三)使用RequireJs托管你的类库和js代码 中文前端UI框架Kit(十二)整合Mustache做kitjs模板引擎,基本写法${varname} 中文前端UI框架Kit(十一)摇头动画?让你的页面元素嗑药嗑起来?? 中文前端UI框架Kit(十)Javascript多线程工作模型的实现 中文前端UI框架Kit(九)IE下实现W3C标准的range对象所有api,支持通过xpath跨浏览器实现特定选区高亮,书签标记功能 中文前端UI框架Kit(八)无插件异步文件上传组件源码解析 中文前端UI框架Kit(七)无插件异步文件上传组件,带进度,支持文件拖拽 中文前端UI框架Kit(六)javascript动画代码实现原理和一些小技巧 不知道大家知道不知道,iOS开发,web页面的链接的active属性无效,但是今天发现一个hack办法可以让Css的active有效
12小时包你学会基于ReactMix框架的ReactNativeApp开发(二)基于Css+HTML写第一个app页面
薛端阳 · 2016-01-15 · via 博客园 - 薛端阳

上一篇文章,大家对于ReactMix(https://github.com/xueduany/react-mix)框架有了一个基本认识,知道我们是一个语法糖,帮助大家基于一套代码,所有平台都能跑。那么今天就是来实战一下,写一个所有平台都能跑的页面出来。

首先我们要准备了解的基本知识如下,在H5开发中,我们的页面布局方式有

1. 默认布局(块状元素和内联元素)

2. 浮动布局(Float)

3. 定位布局(position: relative, absolute, top, left, right, bottom)

4. Flex布局

在ReactNative中,我们能用到的是1,3,4,没有2

另外,在H5中,我们css属性值是有单位的,在ReactNative中没有,ReactMix帮助我们解决这个问题,他作为语法糖支持了CSS的属性值单位问题,使得我们可以像写 css一样写12px, 12pt, 12em, 12rem,且这些单位有实际效力

px即像素,pt即磅,em即默认字体大小,默认是16px, rem即可变字体大小,随屏幕大小而不断变化,这个单位以后会非常重要,使我们解决iOS常见的设备适配问题的关键,有了他,妈妈再也不用担心我的设备适配问题了

Ok,那我们先创建一个空白页面,首先新建一个demo.js

(class Test extends App{
    render(){
        return (
            <Body>
                <Div>
                    HelloWorld!
                </Div>
            </Body>
        );
    }
}).run();

image

这里有个概念提交一下,熟悉ReactNative的同学,可能知道,在ReactNative里面,app启动,需要在AppRegist里面注册,任何app内的应用都有一个主入口,所以ReactMix封装了一个入口函数,兼容不同平台的实现,对于开发者来说只需要继承与App类,页面作为一个静态类,执行自己的run方法,就可以在app展现了

对于开发者来说,你只需要像以上写法一样,写一个自己的静态类,继承与App即可

然后按照ReactJS的模板,在render方法里面返回一段jsx的语法(未来会支持直接基于HTML做翻译,现阶段因为React 比较流行,所以还是基于ReactJs的模板方式)

接着,我们在./css目录里面创建一个test.css文件,写入样式

#J1 {
    color: red;
}
.J2 {
    background-color: yellow;
}

image

然后打开命令行,输入node react.css.build.js,

你可以看到css被同步编译test.js到./reactnative/css目录里面,生成了一个对应的test.js文件

B{_S94{PGABCKNN5H@72BXY

WO~Q53A4H{HOS`6D]7T]XUD

然后,在我们的刚才的./reactnative/demo.js文件里面,引入这个css文件,

输入includeCSS(“require(‘./css/test’)”)

HSB5_GK2%RQK(F@`5MDADYA

这里可能会奇怪,为什么会有2层字符串,原理是这样的,在reactnative里面,我们实际需要的是./reactnative/css/test.js这个文件,而不是./css/test这个文件,在reactnative的加载机制,他按照字符串关键字做import的,所以不需要require语法执行,那么我们只要用一个字符串的require就可以实现加载,但是在H5中,加载css,我们是需要知道他的位置,创建link添加到head中去的,所以会有这么一个奇怪的兼容写法,后面我们说高级技巧的时候,会有一篇专门的章节,重点介绍这个

引入css之后,我们需要给div节点标记id和className,我们修改demo.js成这样

SA{@`UM51[9(4OZV2D}QXQJ

启动,查看效果如下

浏览器./web/index.html

iOS,启动模拟器

安卓启动模拟器

35N2}ZM250P8L$61}S{{)ZM

Ok,让我们再把页面做复杂一点,修改demo.js如下

$GI0~L{UY[Q)DBSGL1_NVF6

接着修改CSS,使用一些className的组合嵌套

2D{CL(~9ATA904_JWT%[1NB

接着查看效果

VR$YIE1XDOU6GGM@5Z}Y5RT

Ok,符合预期,三个平台表现基本一致。

本周休息一周,ReactMix平台最近版本变更非常频繁,希望大家能关注这个新新的框架。我们会持续努力~!