-
1 # cr180
-
2 # 井151276607
不僅僅是html,幾乎所有的內容呈現、渲染工具,都從印刷、製版技術中汲取了豐富的營養。我們不知何時起,放棄了對印刷術技藝的追求,雖然也有不少大師,此生追求書法技藝,甚至可以封神。html很長時間是被誤解了。web開發,本應就該研究,呈現效果是如何實現的。設計師哪有不知道自己的創作工具的特性的。前端框架是什麼?你只要用不同的框架,實現一下同一個“效果”(比如Grid
),這個努力,沒開始可能就結束了。現代前端框架的外衣是怎麼回事,你已經清楚了。
-
3 # Kapu
現在都是現在virtual dom中渲染完css和JS,渲染完,再從virtual dom一次對映到dom,這麼做主要是為了加快渲染速度,缺點是耗費記憶體特別大。。
常規的HTML渲染是先載入HTML,然後再渲染css,渲染css過程中會有很多HTML特性變化,之後再渲染JS,就觸發很多的HTML和css變化。這種模式,最大缺點是分三步走,大概是序列執行,花費時間較長,,另外很多元素渲染三遍才變成最終狀態(大概這麼理解)。。。
-
4 # 每日開原始碼
現在前端庫,框架(Vue,React,Angular)也並沒有放棄HTML常規用法,還是遵守W3C標準去執行的。但是執行這個過程是由程式自動化了也就是VDOM=>DOM的過程。
傳統前端三大根基HTML,CSS,JS,CSS還有一席之地,JS被無限放大的使用,而標準的帶有語義化的HTML也並沒有被拋棄。React庫就是基於Javascript將HTML CSS都寫在一起的風格。
關於標籤,各個PC端瀏覽器對input 型別為radio,checkbox預設的展示樣式不一樣。也需要我們自己模擬一下,達到使用者需求。當然還有其他人分享的型別為number的時候等等,不得不說原生計算雖然很強大,能做到庫,框架做不到的需求,也孕育了各個庫,框架。但原生js操作DOM是很痛苦的。所以這些零零散散的問題阻礙了現代化開發效率。能解決這些問題從一定程度上大家肯定是擁護的。
HTML還是會用下去的,除了語言本身我們也需要考慮各個瀏覽器的相容與發展,對語言本身的支援度。
-
5 # 扯談君
那是因為你看到的都是網際網路行業。傳統業務系統,電力,金融,銀行,製造業等等都在用,邏輯複雜,架構複雜,不是你網際網路搞幾個頁面查詢顯示,追求所謂的載入速度和體驗 那麼簡單。在網際網路行業,你幾乎接觸不到真正的面向物件設計的架構,只有一堆中介軟體,各種前後端框架。這是完全不同的兩個領域,不能混為一談。
-
6 # Sean段
如果從底層來說,現代前端框架沒有放棄HTML的常規用法,只是框架的存在意義就是為了方便開發過程中可以更便捷和結構更清晰,也就使得現在很多框架從表面上看和之前傳統的HTML頁面編寫有很大的區別。
從前端框架來看,最終Web前端都需要透過瀏覽器或者瀏覽器核心來解析和渲染,所以最終瀏覽器解析和渲染的頁面還是由HTML+CSS+JS組成的,HTML作為頁面框架、CSS作為樣式定義、JS來處理互動。不過現在很多前端框架都通過幾次的進化和技術迭代,達到了更便捷的開發流程和語言結構,甚至透過一些預編譯來提高頁面載入的效率。
Web前端最開始出現的框架,更多的是類似Boostrap、Foundation這樣的樣式框架,可以透過預先設定好的一些樣式來提高程式碼實現的效率。還有比較著名的Jquery這樣的JS框架,也是透過預先開發整合來達到開發效率的提升。但是這些框架的對於HTML+CSS+JS的基本結構還是沒有做太大的變化,所以上手比較容易。
在Javascript的進一步發展之後,尤其Node.js或者V8等一系列提高Javascript效能和功能的技術出現,出現了更多的前端框架,而且現在很多框架已經改變了原來HTML+CSS+JS的模式結構,例如React,Vue等,使用這些框架的程式碼,和之前的Web前端程式碼已經不太一樣了,而且功能更強大。因為一些新技術的引入,例如虛擬Dom等,也進一步提升了Web前端的程式碼效率,不過最終瀏覽器渲染的還是所謂的常規HTML,只是前端開發過程中慢慢不在程式碼層出現了。
總的來說,現在前端框架的出現給前端開發帶來很多的便利,而且最大程度的解決了一個困擾Web前端很久遠的問題,瀏覽器相容性,因為可以自動化生成瀏覽器解析的DOM,這樣可以比較有效的解決不同瀏覽器的相容問題。
-
7 # 叫我梁大俠
任何前端框架都是基於html css js這三者基礎上擴充套件豐富,以方便更多人去快捷高效的使用!
我前後端都搞,那會還要考慮ie6的相容問題,那時候唯一的前端庫是jq,用起來很方便,開發思想圍繞面向過程。近些年出的react、vue、angular框架則更多是面向物件思想,前端也越來越工程化,但本質還是在js基礎上的擴充套件豐富。
回到題主問題,最開始的是直接js操作dom,這樣是很消耗效能的,後面出的那些框架中所提出的虛擬dom操作,本質就是用一個全域性js物件維護所有的dom節點,當最終比對出dom需要更新時,再操作dom。所以就理想化而言,後者效能上更好且程式碼優雅。
-
8 # UnicornBoat
並沒有被放棄,這是前端的基本,放棄了,就等於前端不存在了。
目前流行的angular個vue讓怕那需要你寫好html架構,仍然需要你寫大量的css語言。只不過這些你構建好了,肯定需要因為資料的變化,產生大量dom操作。
從基本的獲取元素,獲取屬性,修改屬性到建立元素,插入元素等等。框架在你架構好的html基礎上,省去了你操縱dom的過程,你只要負責資料就行,這就是data-driven。
-
9 # 程式設計師小葛
隨著網際網路和相關技術的發展,確實現在的前端框架越來越強大了,但是並不是說現在的前端框架就放棄了HTML的常規用法,所有的前端應用依舊是建立原有的HTML,CSS,JS的基礎上的,依舊是遵照W3C標準去執行的。
畢竟最終呈現這一切的是瀏覽器,如果我們的標準和用法發生變化,首先就會從瀏覽器發生改變,但其實我們現在的瀏覽器並沒有變,我們再新的網站,用谷歌很舊版本的瀏覽器依舊可以訪問,當然相容性上可能會存在一些些問題。
不過,HTML和JavaScript確實是在發展,HTML裡面加上了很多新的屬性,2008年的時候,HTML 5正式釋出,不過當時的瀏覽器其實並不能很好的支援HTML 5,直到2012年,HTML 5的位置才算是穩定下來。JavaScript也是同樣,它的版本一直都在迭代,從1997年誕生的ECMAScript(ES) 1.0 版本,到現在已經ES10了,但是瀏覽器對於ES的相容還停留在ES6的水平上,只是我們想了更多的方案在前端的框架上。
簡單來說,原有的渲染方式是先載入HTML,然後載入CSS進行渲染,然後載入JS進行渲染,這樣的方式開銷小,但是速度慢。而現在的渲染方式是先進行Virtual DOM(VDOM)的渲染,然後一次性將VDOM對映到DOM上,這樣來加快渲染速度,但是缺點就是開銷會變大。
不過我們計算機的效能現在已經很強大了,這麼一點點的開銷其實影響並不大,因此也就讓現在的前端框架越來越喜歡新的這種渲染模式。
例如:我們原有的<select>標籤,使用的時候就會使用傳統的渲染方式,開銷很小,但是確實外觀上有時候不太符合現在人的審美,即使透過CSS各種美化,但是也有點不盡如人意。因此,我們現在的框架中,大多使用<div>的方式,配合JS設計了新下拉控制元件,雖然開銷大了一些,但是載入速度快,好看且功能強大。
也由於這些各種自定義控制元件的出現,讓原有的Form POST方式變得有點不太夠用了,所以,基於Ajax的各種互動方式也就出現了。當然,這並不是說就放棄了傳統的HTML,我們依舊使用的是傳統的HTML,只是在它之上做了加工,讓他能夠更好,更符合現在人的使用習慣和審美。
而類似Vue,React,Angular這樣的前端框架,也是為開發者提供了更多的便利,讓開發者可以更專注於互動和功能,在一些簡單的技術層面處理就交給了框架。
-
10 # 世界和平8735
隨著網際網路和相關技術的發展,確實現在的前端框架越來越強大了,但是並不是說現在的前端框架就放棄了HTML的常規用法,所有的前端應用依舊是建立原有的HTML,CSS,JS的基礎上的,依舊是遵照W3C標準去執行的。
-
11 # 積年程式開發老妖精
前端框架並沒有放棄html的使用,只是由之前的寫html頁面改成了寫html塊了。其基本的html語法沒有什麼變化。前端框架對html所謂的變化無非就是為了提高開發效率,沒有其他什麼本質的影響。
回覆列表
提問者是發現前端語言中出現了自定義標籤或者模板語法嗎?還是說vue類似的語法結構?
前者說到底就一個原因:瀏覽器的相容性!特別是IE這個不知進取的貨,前端技術被這貨一直限制,直到win10的出現才得到改善,就連現在最低相容也要考慮到ie9!
常規前端框架要負責渲染和ui效果,html標籤無法滿足現在ui層的渲染要求,不同瀏覽器下的展示結果也不同,最直觀的就是表單元素:select、radio、checkbox、button等等。所以你會看見所有前端框架都必須要有一套自己的表單元件。
作為一款框架,目的就是用最簡單的語法達到最好的展示結果,語法特別重要,所以我們會發現在框架中利用js做二次渲染是最好的選擇,使用者只需一個屬性就能達到特定效果。
比如我自研的框架中開關元件:<input type=swith text=開|關>,只需對應屬性給值,其他的交給框架去渲染。
有的乾脆直接給js函式傳入物件引數:
xxx({
type : swith,
text : 開|關
})
而vue這種就屬於渲染引擎,只負責渲染,不負責ui效果,沒什麼好說的。