Jquery會死嗎?我為什麼不用vue寫富文本!

来源:https://www.cnblogs.com/kevinJhuang/archive/2019/05/05/10809120.html
-Advertisement-
Play Games

一、事件背景: 我最近開源了一個個人耗時半年打造的富文本及一套適用於web後臺的ui框架,在gitee上受到網友們的關註,部分網友對我採用jquery的技術棧提出了質疑。總結起來:無非是jquery已經落後,不久將死。甚至有少數網友很激進:非vue技術棧,你不應該加入我這個群,不管你做得多好。對應這 ...


一、事件背景:

       我最近開源了一個個人耗時半年打造的富文本及一套適用於web後臺的ui框架,在gitee上受到網友們的關註,部分網友對我採用jquery的技術棧提出了質疑。總結起來:無非是jquery已經落後,不久將死。甚至有少數網友很激進:非vue技術棧,你不應該加入我這個群,不管你做得多好。對應這個事情,首先我一般不反駁,因為我對vue,jquery有自己的應用場景度量。但是對於這種不分場景應用而盲目趕潮流的觀點,我是持否定態度的。

       為此我想有必要通過這篇文章,說明一下:我為什麼用jquery來寫vue和web後端ui框架,而不用vue。在文章開始前,先貼一下我開源的富文本:

       gitee: https://gitee.com/kevin-huang/Bui-Editor-public

浮動文本/圖片/視頻功能

 繪製流程圖功能

 移動設備模擬功能

 

       通過上述富文本的截圖,可以大概瞭解到這個富文本的功能很豐富,許多功能可以說是全網富文本裡面的only-one。這麼複雜的應用對技術棧的選擇很重要,良好適配的技術棧可以在設計上,編碼上給開發者更大的自由度,同時可以避免很多繁雜的實現,提升代碼質量,降低後期的維護,運營的成本。

 

二、我的觀點:

          1、vue技術棧適用於移動端應用開發,對於pc端web應用,vue技術棧並不見得優於傳統技術棧(相對於vue來說是傳統的)。

          2、jquery是目前dom操作的王者,除此無二,jquery和vue不可比較,他們各自擅長的場景不一樣。

          3、複雜應用,原生JavaScript +  jquery是比較好的技術棧組合,優於vue技術棧。

 

三、jquery、vue技術棧誕生背景,擅長場景說明

     jquery:

             誕生背景

                   1、jquery誕生於2006年,它誕生的背景是瀏覽器的dom操作繁雜,各種瀏覽器api不統一。市場需要一個前端JavaScript庫解決dom操作的痛點。

                   2、jquery誕生的年代,移動應用還在萌芽,它的設計實現都是面向pc端的,當時的前端技術範疇也還沒有mvvm(數據驅動)的思想,它為操作dom而生。

     擅長場景:

                    dom操作為主的場景,如富文本,流程設計器,這些應用需要對dom進行大量的操作,jquery最合適不過。

                    對於這種場景,vue的編程規範會造成設計實現上的束縛,其雙向綁定在這裡也是多餘的,完全沒有用武之地!                    

             缺點:

                   1、jquery沒有mvvm思想,不能解決移動端帶寬、性能的痛點。   

                   2、jquery沒法實現數據驅動開發,還需要開發者編寫dom讀寫操作。           

    vue:

           誕生背景

               1、vue的誕生之前,已經有了許多成熟的mvvm框架,如backbone、angular,他們都是在一些數據驅動的需求場景中得到很好的應用,但也並沒有像vue被開發者如此著迷。

               2、backbone、angular既然已經有了數據驅動的實現,為何沒有像vue那樣火呢,因為他們要麼比較笨重,要麼還沒有解決移動端應用的痛點(帶寬、性能)。

               3、vue可以說是為移動應用而生,輕量,其設計的虛擬dom解決移動設備頻繁觸發瀏覽器刷新而引起的性能/電量問題,其設計的單頁打包(webpack)模式,解決了跳轉需要網路請求的帶寬痛點。

                 

          擅長場景:

                 1、數據驅動的雙向綁定場景,特別是表單讀寫,可以說解放了表單讀寫對dom的操作編程。

                 2、移動應用場景,通過雙向綁定,虛擬dom、webpack打包,解決移動端web應用的設備性能/電量、帶寬痛點。

          缺點:

                 1、採用數據驅動,沒有靈活的dom操作,不適用於dom操作為主的應用場景。

                 2、在複雜應用中,大量的dom監聽、data狀態聯動維護並不是一種好的機制。

                 3、webpack打包方式解決了移動應用的痛點,但也帶來了發佈後,難以跟蹤定位問題,沒法即刻修改已經線上頁面的缺點。

                 4、學習成本相對傳統技術棧高一些,對團隊的前端知識要求也相對高一些。

 

