我愛學(xué)習(xí)網(wǎng)-上傳
當(dāng)前位置: 主頁 > 文庫 > Html/CSS >

ReactNative-從css、html、js開始

時間:2020-07-21 19:10來源:我愛學(xué)習(xí)網(wǎng) 作者:apple 點(diǎn)擊:

前端

 

Android、iOS、Web?頁?面其實(shí)都屬于前端領(lǐng)域,本質(zhì)上都是醬數(shù)據(jù)展示給?用戶(畫界?面),經(jīng)過多年年的技術(shù)沉淀,和各個端之間的互相借鑒,整體結(jié)構(gòu)慢慢趨向?一致。web?頁?面出現(xiàn)的時間最早,現(xiàn)在Android、iOS開發(fā)出現(xiàn)的很多新思想其實(shí)都是來源于web,?比如rxJava、mvvm,數(shù)據(jù)綁定等等,再?比如模塊化其實(shí)這些東?西,web 前端很早就出現(xiàn)了了。最近開始流?行行的跨平臺?方案,react-native 本身就是基于react的?二次開發(fā),所以在開發(fā)上web 前端差別其實(shí)不不?大。即便便是另起爐灶的Flutter在很多?方?面也是現(xiàn)在的單?頁app應(yīng)?用類似。web前端其實(shí)也借鑒了了傳統(tǒng)客戶端開發(fā)的?一些東?西?比如組件化等。

拋開性能優(yōu)化,和操作系統(tǒng)的交互,底層實(shí)現(xiàn),其實(shí)前端就是解決了了三個問題

1. 畫在哪?里里

2. 怎么畫

3. 怎么交互

 

接下來將從這三個?方?面解析,不不會去涉及過多開發(fā)細(xì)節(jié),只能算是掃盲,了了解web前端的整體開發(fā)模式,并舉例例說明

 

畫在哪?里里?怎么畫?

 

畫界?面?刀耕?火種的?方式,當(dāng)然就是使?用OpenGL進(jìn)?行行繪制,但是它只是?一套圖形函數(shù)庫,只能繪制點(diǎn)、線、三?角形,通過點(diǎn)線?面最終繪制出各種我們所看到圖像,繪制的位置等等,都需要?手動處理理,如果你要純?用OpenGl來開發(fā)?一個?網(wǎng)?頁或者?一個app,它的?工作量量是不不可想象的,?而且你很難收集需求,不不能準(zhǔn)確描述出?自?己的UI需要如何布局,于是就有了了DSL(Domain Specific Language),領(lǐng)域特定型語?言,與之對應(yīng)的就是想Java、Pyhton這些通?用編程語?言,通俗易易懂的說就是DSL就是為了了解決某些特定場景下的任務(wù)?而專?門設(shè)計的語?言,html&css就是就是其中?一種,還有像正則表達(dá)式、SQL語句句等等,這?里里我們只討論html&css。

 

每個界?面如果純?用代碼編寫,都會?面臨?大量量的代碼?工作量量,這?里里?面可能更更多的是?一些重復(fù)的機(jī)械性的代碼?工作。諸如:某個元素設(shè)置?長寬,設(shè)置居中,設(shè)置?文字,設(shè)置距離上個元素XX像素,N個元素?一起縱向,橫向平均排列列等等。對于代碼實(shí)現(xiàn)界?面開發(fā)來說,程序員需要編寫?一系列列諸如:setFrame,setTitle,setColor,addView這樣的代碼,?一邊寫這樣的代碼,?一邊查閱設(shè)計師給出的各種標(biāo)注。

 

為了了提?高?工作效率,如果能把?一些設(shè)計師產(chǎn)出的?長寬,?色值,?文字,居中,距上等設(shè)計元數(shù)據(jù)(設(shè)計的標(biāo)注信息等),以?一種約定的簡潔的語?言規(guī)則(即DSL)輸?入給程序代碼,由程序和代碼?自動的分析和處理理,從?而?生成真正的界?面開發(fā)代碼setFrame,setTitle,setColor,addSubview,這樣就可以?大幅度的減少代碼量量與?工作量量,程序員來寫這種簡潔的語法規(guī)則會更更快更更?高效,甚?至可以把這種簡潔的語法規(guī)則教會設(shè)計師,讓設(shè)計師有能?力力直接寫出DSL,然后輸?入給底層程序,這樣界?面就?自然完成。(這好像可以解釋為啥早期前端?工程師很多都是設(shè)計出身,?而且他們還很懂設(shè)計。。。)

 

html&css,是?網(wǎng)?頁開發(fā)普遍使?用的,你寫出的每?一個html的標(biāo)簽以及css的屬性樣式,最后都不不是通過.html .css?文件渲染到屏幕到瀏覽器?上的,都是通過瀏覽器?內(nèi)核解析成DOM樹,最后調(diào)?用OpenGL,C++代碼渲染上去的。從這個層?面講,Android客戶端框架?用的xml,iOS客戶端開發(fā)的XIB,與?網(wǎng)?頁瀏覽器?的html&css是?一回事。

 


//html是最外層標(biāo)簽 // Sign Up

Si gn Up

×

Sign Up


Please fill in this form to create account!

Email Password Repeate Password Remember me

