电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

到底該拋不拋棄JQuery

瀏覽:162日期:2024-07-12 10:01:47
前言

我以前很喜歡 jQuery,而且說實話,我是先學jQuery,再學 JavaScript 的。所以我寫這篇文章有點像是在背叛 jQuery。

我知道,關于為什么不應該用 jQuery 的文章已經汗牛充棟,但我只是想說下自己的親身體驗。

不用 jQuery 用什么?

隨著 web 的發展,新技術長江后浪推前浪,前浪死在沙灘上。就像有些編程語言曾經輝煌過,現在也消失不見了。我認為 jQuery 也不例外,是時候跟 它說再見了,雖然它曾經給我們帶來過美妙的編程體驗。

為什么要放棄 jQuery 呢?因為有 Vue 啊!如果你看過我之前的文章,你應該能猜到我是 Vue.js 粉。Vue.js 提供了非常多的工具,我敢說它比jQuery 方便多了。

DOM 與事件

讓我們來看一個點擊事件的例子。

請注意,我省略掉了框架的初始化部分

一個 Vue SFC(別慌,意思就是Single File Component,單文件組件):

<template> <button @click='handleClick'>點我,用力</button></template><script> export default {methods: { handleClick() {alert(’老鐵,你點擊了按鈕’); }} } </script>

用 jQuery 是這樣寫的:

<button id='myButton'>點吧</button><script> $(’button#myButton’).click({alert(’這次用 jQuery’); });</script>

你可能會覺得 Vue.js 的代碼更多啊,你說的沒錯,但也不對!Vue.js 并不是有更多代碼,實際上除了handleClick() { ... }之外的部分只是框架的結構,跟其他行為是共用的。我覺得 Vue.js 看起來更整潔,代碼可讀性更高。

你心里可能還有一個疑問,你還是用了 Vue.js 啊,五十步笑百步?有本事別用!實際上你完全可以用原生 JavaScript 實現:

<button id='myButton'>來點我呀</button><script> document.getElementById(’myButton’).addEventListener(’click’, function() { alert(’來自原生js的問候’); });</script>

所以你看,jQuery 只是背著我們把代碼翻譯成原生 JavaScript 而已,假裝自己很特別。

至于 DOM 元素的選擇操作,用原生 JavaScript 可以輕松做到:

document.getElementById(’myButton’); // jQuery => $(’#myButton’);document.getElementsByClassName(’a’); // jQuery => $(’.a’);document.querySelectorAll(’.parent .a’); // jQuery => $(’.parent .a’);AJAX 請求

jQuery 被用得最多的方面可能就是 AJAX 了。我們都知道 jQuery 提供了$.ajax(),也可以分別用具體的 $.post()和$.get()。這些 API 可以幫你發送 AJAX 請求,獲取結果等等。

你可以用原生 JavaScript 的兩個方法,那就是 XMLHttpRequest和fetch。

XMLHttpRequest也算是個老古董了,跟 fetch 相比還不太一樣。

fetch更加時新,也比 XMLHttpRequest更常用,而且是基于 promise 的。

fetch默認不發送 cookies,并且如果 HTTP 狀態碼返回錯誤碼,比如404或500,它不會 reject,因此基本上 .catch()不會運行,而是 response.ok變成 false。

在這里就不詳細對比它們了。

我們還是來看兩段代碼。

這是 jQuery:

$.ajax({ method: 'POST', url: 'http://localhost/api', data: { name: 'Adnan', country: 'Iran' }}).done(response => console.log(response)) .fail(() => console.log(’error’));

示例代碼來自 jQuery 官方文檔

這是 fetch:

fetch( ’http://localhost/api’, {method: ’POST’body: { name: 'Adnan', country: 'Iran' } } ).then(response => console.log(response));

兩段代碼做的事情是一樣的,但fetch不屬于任何庫。

請注意,fetch也可以跟 async/await 結合使用,如下所示:

async function getData() { let response = await fetch(’http://localhost/api’ {method: ’POST’body: { name: 'Adnan', country: 'Iran' } }); return response;}

那我自己用fecth嗎?實際上沒有,因為我不太信任它,原因有很多。因此我在用一個叫 axios 的庫,也是基于 promise 的,同時非常可靠。

上面的代碼用axios 寫是這樣的:

axios({ method: ’POST’, url: ’http://localhost/api’, data: { name: 'Adnan', country: 'Iran' }}).then(response => console.log(response)) .catch(err => console.log(err));

axios也可以跟 async/await 結合使用:

async function getData() { let response = await axios.post(’http://localhost/api’ {name: 'Adnan',country: 'Iran' }); return response;}總結

我現在自已經不再用 jQuery 了,盡管我曾經非常喜歡它,那個時候項目初始化后的第一件事就是安裝 jQuery。

我相信我們已經不再需要 jQuery 了,因為其他庫和框架實際上能比 jQuery 更方便、更簡潔地完成任務。

可能還有大量的插件基于 jQuery,但基本上都有相應的 Vue.js 或者 React.js 組件替代品。

以上就是到底該拋不拋棄JQuery的詳細內容,更多關于JQuery的資料請關注好吧啦網其它相關文章!

標簽: jQuery
相關文章:
主站蜘蛛池模板: 天津拓展_天津团建_天津趣味运动会_天津活动策划公司-天津华天拓展培训中心 | 开云(中国)Kaiyun·官方网站 - 登录入口 | 浙江富广阀门有限公司| Safety light curtain|Belt Sway Switches|Pull Rope Switch|ultrasonic flaw detector-Shandong Zhuoxin Machinery Co., Ltd | 高压管道冲洗清洗机_液压剪叉式升降机平台厂家-林君机电 | 科研ELISA试剂盒,酶联免疫检测试剂盒,昆虫_植物ELISA酶免试剂盒-上海仁捷生物科技有限公司 | crm客户关系管理系统,销售管理系统,crm系统,在线crm,移动crm系统 - 爱客crm | 户外-组合-幼儿园-不锈钢-儿童-滑滑梯-床-玩具-淘气堡-厂家-价格 | 砖机托板价格|免烧砖托板|空心砖托板厂家_山东宏升砖机托板厂 | 地磅-地秤-江阴/无锡地磅-江阴天亿计量设备有限公司_ | 欧必特空气能-商用空气能热水工程,空气能热水器,超低温空气源热泵生产厂家-湖南欧必特空气能公司 | 合肥制氮机_合肥空压机厂家_安徽真空泵-凯圣精机 | 户外环保不锈钢垃圾桶_标识标牌制作_园林公园椅厂家_花箱定制-北京汇众环艺 | 压装机-卧式轴承轮轴数控伺服压装机厂家[铭泽机械] | 精雕机-火花机-精雕机 cnc-高速精雕机-电火花机-广东鼎拓机械科技有限公司 | 微信聊天记录恢复_手机短信删除怎么恢复_通讯录恢复软件下载-快易数据恢复 | 东莞韩创-专业绝缘骨架|马达塑胶零件|塑胶电机配件|塑封电机骨架厂家 | 西安标准厂房_陕西工业厂房_西咸新区独栋厂房_长信科技产业园官方网站 | 据信,上课带着跳 D 体验-别样的课堂刺激感受引发网友热议 | 济南展厅设计施工_数字化展厅策划设计施工公司_山东锐尚文化传播有限公司 | 自动检重秤-动态称重机-重量分选秤-苏州金钻称重设备系统开发有限公司 | 欧洲MV日韩MV国产_人妻无码一区二区三区免费_少妇被 到高潮喷出白浆av_精品少妇自慰到喷水AV网站 | 方源木业官网-四川木门-全国木门专业品牌 | 立式壁挂广告机厂家-红外电容触摸一体机价格-华邦瀛 | 明渠式紫外线杀菌器-紫外线消毒器厂家-定州市优威环保 | 自动化展_机器人展_机床展_工业互联网展_广东佛山工博会 | 好杂志网-首页| 蓝鹏测控平台 - 智慧车间系统 - 车间生产数据采集与分析系统 | 光环国际-新三板公司_股票代码:838504 | 油液红外光谱仪-油液监测系统-燃油嗅探仪-上海冉超光电科技有限公司 | 闭端端子|弹簧螺式接线头|防水接线头|插线式接线头|端子台|电源线扣+护线套|印刷电路板型端子台|金笔电子代理商-上海拓胜电气有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 2025福建平潭岛旅游攻略|蓝眼泪,景点,住宿攻略-趣平潭网 | 液压油缸-液压站生产厂家-洛阳泰诺液压科技有限公司 | TYPE-C厂家|TYPE-C接口|TYPE-C防水母座|TYPE-C贴片-深圳步步精 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 电缆接头-防爆电缆接头-格兰头-金属电缆接头-防爆填料函 | 有机废气处理-rto焚烧炉-催化燃烧设备-VOC冷凝回收装置-三梯环境 | 不锈钢钢格栅板_热浸锌钢格板_镀锌钢格栅板_钢格栅盖板-格美瑞 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 |