四、vue應用場景說明

          pc端web應用場景

               1、pc端沒有移動端性能、帶寬的限制,採用vue技術棧,反而帶來了開發環境繁雜、學習額外的非w3c規範的web知識、發佈後難以定位跟蹤問題、沒法即刻修改線上頁面這些缺點。

               2、pc端的應用,大多是普通的表單開發應用,除此之外基本都是展示類型的頁面,個人認為除了表單的雙向綁定,監控類ui的數據聯動,其他如ui表現/結構的編程採用vue有點多餘。

    

         移動端應用場景

               1、移動應用場景,對性能、帶寬有要求,移動設備的特點也決定了其在問題跟蹤定位,更新部署方面與pc端有差異。

               2、vue技術棧應用於移動應用場景具有天生的設計實現優勢。

 

我的總結:

        1、 pc端採用傳統的ui技術棧,同時在傳統的基礎上引入輕量級mvvm方案解決表單讀寫開發編程,即優於vue技術棧。這也Bui會實現一個min-mvvm的初衷。

        2、移動端應用,毫無疑問,採用vue技術棧是王道。

 

歡迎登陸我的demo網站,體驗可能是全網最強大的富文本應用:

       http://www.vvui.net/bui/ 

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 在業務資料庫性能問題診斷中,如果發現一個業務性能很差跟某個SQL有關,應用連接池幾乎被該SQL占滿,同時資料庫伺服器上也不堪重負。此時情況很緊急,業務改SQL重發佈已經來不及了,運維能選擇的操作不多。 阿裡資料庫(AliSQL和OceanBase)都支持在運行中干預SQL的執行計劃,以及對問題SQL... ...
  • 下載: https://github.com/MyCATApache/Mycat-download 安裝: 直接解壓 運行命令: linux: ./mycat start 啟動 ./mycat stop 停止 ./mycat console 前臺運行 ./mycat restart 重啟服務 ./m ...
  • SQL中進行轉列 在很多筆試的程式員中會有很多寫SQL的情況,其中很多時候會考察行轉列。那麼這個時候如果能寫出來幾種行轉列的SQL,會給面試官留下比較好的印象。 以下是這次sql轉換的表結構以及數據 數據準備 1、學生表 CREATE TABLE `student` ( `stuid` VARCHA ...
  • OceanBase是阿裡巴巴和螞蟻金服完全自主研發的通用的分散式關係型資料庫,從1.0版本開始OceanBase就支持分區表,功能逐步跟ORACLE分區表相容,並且支持不同分區分佈在集群的不同節點(機器)上。本文是對OceanBase分區表的能力做一個詳細介紹。 ...
  • MySQL的SQL語言是用於訪問資料庫的最常用標準化語言。由於其體積小、速度快、總體擁有成本低,尤其是開放源碼這一特點,一般中小型網站的開發都選擇MySQL作為網站資料庫。本文主要是入門知識講解,僅供學習分享使用。 ...
  • 原文鏈接 FORMAT() 之後 會滿三位加逗號, 在此基礎上進行數字運算的時候會出現預料之外的結果, 建議使用 : 任意一種 進行代替。 1 ...
  • 一.activity.xml 我這裡主要爬取的愛奇藝首頁的圖片進行輪播,應用了兩個github上的開源庫,一個banner的庫,一個載入網路圖片的庫,用開源庫能夠極大地節省我們編寫代碼的時間。 二.添加相關的庫以及網路許可權 三.activity.java 四.網路圖片載入的新類 代碼一共就這些,全部 ...
  • 最近需要把一個web端的項目做一個app,所以很多後臺代碼就順便複製了,如圖所示,在java代碼有一個簡單的時間戳格式化輸出日期的方法 Java代碼: 輸出結果: 得到的時間是2019-04-29 00:00:00 我們用時間戳轉換工具也得到了同樣的結果(時間戳轉換工具需要去除結尾的三個0) 但是在 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...