CancelSign Up

 

 

 *{
box-sizing: border-box
}
body {
    font-family: Arial, Helvetica, sans-serif
}
input[type = text],input[type = password] {
    width: 100%;
    background-color: #f1f1f1;
    border: none;
    padding: 15px;
    display: inline-block;
    margin: 5px 0 22px 0;
}
input[type=text]:focus, input[type=password]:focus {
    background-color: #ddd;
    outline: none;
}
.container {
    padding: 16px;
}
button {
    background: #6495ED ;
    color: white;
    padding: 14px 20px;
    margin: 8px 0;
        border: none;
    cursor: pointer;
    width: auto;
    opacity: 0.9;
}
button:hover {
    opacity: 1;
}
.modal {
    display: none;
    z-index: 1;
    width: 100%;
    height: 100%;
    position: fixed;
    left: 0;
    top: 0;
    overflow: auto;
    background-color: #474e5d;
    padding-top: 50px;
}
.modal-content {
    background-color: #fefefe;
    margin: 5%  auto 50% auto;
    width: 80%;
    border: 1px solid #888
}
hr {
    margin-bottom: 25px
}
.close {
    position: absolute;
    top: 10px;
    right: 10px;
    font-size: 40px;
    font-weight: bold;
    color: #f1f1f1
}
.close:hover,
.close:focus {
    color: #f44336;
    cursor: pointer;
}
border: 1px solid #f1f1f1;
 
 .clearfix::after {
    content: "";
    clear: both;
    display: table;
}
.cancelbtn {
    padding: 14px 20px;
    background-color: #f44336;
}
.cancelbtn,.signupbtn {
  float: left;
  width: 50%;
}

怎么交互?

 

function sign(email, psw, psw_repeat) {
    console.log(email,psw,psw_repeat)
    if (psw === psw_repeat) {

 

console.log("注冊成功!")} else {

 

console.log("兩次密碼不不?一樣!")}

 

}

 

總結(jié)中秋快樂!

 

原?生web前端開發(fā)其實(shí)差不不多就是這樣,有?一定Android或者iOS開發(fā)基礎(chǔ),是不不是?大概可以想像出,?一個?網(wǎng)站的開發(fā)是怎樣的,排除性能問題還有?一些潛在的坑,?大概就是使?用JavaScript?網(wǎng)絡(luò)請求,拿到數(shù)據(jù),格式可以是json等等,然后解析數(shù)據(jù),操作dom樹,將數(shù)據(jù)展現(xiàn)出來。這,不不就和原?生開發(fā)思想?一?毛?一樣嗎?但是,你也會發(fā)現(xiàn),原?生api直接操作dom樹,是不不是很不不優(yōu)雅,document.getElementById('sign_up_modal'),代碼中出現(xiàn)很多這種重復(fù)的?又臭??又?長的代碼想象就很不不舒服,?而且如果要操作?非常多的node節(jié)點(diǎn),就要寫得更更臭?更更?長,于是早期就出現(xiàn)了了像jQuery這樣的解決?方案,然后就美滋滋了了,具體?自?己去看,但隨著互聯(lián)?網(wǎng)業(yè)務(wù)拓拓展和發(fā)展,?面向移動端,新的瀏覽器?,不不需要兼容古?老老的IE,新的原?生api可以很好的代替jQuery,性能上也能做到更更優(yōu)。?而且出現(xiàn)了了代替直接操作Dom樹的?方案,?比如react、vue、angular等等,這些才是前端開發(fā)現(xiàn)在的主流框架,下?一篇?文章,再來掃盲?一下現(xiàn)在的框架,以及?一些打包?工具(webpack)和包管理理?工具(npm),就可以開始第?一個react-native應(yīng)?用遼。

------分隔線----------------------------
    ?分享到??
看看啦
主站蜘蛛池模板: 中文日韩字幕一区在线观看| 午夜性色一区二区三区不卡视频| 精品无码AV一区二区三区不卡| 国产精品女同一区二区| 精品中文字幕一区在线| 99国产精品欧美一区二区三区| 看电影来5566一区.二区| 国产精品亚洲一区二区三区在线观看| 亚洲AV无码一区二区乱子伦| 久久影院亚洲一区| 搜日本一区二区三区免费高清视频| 欧美日韩国产免费一区二区三区| 日韩在线一区二区| 精品一区二区三区东京热| 中文字幕人妻无码一区二区三区| 国产精品乱码一区二区三| 亚洲电影唐人社一区二区| 一区二区三区四区在线播放| 日韩伦理一区二区| 精品国产福利在线观看一区| 亚洲乱码av中文一区二区| 精品一区二区三区中文字幕| 国产SUV精品一区二区四| 国产精品无码一区二区三区在 | 国产成人免费一区二区三区| 日韩免费一区二区三区在线 | 久久精品一区二区三区中文字幕| 色狠狠一区二区三区香蕉蜜桃| 精品国产乱码一区二区三区| 无码少妇A片一区二区三区| 无码人妻久久一区二区三区蜜桃| 亚洲av成人一区二区三区在线观看| 2018高清国产一区二区三区| 无码人妻啪啪一区二区| 亚洲国产视频一区| 3d动漫精品啪啪一区二区免费| 波多野结衣的AV一区二区三区| 久久久久国产一区二区| 亚洲熟妇av一区| 波多野结衣一区二区三区aV高清| 末成年女AV片一区二区|