國軍網及其新媒體平臺
招人啦
點擊下方圖片,長按識別二維碼
我們等你入列
???
——我們是誰——
黨和軍隊的重要思想輿論陣地
中國人民解放軍唯一新聞門戶網站
中央重點新聞網站
——我們的隊伍——
中國軍網、國防部網
解放軍報客戶端
國防在線客戶端
解放軍報微博微信、中國軍網微信
——我們的坐標——
北京西城
釣魚臺東
交通便利
風景優美
——我們的使命——
透過硝煙
俯瞰演兵場上的縱橫馳騁
穿越風雪
記錄邊防哨所里的赤膽忠誠
航天城里,我們記錄飛天奇跡
兩會現場,我們傳遞最新政策
國慶閱兵,我們見證強軍步伐
......
集結號已吹響
50個崗位,等你答“到!”
【招聘對象】
全國普通高等院校全脫產學習統招統分或經國家學歷學位認證部門認可的境外高校的應屆畢業生和社會在職人員。應屆畢業生原則上碩士年齡不超過27歲(1994年7月以后出生)、博士年齡不超過35歲(1986年7月以后出生)。社會在職人員原則上年齡不超過35歲(1986年7月以后出生),中級專業技術職稱人員和特殊人才引進人員原則上年齡不超過45周歲(1976年7月以后出生)。
【基本條件】
1.具有中華人民共和國國籍;
2.堅決執行黨的基本路線和各項方針政策;
3.遵守國家法律法規,無違法犯罪行為記錄;
4.具備報考崗位所需的專業技術、學歷水平以及全面履行本崗位職責的能力;
5.團結同志、身體健康、作風正派、清正廉潔。
【報名時間】
截止至2021年9月2日17:00。在此期限外提交的報名信息,系統將不予受理。
【報名方式】
報考人員進入公招網(www.gongzhao.com.cn)查看招聘公告,并提交報考申請,進行網絡報名。或者掃描以下二維碼了解詳情。
【招聘崗位】
崗位名稱:網絡和新媒體編輯(一)
所需人數:6人
1、學歷專業
全日制一本(含)以上學歷,35周歲以下。中國語言文學類、思想政治類、歷史學類、圖書出版類、傳媒運營、新聞傳播學類、哲學類、藝術學等相關專業優先。
2、素質要求
(1)熱愛新聞事業,具備良好的政治和新聞敏感度;
(2)文字功底扎實,有較強的選題策劃、信息整合能力;
(3)會基本的圖片編輯和音視頻剪輯處理;
(4)有新聞傳播相關從業經驗者優先錄用;
(5)能勝任常年夜班值班工作。
3、崗位職責
策劃、文字采集、文字編輯、撰稿。
崗位名稱:網絡和新媒體編輯(二)
所需人數:8人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。中國語言文學類、思想政治類、歷史學類、圖書出版類、傳媒運營、新聞傳播學類等相關專業。
2、素質要求
(1)熱愛新聞事業,具備良好的政治和新聞敏感度;
(2)文字功底扎實,具備文字、圖書類欄目的策劃、編輯、包裝能力,以及較強的選題策劃、信息整合能力;
(3)會基本的圖片編輯和音視頻剪輯處理;
(4)具有思想政治教育、文化宣傳、活動策劃、網絡評論、新聞采編等相關從業經驗者優先錄用;
(5)能勝任常年值班工作。
3、崗位職責
策劃、文字采集、文字編輯、撰稿。
崗位名稱:網絡和新媒體編輯(三)
所需人數:15人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。中國語言文學類、思想政治類、歷史學類、圖書出版類、傳媒運營、新聞傳播學類、哲學類、藝術學等相關專業優先。
2、素質要求
(1)熱愛新聞事業,具備良好的政治和新聞敏感度;
(2)文字功底扎實,具備文字、圖書類欄目的策劃、編輯、包裝能力,以及較強的選題策劃、信息整合能力;
(3)會基本的圖片編輯和音視頻剪輯處理;
(4)有新聞傳播相關從業經驗者優先錄用;
(5)能勝任常年夜班值班工作。
3、崗位職責
策劃、文字采集、文字編輯、撰稿。
崗位名稱:數字報夜班編輯
所需人數:3人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,專業不限。
2、素質要求
(1)限男性,責任心強,認真仔細;
(2)退役軍人優先錄取,學歷等條件可適當放寬。
3、崗位職責
主要負責解放軍報、中國國防報的數字報制作工作,工作時間機動靈活,錄取培訓后即可上崗。
崗位名稱:全棧工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,30周歲以下,985或者211學校畢業,計算機相關專業。
2、素質要求
(1)熟悉js、Java等語言;
(2)黨員優先。
3、崗位職責
(1)主要負責小程序開發和維護,后臺服務開發;
(2)新媒體技術應用與開發、交互產品設計與開發。
崗位名稱:融合媒體工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,30周歲以下,985或者211學校畢業,設計相關專業。
2、素質要求
(1)有設計基礎,能夠進行視頻號的維護,短視頻和H5制作;
(2)黨員優先。
3、崗位職責
新媒體技術應用與開發、交互產品設計與開發。
崗位名稱:應用系統運維工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機相關專業。
2、素質要求
(1)有5年以上的Linux系統運維經驗;熟悉主流互聯網高可用架構,熟悉LVS、Nginx、Haproxy等組件的配置和優化;
(2)掌握一門以上編程語言(Shell/Go/Python等);
(3)熟悉CI/CD流程,熟練掌握Jenkins、Git、Maven等工具的使用,有自動化發布項目建設經驗優先;
(4)熟悉zabbix、open-falcon等監控系統,可結合Prometheus與grafana等系統實現可視化監控;
(5)熟悉主流自動化運維工具,如Ansible、Saltstack,能夠結合其他系統實現運維工具化和自動化;
(6)熟悉云計算技術領域,如容器、kubernetes、微服務等相關工具和技術,有項目容器化遷移與落地經驗優先;
(7)具有很強的故障排查能力,學習能力強,有風險意識對生產環境有敬畏之心。
3、崗位職責
(1)負責業務系統的部署、監控、預案、故障排查與后續優化推進工作;
(2)完善應用的發布、擴容、降級、標準化等事務,提升業務健壯性保障服務SLA;
(3)負責設計實現與日常運維相關的自動化工具或系統,減少人工操作提高運維效率;
(4)參與自動化運維平臺建設,踏實踐行DevOps,全面提升運維效率;
(5)負責突發事件管理,問題跟蹤與管理,提供運維報告。
崗位名稱:云計算工程師
所需人數:2人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機相關專業。
2、素質要求
(1)5年以上相關領域工作經驗;
(2)了解國內外主流云服務IaaS、PaaS產品、架構和相關技術原理,如OpenStack、AWS、Azure、阿里云、騰訊云、云數據庫、云存儲、云網絡等,有相關云產品使用及測試經驗;
(3)有主導私有云平臺(包括IaaS平和容器平臺)的實施,交付工作經歷,具備核心技術選型能力和解決核心技術問題能力;
(4)了解用戶業務、應用服務架構,并且有相關整體部署、測試、運維經驗;
(5)熟悉KVM虛擬化技術,了解VMware、Xen、Hyper-V等相關虛擬化技術;
(6)掌握OpenStack平臺中云主機、云硬盤、云網絡等技術原理;
(7)掌握docker、kubernetes,理解鏡像和容器控制、調度、網絡、存儲的技術原理;
(8)掌握監控、日志、故障恢復與隔離等運維技術,具有一定的Linux操作系統開發和運維經驗;
(9)掌握云數據庫服務,云中間件服務核心技術,掌握MySQL、PostgreSQL,Oracle或者掌握Redis、Kafka、MQ中的一種或者多種;熟練使用git、jenkins、etcd等開源工具;
(10)熟悉敏捷開發;
(11)熟悉多種開源軟件系統與工具的部署、組合使用,包括通用的高可用軟件、測試工具、監控工具等;
(12)熟悉shell腳本編寫,有相關測試、運維經驗;
(13)熟悉云平臺賬戶模塊,安全模塊,監控模塊,計費計量模塊等建設。
3、崗位職責
(1)負責云平臺的整體規劃、架構方案設計以及部署實施工作;
(2)負責整合云平臺各模塊的自動化部署,進行架構設計和現網落地,提高部署效率;
(3)負責云平臺資源評估、資源分配、資源規劃、性能調優等,保障系統的高可用性和可擴展性;
(4)主導重點任務和疑難問題的技術攻關。
崗位名稱:機房硬件工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機、電力、自動化及相關專業。
2、素質要求
(1)持有電工專業或制冷或空調專業特種作業操作證;
(2)具有3年以上配電等相關崗位實際操作經驗,熟悉艾默生、ABB、APC、伊頓等品牌UPS持續供電系統;
(3)具有較強的溝通協調能力、寫作能力。
3、崗位職責
(1)進行機房規劃與建設;
(2)進行機房配電系統、空調系統、消防系統的設計部署、管理維護;
(3)進行機房機柜、綜合布線的建設維護,規劃機柜設備分配;
(4)配合其他技術人員的工作,完成上級領導安排的其他工作。
崗位名稱:資深網絡工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機相關專業優先。
2、素質要求
(1)5年及以上相關工作經驗;
(2)熟悉主流廠商(如H3C、CISCO、銳捷、華為)數據中心級交換機配置與維護;(如N7K、N9K、12800系列、12500系列等);
(3)熟悉Linux系統基礎,熟悉shell腳本及TCP/IP/HTTP等網絡協議;
(4)熟悉主流廠商云計算產品(如FusionCloud、H3Cloud、vsphere等),熟悉Openstack/Docker/Saltstack/Puppet等開源云計算產品之一;
(5)具備2年以上系統化運維超過50臺集群或者大型分布式系統(計算/存儲/網絡)的建設/開發/運維背景者優先;
(6)具有良好的分析和解決問題能力且具備良好的編碼和文檔書寫習慣;
(7)對云計算未來發展有一定的理解;善于主動思考和自我驅動,有很好的技術敏感度和風險識別能力;
(8)持有HCNP/H3CSE/CCNP/RCCP認證及以上級別數據中心方向認證,VCP認證,RHCE/RHCA認證優先考慮;
(9)熱愛技術,有解決問題的熱情和勇氣;
(10)在困難面前,有亮劍的精神,有快速推進事情解決的能力;
(11)主動性強、積極性高,具有團隊協助精神,能承受持續高強度工作,參與周末和夜間值班,愿意加班,能隨時(包括深夜)返回單位現場處理生產事件。
3、崗位職責
(1)根據需要負責單位數據中心網絡設備的選型,網絡規劃與建設;
(2)參與服務器選型,虛擬化建設,云計算的搭建;
(3)負責單位IDC機房網絡設備和服務器的日常運維管理,工單執行,第一時間處理故障節點,保證所有業務穩定運行;
(4)負責備份容災產品安裝配置及維護工作;
(5)負責維保項目定期巡檢及制作系統運行報告。
崗位名稱:通信工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,衛星通信相關專業。
2、素質要求
(1)熟悉衛星通信原理;
(2)有2年以上衛星通信系統集成能力;
(3)熟悉國內常用通信衛星參數、衛星通信地面設備、衛星通信終端應用;
(4)了解衛星通信系統組成,了解國內常用調制解調器及編解碼器設備;
(5)具有良好的理解能力、文字表達能力、書寫分析匯總工作;
(6)能夠吃苦耐勞,能加班,出差。
3、崗位職責
(1)負責單位衛星通信的整體規劃;
(2)負責各類通信設備的調試、保養、升級;負責相關技術方案和操作手冊的撰寫和技術培訓;
(3)負責各類通信設備的選型采購;
(4)根據單位實際情況對衛星通信系統進行優化升級;
(5)參與重大應急通信保障任務;完成領導交給的其他任務。
崗位名稱:網絡工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機類相關專業。
2、素質要求
(1)掌握各種網絡環境搭建,具備較強的技術基礎;
(2)熟悉網絡設備的安裝、調試、維護;
(3)熟悉計算機網絡和網絡安全的調試;
(4)具備網絡故障的分析、判斷、解決能力;
(5)有較強的溝通協調能力及高度責任心;
(6)具有撰寫技術文檔和手冊能力,良好的英文閱讀能力;
(8)有“網絡工程師”或等同資格認證優先;
(7)能夠吃苦耐勞、能加班、出差。
3、崗位職責
(1)單位網絡建設和管理;進行網絡調整、性能優化;
(2)負責網絡環境的管理、配置、排錯、維護;
(3)負責網絡設備的安裝、配置、管理,提供網絡設備維護方案;
(4)負責機房內的網絡聯接及網絡間的系統配置;
(5)負責機房線路的布置和協議的規范工作;
(6)負責計算機間的網絡聯接及網絡共享,并負責網絡間安全性的設置;
(7)建立完整的網絡系統文檔;
(8)協助辦公網絡環境的維護,終端設備的維護。
崗位名稱:蘋果(IOS)開發工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。
2、素質要求
(1)3年以上iOS軟件開發經驗,獨立高效完成開發工作;
(2)熟練掌握Objective-C語言,熟練掌握Xcode等開發工具,深入理解 iOS SDK,熟練掌握SDK開發,熟悉客戶端常用架構;
(3)熟練掌握iOS下網絡通信機制、多線程、內存管理機制等;
(4)擁有很好的設計模式和思維,熟悉面向對象編程;
(5)深入了解各個不同iOS版本的特性與差異并有豐富適配經驗, 能熟練應用MVC/MVVM等設計模式;
(6)有新媒體業務相關經驗優先,有 Swift/Flutter 開發經驗者優先。
(7)有良好編碼風格,良好的溝通能力與團隊協作能力。
3、崗位職責
(1)負責公司iOS端的開發、維護及性能優化;
(2)根據需求完成業務功能的編碼實現;
(3)提供產品維護支持,不斷優化產品。
崗位名稱:安卓(Android)開發工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。
2、素質要求
(1)3年以上Android開發經驗;
(2)熟悉Android SDK,了解Android Framework,對相應API能熟練掌握;
(3)熟悉Android下網絡通信機制,對Socket通信、TCP/IP和http、https有一定理解和經驗;
(4)熟悉Android平臺UI設計,熟悉常用布局;
(5)理解面向對象設計的基本原則,熟悉常用的設計模式;
(6)能獨立開發App,有線上已發布的成品App;
(7)具備很強的分析能力和解決問題的能力,有大規模代碼的閱讀和修改經驗;
(8)有良好編碼風格,良好的溝通能力與團隊協作能力。
(9)有責任心,抗壓力強,有良好的團隊精神,語言表達能力,樂于接受挑戰。
3、崗位職責
(1)負責公司APP的開發和維護;
(2)根據需求完成業務功能的編碼實現;
(3)提供產品維護支持,不斷優化產品。
崗位名稱:WEB前端工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,計算機、大數據等相關專業。
2、素質要求
(1)3年以上相關工作經歷;
(2)精通HTML5、CSS3、ES6、JS、AJAX 等基礎技術,能夠很好解決瀏覽器兼容性;
(3)精通VUE、JQUERY等JS框架;
(4)對用戶體驗、交互操作流程、及用戶需求有一定了解,并具有良好的代碼風格、接口設計與程序架構能力;
(5)具備良好的責任心、較強的學習能力、優秀的團隊溝通與協作能力。
3、崗位職責
(1)利用HTML/CSS/JavaScript等各種Web技術進行產品的界面開發;
(2)整體頁面結構及樣式層結構的設計、優化;
(3)制作標準優化的代碼,并增加交互動態功能;
(4)與后臺應用開發配合,持續優化前端體驗、頁面響應速度和瀏覽器兼容性等。
崗位名稱:產品經理
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。
2、素質要求
(1)具有新聞媒體單位5年以上工作經驗,能夠熟練操作多種網站CMS系統;
(2)熟悉產品經理相關基礎知識(需求分析、用戶體驗、數據分析、競品分析、原型設計);
(3)熟悉相關工具軟件,設計產品交互原型、業務流程;
(4)善于溝通、工作積極、聰明認真、責任心強,能獨立推進產品工作。
3、崗位職責
(1)參與新聞類APP及CMS系統設計,需求收集、功能設計;
(2)編寫產品需求文檔、設計原型、協調、推動研發按時完成產品開發、測試和交付;
(3)負責競品分析、用戶調研,對產品的使用情況進行跟蹤、分析,挖掘潛在需求;
(4)沉淀產品標準化解決方案,總結產品優勢,撰寫整體產品方案。
崗位名稱:測試工程師
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下。
2、素質要求
(1)具有良好的品質意識和質量管控意識;
(2)兩年以上軟件測試工作經驗,具備良好的職業素養和保密意識;
(3)具有一定的編程基礎,熟悉C、C++語言優先;
(4)具有較好的文檔撰寫能力,團隊協作和溝通力能強;
(5)積極主動,熱愛本職,有軟件測評工程師證書者優先。
3、崗位職責
(1)全面負責項目業務流程、后臺管理、接口等測試工作;
(2)完成各需求、優化以及運維等測試任務的處理;
(3)根據需求規格說明書編寫測試計劃,設計測試數據和測試用例;
(4)根據測試計劃和測試用例進行測試,保證測試的質量和進度;
(5)及時反應測試中的問題,對發現的問題進行詳細分析和準確定位;
(6)編寫測試報告、用戶操作手冊等文檔;
(7)對測試結果、bug等進行統計、分析;負責測試環境部署;
(8)對生產問題等能及時復現。
崗位名稱:人力資源助理
所需人數:2人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,人力資源管理及相關專業。
2、素質要求
(1)熟練使用各類辦公設備及辦公軟件;
(2)具有團隊合作精神,有良好的溝通協調能力,強烈的責任心,工作細致認真負責,能夠承受一定的工作壓力。
3、崗位職責
負責招聘、薪資、培訓、規劃、考核、勞資關系。
崗位名稱:財務助理
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,財務、會計等相關專業。
2、素質要求
(1)熟練使用各類辦公設備及辦公軟件;
(2)具有團隊合作精神,有良好的溝通協調能力,強烈的責任心,工作細致認真負責,能夠承受一定的工作壓力。
3、崗位職責
日常報賬。
崗位名稱:采購助理
所需人數:1人
1、學歷專業
全日制本科(含)以上學歷,35周歲以下,財務、會計等相關專業。
2、素質要求
(1)熟練使用各類辦公設備及辦公軟件;
(2)具有團隊合作精神,有良好的溝通協調能力,強烈的責任心,工作細致認真負責,能夠承受一定的工作壓力。
3、崗位職責
日常采購。
【招聘流程】
報名、資格初審、筆試、資格復審及面試、體檢和考察、公示、簽訂協議
【特別提示】
1.本次招聘不接受其他形式報名,所填簡歷信息一旦提交將無法修改。應聘人員應保證所填寫簡歷信息和所提供的各種材料詳細、真實、準確。
2.招聘工作期間,相關信息在公招網公布,參加招聘人員應及時關注網站信息,按要求填寫固定電話和手機號碼,并保持通訊暢通。如手機裝有安全軟件對未知號碼進行屏蔽,請取消,因本人原因錯過重要信息的,責任自負。
3.本次招聘一律不指定任何復習參考教材和培訓機構。
本公告由中國人民解放軍新聞傳播中心人力資源部負責解釋。
網絡報考技術咨詢電話:010-68771309、68771313
監督投訴電話:010-66720766、66720018
咨詢時間:工作日周一至周五,上午9:00-12:00,下午3:00-5:30
解放軍報微信發布
來源:中國軍網
編輯:馬藝軒
輕量級框架:只關注視圖層,是一個構建數據的視圖集合,大小只有幾十kb;
簡單易學:國人開發,中文文檔,不存在語言障礙 ,易于理解和學習;
雙向數據綁定:保留了angular的特點,在數據操作方面更為簡單;
組件化:保留了react的優點,實現了html的封裝和重用,在構建單頁面應用方面有著獨特的優勢;
視圖,數據,結構分離:使數據的更改更為簡單,不需要進行邏輯代碼的修改,只需要操作數據就能完成相關操作;
虛擬DOM:dom操作是非常耗費性能的,不再使用原生的dom操作節點,極大解放dom操作,但具體操作的還是dom不過是換了另一種方式;
運行速度更快:相比較與react而言,同樣是操作虛擬dom,就性能而言,vue存在很大的優勢。
總共分為8個階段創建前/后,載入前/后,更新前/后,銷毀前/后。
創建前/后: 在beforeCreate階段,vue實例的掛載元素el和數據對象data都為undefined,還未初始化。在created階段,vue實例的數據對象data有了,el為undefined,還未初始化。
載入前/后:在beforeMount階段,vue實例的$el和data都初始化了,但還是掛載之前為虛擬的dom節點,data.message還未替換。在mounted階段,vue實例掛載完成,data.message成功渲染。
更新前/后:當data變化時,會觸發beforeUpdate和updated方法
銷毀前/后:在執行destroy方法后,對data的改變不會再觸發周期函數,說明此時vue實例已經解除了事件監聽以及和dom的綁定,但是dom結構依然存在
對象為引用類型,當復用組件時,由于數據對象都指向同一個data對象,當在一個組件中修改data時,其他重用的組件中的data會同時被修改;而使用返回對象的函數,由于每次返回的都是一個新對象(Object的實例),引用地址不同,則不會出現這個問題。
v-if和v-show看起來似乎差不多,當條件不成立時,其所對應的標簽元素都不可見,但是這兩個選項是有區別的:
1、v-if在條件切換時,會對標簽進行適當的創建和銷毀,而v-show則僅在初始化時加載一次,因此v-if的開銷相對來說會比v-show大。
2、v-if是惰性的,只有當條件為真時才會真正渲染標簽;如果初始條件不為真,則v-if不會去渲染標簽。v-show則無論初始條件是否成立,都會渲染標簽,它僅僅做的只是簡單的CSS切換。
immediate:組件加載立即觸發回調函數執行
watch: {
firstName: {
handler(newName, oldName) {
this.fullName=newName + ' ' + this.lastName;
},
// 代表在wacth里聲明了firstName這個方法之后立即執行handler方法
immediate: true
}
}
deep: deep的意思就是深入觀察,監聽器會一層層的往下遍歷,給對象的所有屬性都加上這個監聽器,但是這樣性能開銷就會非常大了,任何修改obj里面任何一個屬性都會觸發這個監聽器里的 handler
watch: {
obj: {
handler(newName, oldName) {
console.log('obj.a changed');
},
immediate: true,
deep: true
}
}
優化:我們可以使用字符串的形式監聽
watch: {
'obj.a': {
handler(newName, oldName) {
console.log('obj.a changed');
},
immediate: true,
// deep: true
}
}
這樣Vue.js才會一層一層解析下去,直到遇到屬性a,然后才給a設置監聽函數。
vue文件的一個加載器,跟template/js/style轉換成js模塊。
vue實現響應式并不是數據發生變化后dom立即變化,而是按照一定的策略來進行dom更新。
nextTick 是在下次 DOM 更新循環結束之后執行延遲回調,在修改數據之后使用nextTick,則可以在回調中獲取更新后的 DOM
當Vue用 v-for 正在更新已渲染過的元素列表是,它默認用“就地復用”策略。如果數據項的順序被改變,Vue將不是移動DOM元素來匹配數據項的改變,而是簡單復用此處每個元素,并且確保它在特定索引下顯示已被渲染過的每個元素。
為了給Vue一個提示,以便它能跟蹤每個節點的身份,從而重用和重新排序現有元素,你需要為每項提供一個唯一 key 屬性。key屬性的類型只能為 string或者number類型。
key 的特殊屬性主要用在Vue的虛擬DOM算法,在新舊nodes對比時辨識VNodes。如果不使用 key,Vue會使用一種最大限度減少動態元素并且盡可能的嘗試修復/再利用相同類型元素的算法。使用key,它會基于key的變化重新排列元素順序,并且會移除 key 不存在的元素。
vue.js 是采用數據劫持結合發布者-訂閱者模式的方式,通過Object.defineProperty()來劫持各個屬性的setter,getter,在數據變動時發布消息給訂閱者,觸發相應的監聽回調。主要分為以下幾個步驟:
1、需要observe的數據對象進行遞歸遍歷,包括子屬性對象的屬性,都加上setter和getter這樣的話,給這個對象的某個值賦值,就會觸發setter,那么就能監聽到了數據變化
2、compile解析模板指令,將模板中的變量替換成數據,然后初始化渲染頁面視圖,并將每個指令對應的節點綁定更新函數,添加監聽數據的訂閱者,一旦數據有變動,收到通知,更新視圖
3、Watcher訂閱者是Observer和Compile之間通信的橋梁,主要做的事情是: ①在自身實例化時往屬性訂閱器(dep)里面添加自己 ②自身必須有一個update()方法 ③待屬性變動dep.notice()通知時,能調用自身的update()方法,并觸發Compile中綁定的回調,則功成身退。
4、MVVM作為數據綁定的入口,整合Observer、Compile和Watcher三者,通過Observer來監聽自己的model數據變化,通過Compile來解析編譯模板指令,最終利用Watcher搭起Observer和Compile之間的通信橋梁,達到數據變化 -> 視圖更新;視圖交互變化(input) -> 數據model變更的雙向綁定效果。
通過props傳遞
父組件: <child value='傳遞的數據' />
子組件: props['value'],接收數據,接受之后使用和data中定義數據使用方式一樣
在父組件中給子組件綁定一個自定義的事件,子組件通過$emit()觸發該事件并傳值。
父組件: <child @receive='receive' />
子組件: this.$emit('receive','傳遞的數據')
A:methods :{ 函數{bus.$emit(‘自定義事件名’,數據)} 發送
B:created (){bus.$on(‘A發送過來的自定義事件名’,函數)} 進行數據接收
我們在父組件給子組件傳值的時候,可以指定該props的默認值及類型,當傳遞數據類型不正確的時候,vue會發出警告
props: {
visible: {
default: true,
type: Boolean,
required: true
},
}
首先,組件可以提升整個項目的開發效率。能夠把頁面抽象成多個相對獨立的模塊,解決了我們傳統項目開發:效率低、難維護、復用性等問題。
然后,使用Vue.extend方法創建一個組件,然后使用Vue.component方法注冊組件。子組件需要數據,可以在props中接受定義。而子組件修改好數據后,想把數據傳遞給父組件。可以采用emit方法。
簡而言之,就是先轉化成AST樹,再得到的render函數返回VNode(Vue的虛擬DOM節點),詳細步驟如下:
首先,通過compile編譯器把template編譯成AST語法樹(abstract syntax tree 即 源代碼的抽象語法結構的樹狀表現形式),compile是createCompiler的返回值,createCompiler是用以創建編譯器的。另外compile還負責合并option。
然后,AST會經過generate(將AST語法樹轉化成render funtion字符串的過程)得到render函數,render的返回值是VNode,VNode是Vue的虛擬DOM節點,里面有(標簽名、子節點、文本等等)
css的預編譯,使用步驟如下:
第一步:用npm 下三個loader(sass-loader、css-loader、node-sass)
第二步:在build目錄找到webpack.base.config.js,在那個extends屬性中加一個拓展.scss
第三步:還是在同一個文件,配置一個module屬性
第四步:然后在組件的style標簽加上lang屬性 ,例如:lang=”scss”
特性主要有:
當在項目中直接設置數組的某一項的值,或者直接設置對象的某個屬性值,這個時候,你會發現頁面并沒有更新。這是因為Object.defineProperty()限制,監聽不到變化。
解決方式:
this.$set(this.arr, 0, "OBKoro1"); // 改變數組
this.$set(this.obj, "c", "OBKoro1"); // 改變對象
splice()、 push()、pop()、shift()、unshift()、sort()、reverse()
vue源碼里緩存了array的原型鏈,然后重寫了這幾個方法,觸發這幾個方法的時候會observer數據,意思是使用這些方法不用我們再進行額外的操作,視圖自動進行更新。 推薦使用splice方法會比較好自定義,因為splice可以在數組的任何位置進行刪除/添加操作
從 2.3.0 起vue重新引入了.sync修飾符,但是這次它只是作為一個編譯時的語法糖存在。它會被擴展為一個自動更新父組件屬性的 v-on 監聽器。示例代碼如下:
<comp :foo.sync="bar"></comp>
會被擴展為:
<comp :foo="bar" @update:foo="val=> bar=val"></comp>
當子組件需要更新 foo 的值時,它需要顯式地觸發一個更新事件:
this.$emit('update:foo', newValue)
先給標簽設置一個ref值,再通過this.$refs.domName獲取,例如:
<div ref="test"></div>
const dom=this.$refs.test
是可以的,來個例子:
<input type="text" v-on="{ input:onInput,focus:onFocus,blur:onBlur, }">
這兩個都是用來存放項目中所使用的靜態資源文件。
兩者的區別:
assets中的文件在運行npm run build的時候會打包,簡單來說就是會被壓縮體積,代碼格式化之類的。打包之后也會放到static中。
static中的文件則不會被打包。
建議:將圖片等未處理的文件放在assets中,打包減少體積。而對于第三方引入的一些資源文件如iconfont.css等可以放在static中,因為這些文件已經經過處理了。
很多時候,我們封裝了一個子組件之后,在父組件使用的時候,想添加一些dom元素,這個時候就可以使用slot插槽了,但是這些dom是否顯示以及在哪里顯示,則是看子組件中slot組件的位置了。
使用vue開發時,在vue初始化之前,由于div是不歸vue管的,所以我們寫的代碼在還沒有解析的情況下會容易出現花屏現象,看到類似于{{message}}的字樣,雖然一般情況下這個時間很短暫,但是我們還是有必要讓解決這個問題的。
首先:在css里加上以下代碼
[v-cloak] {
display: none;
}
如果沒有徹底解決問題,則在根元素加上style="display: none;" :style="{display: 'block'}"
Vuex 是一個專為 Vue.js應用程序開發的狀態管理模式。它采用集中式存儲管理應用的所有組件的狀態,并以相應的規則保證狀態以一種可預測的方式發生變化。Vuex 也集成到 Vue 的官方調試工具 devtools extension,提供了諸如零配置的 time-travel 調試、狀態快照導入導出等高級調試功能。
第一步安裝
npm install vuex -S
第二步創建store
import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
//不是在生產環境debug為true
const debug=process.env.NODE_ENV !=='production';
//創建Vuex實例對象
const store=new Vuex.Store({
strict:debug,//在不是生產環境下都開啟嚴格模式
state:{
},
getters:{
},
mutations:{
},
actions:{
}
})
export default store;
第三步注入vuex
import Vue from 'vue';
import App from './App.vue';
import store from './store';
const vm=new Vue({
store:store,
render: h=> h(App)
}).$mount('#app')
一共有5個核心屬性,分別是:
const store=new Vuex.Store({
state: {
todos: [
{ id: 1, text: '...', done: true },
{ id: 2, text: '...', done: false }
]
},
getters: {
doneTodos: state=> {
return state.todos.filter(todo=> todo.done)
}
}
})
store.getters.doneTodos // -> [{ id: 1, text: '...', done: true }]
const store=new Vuex.Store({
state: {
count: 1
},
mutations: {
increment (state) {
// 變更狀態
state.count++
}
}
})
store.commit('increment')
const store=new Vuex.Store({
state: {
count: 0
},
mutations: {
increment (state) {
state.count++
}
},
actions: {
increment (context) {
context.commit('increment')
}
}
})
const moduleA={
state: ()=> ({ ... }),
mutations: { ... },
actions: { ... },
getters: { ... }
}
const moduleB={
state: ()=> ({ ... }),
mutations: { ... },
actions: { ... }
}
const store=new Vuex.Store({
modules: {
a: moduleA,
b: moduleB
}
})
store.state.a // -> moduleA 的狀態
store.state.b // -> moduleB 的狀態
如果請求來的數據是不是要被其他組件公用,僅僅在請求的組件內使用,就不需要放入vuex 的state里。
如果被其他地方復用,這個很大幾率上是需要的,如果需要,請將請求放入action里,方便復用。
從vuex中取的數據,不能直接更改,需要淺拷貝對象之后更改,否則報錯;
用sessionstorage 或者 localstorage 存儲數據
存儲: sessionStorage.setItem( '名', JSON.stringify(值) )
使用: sessionStorage.getItem('名') ---得到的值為字符串類型,用JSON.parse()去引號;
也可以引入插件vuex-persist,使用方法如下:
npm install --save vuex-persist
or
yarn add vuex-persist
import VuexPersistence from 'vuex-persist'
const vuexLocal=new VuexPersistence({
storage: window.localStorage
})
const store=new Vuex.Store({
state: { ... },
mutations: { ... },
actions: { ... },
plugins: [vuexLocal.plugin]
})
通過以上設置,在圖3中各個頁面之間跳轉,如果刷新某個視圖,數據并不會丟失,依然存在,并且不需要在每個 mutations 中手動存取 storage 。
在嚴格模式下,無論何時發生了狀態變更且不是由mutation函數引起的,將會拋出錯誤。這能保證所有的狀態變更都能被調試工具跟蹤到。
在Vuex.Store 構造器選項中開啟,如下
const store=new Vuex.Store({
strict:true,
})
使用mapGetters輔助函數, 利用對象展開運算符將getter混入computed 對象中
import {mapGetters} from 'vuex'
export default{
computed:{
...mapGetters(['total','discountTotal'])
}
}
使用mapMutations輔助函數,在組件中這么使用
import { mapMutations } from 'vuex'
methods:{
...mapMutations({
setNumber:'SET_NUMBER',
})
}
然后調用this.setNumber(10)相當調用this.$store.commit('SET_NUMBER',10)
action 是用this.store.dispatch('ACTION_NAME',data)來提交。
mutation是用this.$store.commit('SET_NUMBER',10)來提交
{
state, // 等同于 `store.state`,若在模塊中則為局部狀態
rootState, // 等同于 `store.state`,只存在于模塊中
commit, // 等同于 `store.commit`
dispatch, // 等同于 `store.dispatch`
getters, // 等同于 `store.getters`
rootGetters // 等同于 `store.getters`,只存在于模塊中
}
需要通過computed計算屬性來轉換。
<input v-model="message">
// ...
computed: {
message: {
get () {
return this.$store.state.message
},
set (value) {
this.$store.commit('updateMessage', value)
}
}
}
Vue Router 是 Vue.js 官方的路由管理器。它和 Vue.js 的核心深度集成,讓構建單頁面應用變得易如反掌。包含的功能有:
第一步安裝
npm install vue-router -S
第二步在main.js中使用Vue Router組件
第三步配置路由
路由組件可以是直接定義,也可以是導入已經定義好的組件。這里導入已經定義好的組件。如下
定義路由對象數組。對象的path是自定義的路徑(即使用這個路徑可以找到對應的組件),component是指該路由對應的組件。如下:
調用Vue Router的構造方法創建一個Vue Router的實例對象,將上一步定義的路由對象數組作為參數對象的值傳入。如下
第四步在App.vue中使用路由
在App.vue中使用標簽來顯示路由對應的組件,使用標簽指定當點擊時顯示的對應的組件,to屬性就是指定組件對應的路由。如下:
在router目錄下的index.js文件中,對path屬性加上/:id。使用router對象的params.id獲取動態參數
常用的是router.beforeEach(to,from,next),在跳轉前進行權限判斷。一共有三種:
使用query方法傳入的參數使用this.$route.query接受
使用params方式傳入的參數使用this.$route.params接受
route為當前router跳轉對象里面可以獲取name、path、query、params等
router為VueRouter實例,想要導航到不同URL,則使用router.push方法
找到入口文件main.js里的new Vue(),必須使用router名,不能把router改成Router或者其他的別名
// 引入路由
import router from './routers/router.js'
new Vue({
el: '#app',
router, // 這個名字必須使用router
render: h=> h(App)
});
隨著項目功能模塊的增加,引入的文件數量劇增。如果不做任何處理,那么首屏加載會相當的緩慢,這個時候,路由按需加載就閃亮登場了。
webpack< 2.4 時
{
path:'/',
name:'home',
components:resolve=>require(['@/components/home'],resolve)
}
webpack> 2.4 時
{
path:'/',
name:'home',
components:()=>import('@/components/home')
}
import()方法是由es6提出的,動態加載返回一個Promise對象,then方法的參數是加載到的模塊。類似于Node.js的require方法,主要import()方法是異步加載的。
Vue路由在Android機上有問題,babel問題,安裝babel polypill插件解決
使用@click.native。原因:router-link會阻止click事件,.native指直接監聽一個原生事件
這個模塊請看我的另一篇文章,此處不再整理(我太懶了)
https://juejin.cn/post/6968630178163458084
這個模塊請看我的另一篇文章,此處不再整理(我太懶了)
https://juejin.cn/post/6850037269227634702
類型:String
默認:'/'
部署應用包時的基本 URL。默認情況下,Vue CLI會假設你的應用是被部署在一個域名的根路徑上,例如https://www.my-app.com/。如果應用被部署在一個子路徑上,你就需要用這個選項指定這個子路徑。例如,如果你的應用被部署在https://www.my-app.com/my-app/,則設置publicPath為/my-app/
這個值也可以被設置為空字符串 ('') 或是相對路徑 ('./'),這樣所有的資源都會被鏈接為相對路徑,這樣打出來的包可以被部署在任意路徑,也可以用在類似 Cordova hybrid 應用的文件系統中。
類型:boolean
moren:true
不允許打包時生成項目來源映射文件,在生產環境下可以顯著的減少包的體積
注 Source map的作用:針對打包后的代碼進行的處理,就是一個信息文件,里面儲存著位置信息。也就是說,轉換后的代碼的每一個位置,所對應的轉換前的位置。有了它,出錯的時候,除錯工具將直接顯示原始代碼,而不是轉換后的代碼。這無疑給開發者帶來了很大方便
放置生成的靜態資源 (js、css、img、fonts) 的 (相對于 outputDir 的) 目錄,默認是'',
指定生成的 index.html 的輸出路徑(相對于outputDir)。也可以是一個絕對路徑。默認是'index.html'
是否在每次保存時使用eslint檢查,這個對語法的要求比較嚴格,對自己有要求的同學可以使用
css: {
//是否啟用css分離插件,默認是true,如果不啟用css樣式分離插件,打包出來的css是通過內聯樣式的方式注入至dom中的,
extract: true,
sourceMap: false,//效果同上
modules: false,// 為所有的 CSS 及其預處理文件開啟 CSS Modules。
// 這個選項不會影響 `*.vue` 文件。
}
本地開發服務器配置,此處直接貼上我常用的配置,以注釋的方式介紹
devServer: {
//配置開發服務器
host: "0.0.0.0",
//是否啟用熱加載,就是每次更新代碼,是否需要重新刷新瀏覽器才能看到新代碼效果
hot: true,
//服務啟動端口
port: "8080",
//是否自動打開瀏覽器默認為false
open: false,
//配置http代理
proxy: {
"/api": { //如果ajax請求的地址是http://192.168.0.118:9999/api1那么你就可以在jajx中使用/api/api1路徑,其請求路徑會解析
// http://192.168.0.118:9999/api1,當然你在瀏覽器上開到的還是http://localhost:8080/api/api1;
target: "http://192.168.0.118:9999",
//是否允許跨域,這里是在開發環境會起作用,但在生產環境下,還是由后臺去處理,所以不必太在意
changeOrigin: true,
pathRewrite: {
//把多余的路徑置為''
"api": ""
}
},
"/api2": {//可以配置多個代理,匹配上那個就使用哪種解析方式
target: "http://api2",
// ...
}
}
}
這是一個不進行任何 schema 驗證的對象,因此它可以用來傳遞任何第三方插件選項,例如:
{
//定義一個全局的less文件,把公共樣式變量放入其中,這樣每次使用的時候就不用重新引用了
'style-resources-loader': {
preProcessor: 'less',
patterns: [
'./src/assets/public.less'
]
}
}
是一個函數,會接收一個基于 webpack-chain 的 ChainableConfig 實例。允許對內部的 webpack 配置進行更細粒度的修改。例如:
到前端技術,我們通常都會說到"三大塊":HTML、CSS、JavaScript,前端最核心的三項技術。
從邏輯上講,一個網頁可以視為由這三項技術實現的三層架構有機結合體。
· 結構層:表述一個頁面中有哪些信息,以及信息之間的關系,由HTML實現。
· 表現層:決定了頁面中的信息會以怎樣的外觀呈現出來,由CSS實現。
· 行為層:控制了頁面如何與用戶進行交互,由JS實現。
除了基本的"三大塊"之外,作為前端開發工程師,還需要掌握以下知識點:
· HTTP相關:由于前端資源都是瀏覽器通過網絡下載的,所以有必要了解相關的網絡協議。
· 前端性能優化:讓網頁更快,減少用戶的等待,是前端工程師面臨的重要課題,需要掌握前端性能優化相關的工具和方法。
· 前端框架:Web業務日趨復雜,對前端開發提出更高要求。學會使用框架開發,很好地解決了jQuery 稱霸時代開發周期太長,復用性低等問題,大大提升了效率。
· Node相關:在Node.js之前,沒有任何一種腳本語言能貫穿前后端平臺——Node.js可以用JS寫后臺,這對于熟悉JS的前端人員而言會更容易掌握,并且用Node.js可以快速搭建本地服務器。這是很多前端開發者青睞這項技術的原因。
以下,人郵君就圍繞前端開發所需技能列出一份薦書清單,并按照豆瓣評分和讀者評價給出了推薦指數,請簽收!
超文本標記語言(Hyper Text Markup Language,HTML),用于描述超文本中內容的顯示方式,如文字以什么顏色、大小來顯示等。HTML從1.0到5.0經歷了巨大的變化,已經成為了一種非常成熟的標記語言。
《HTML5權威指南》
推薦指數:☆☆☆☆
作者:[美]Adam Freeman 譯者:謝廷晟 牛化成 劉美英
本書是系統學習網頁設計的參考圖書,全書分為五部分:
· 介紹學習需要的預備知識和HTML、CSS和JavaScript的進展;
· 討論HTML元素,并詳細說明了HTML5中新增和修改的元素;
· 闡述CSS,涵蓋了所有控制內容樣式的CSS選擇器和屬性,并輔以大量代碼示例和圖示;
· 介紹DOM,剖析如何用JavaScript操縱HTML內容;
· 講解Ajax、多媒體和canvas元素等HTML5特性。
本書面向初學者和中等水平Web開發人員,是牢固掌握HTML5、CSS3和JavaScript的必讀之作。
《HTML5程序設計(第2版)》
推薦指數:☆☆☆
作者:[荷]Peter Lubbers [美]Brian Albers [美]Frank Salim 譯者:柳靖 李杰 劉淼
本書主要內容包括:
· HTML5歷史背景、新的語義標簽及與以往HTML版本相比的根本變化;
· HTML5設計原理;
· SVG和拖放API相關內容;
· 逐一討論HTML5的Canvas、Geolocation、Communication、WebSocket、Forms、WebWorkers、Storage等API的使用;
· 探索了離線Web應用并展望了HTML5未來的發展前景。
本書面向有一定經驗的Web應用開發人員,對HTML5及未來Web應用技術發展有濃厚興趣的讀者也可以學習參考。
級聯樣式表(Cascading Style Sheet)簡稱"CSS",通常又稱為"風格樣式表(Style Sheet)",是用來控制網頁外觀的一門技術。各種物聯網設備,不論屏幕尺寸大小,只要有瀏覽器就要用到CSS。
《HTML5與CSS3基礎教程(第8版)》
推薦指數:☆☆☆☆
作者:[美]Elizabeth Castro [美]Bruce Hyslop 譯者:望以文
本書是講解HTML和CSS入門知識的經典暢銷書,全面系統地闡述了HTML5和CSS3基礎知識以及實際運用技術,通過大量實例深入淺出地分析了網頁制作的方方面面。主要內容有:
· 介紹文本、圖像、鏈接、列表、表格、表單等網頁元素;
· 介紹如何為網頁設計布局、添加動態效果等;
· 調試和發布;
· 書中的完整代碼示例,以及更多實例及進階參考資料(配套網站)。
通過學習本書,零起點讀者即可創建網站,而中水平的開發人員也可以快速了解HTML5新元素、CSS3的奇幻效果、響應式Web設計以及各種最佳實踐。
《CSS揭秘》
推薦指數:☆☆☆☆☆
作者:[希]LEA VEROU 譯者:CSS魔法
· 本書是一本注重實踐的教程,作者為我們揭示了47個鮮為人知的CSS技巧;
· 主要內容包括背景與邊框、形狀、視覺效果、字體排印、用戶體驗、結構與布局、過渡與動畫等;
· 本書將帶領讀者循序漸進地探尋更優雅的解決方案,攻克每天都會遇到的各種網頁樣式難題。
《CSS揭秘》是前端工程師、網頁開發人員的進階必備書籍。
《CSS世界》
推薦指數:☆☆☆☆
作者:張鑫旭
本書主要內容包括:
· 結構、內容、美化裝飾等方面大量的CSS知識點;
· 通過大量的實戰案例,詳盡解析CSS的相關知識與常見問題;
· 專門的配套網站進行實例展示、問題答疑。
作為一本CSS深入學習的書,書中介紹大量許多前端開發人員都不知道的CSS知識點。通過閱讀本書,讀者會對CSS世界的深度和廣度有一個全新的認識。
《CSS權威指南(第四版)(上下冊)》
推薦指數:☆☆☆☆
作者:[美]Eric A. Meyer [美]Estelle Weyl 譯者:安道
· 本書全面闡述了 CSS 的實現方式,深入分析了最新的 CSS 規范;
· 展示了如何通過布局、過渡和動畫、邊框、背景、文本屬性,以及許多其他工具和技術來改善用戶體驗、加快開發速度、避免潛在的錯誤;
· 如果你是網頁設計師或應用開發者,對復雜的頁面樣式、改進可訪問性以及節省時間和精力感興趣,那你決不能錯過這本書。
JavaScript是一種解釋型的、基于對象的腳本語言,它能夠將網頁中的文本、圖形、聲音和動畫等各種媒體形式捆綁在一起,形成一個緊密結合的信息源。無論是桌面開發,還是移動應用,JavaScript都是必須掌握的技術。
《JavaScript高級程序設計(第3版)》
推薦指數:☆☆☆☆☆
作者:[美]Nicholas C.Zakas 譯者:李松峰 曹力
本書承繼了之前版本全面深入、貼近實戰的特點,講解了JavaScript語言的核心,展示了現有規范及實現為開發Web應用提供的各種支持和特性。本書主要內容包括:
· 解讀JavaScript實現各個組成部分;
· 闡述JavaScript面向對象編程;
· 剖析DOM、BOM及瀏覽器事件模型;
· Web應用基本數據格式JSON、XML及其存取;
· Ajax、Comet服務器端通信和基于File API的拖放式文件上傳;
· ECMAScript 5定義的新核心語言特性;
· HTML5涵蓋的表單、媒體、Canvas(包括WebGL);
· Selectors、Web、Workers、地理定位及跨文檔傳遞消息等新API;
· 離線應用及客戶端存儲(包括IndexedDB);
· 維護、性能、部署相關的開發實踐;
· 新興API及ECMAScript Harmony展望。
作為JavaScript技術經典名著,《JavaScript高級程序設計(第3版)》可以說是JavaScript最權威的入門書籍了。
《JavaScript DOM編程藝術(第2版)》
推薦指數:☆☆☆☆
作者:[英]Jeremy Keith [加]Jeffrey Sambells 譯者:楊濤 王建橋 楊曉云等
本書是超級暢銷書的升級版,由倡導Web標準的領軍人物執筆,揭示了前端開發的真諦,是學習JavaScript和DOM開發的必讀之作。本書主要內容包括:
· JavaScript和DOM的基本知識;
· 通過幾個實例演示了專業水準的網頁開發技術;
· 透徹闡述了平穩退化等一批至關重要的JavaScript編程原則和實踐;
· 全面探討了HTML5以及jQuery等JavaScript庫。
通過閱讀本書,讀者將看到JavaScript、HTML5和CSS如何協作來創建易用的、與標準兼容的Web設計,以及掌握使用JavaScript和DOM通過客戶端動態效果和用戶控制的動畫來加強Web頁面的必備技術;同時,還將對如何利用庫提高開發效率有全面深入的理解。
《你不知道的JavaScript》
推薦指數:☆☆☆☆☆
作者:[美]Kyle Simpson 譯者:趙望野 梁杰
本書深入理解語言內部的機制,全面介紹了JavaScript中常被人誤解和忽視的重要知識點。
· 《你不知道的JavaScript(上卷)》介紹了該系列的兩個主題——"作用域和閉包"以及"this和對象原型"。掌握了這些知識之后,無論什么技術、框架和流行詞語,你都能輕松理解。本書講解通透深入,是入門必備書籍。
· 《你不知道的JavaScript(中卷)》主要介紹了類型、語法、異步和性能。
· 《你不知道的JavaScript(下卷)》主要介紹了入門知識和對ES6及未來發展趨勢的展望。
本書既適合JavaScript語言初學者閱讀,又適合經驗豐富的JavaScript開發人員深入學習。
《Head First JavaScript程序設計》
推薦指數:☆☆☆☆
作者:[美]Eric T. Freeman [美]Elisabeth Robson 譯者:袁國忠
· 本書語言和版式活潑,內容講解深入淺出,是難得的JavaScript入門書;
· 本書內容涵蓋JavaScript的基本知識以及對象、函數和瀏覽器文檔對象模型等高階主題;
· 書中配備了大量有趣的實例、圖示和練習,讓讀者輕輕松松掌握JavaScript。
本書的讀者對象為JavaScript入門讀者以及網頁設計入門者。
`````````
《JavaScript忍者秘籍 第2版》
推薦指數:☆☆☆☆☆
作者:[美]John Resig [美]Bear Bibeault [美]Josip Maras 譯者:一心一譯前端小組
本書共分4個部分,從不同層次講述了逐步成為JavaScript高手所需的知識:
· 本書從JavaScript語言及重要的特性談起,由淺入深地探討了函數、作用域、閉包、生成器函數、對象、數組、模塊化、JavaScript與Web頁面的交互以及事件等主題;
· 引導讀者更加深入地了解JavaScript的方方面面,充分展示了JavaScript語言的各種特性;
· 本書結合ECMAScript 6和7的相關概念,涵蓋了流行的JavaScript框架所使用的技術。
本書適合具備一定JavaScript基礎知識的讀者閱讀,也適合從事程序設計工作并想要深入探索JavaScript語言的讀者閱讀。
《JavaScript設計模式》
推薦指數:☆☆☆☆
作者:張容銘
本書共分六篇四十章:
· 討論了幾種函數的編寫方式,體會JavaScript在編程中的靈活性;
· 講解了面向對象編程的知識,其中討論了類的創建、數據的封裝以及類之間的繼承;
· 探討了各種模式的技術,如簡單工廠模式,包括工廠方法模式、抽象工廠模式、建造者模式、原型模式、單例模式,以及外觀模式,包括適配器模式。
· 講解了幾種適配器、代理模式、裝飾者模式和MVC模式,討論了如何實現對數據、視圖、控制器的分離。
· 在講解MVP模式時,討論了如何解決數據與視圖之間的耦合,并實現了一個模板生成器;
· 講解MVVM模式時,討論了雙向綁定對MVC的模式演化。
本書幾乎包含了關于JavaScript設計模式的全部知識,是進行JavaScript高效編程必備的學習手冊。
《JavaScript面向對象精要》
推薦指數:☆☆☆☆☆
作者:[美]Nicholas C.Zakas 譯者:胡世杰
全書共6章,內容簡潔而精妙,關注面向對象的原理和ES5對象新特性,幫助那些已經熟知面向對象編程的讀者掌握這些概念是如何在JavaScript中工作的。
· 本書深入探討了原始類型和引用類型、函數、對象、構造函數和原型對象、繼承和對象模式等主題和特性;
· 你將學到JavaScript獨特的面向對象的編程方式;
· 你將學到拋棄類的概念和基于類的繼承,學習基于原型的繼承和構造函數;
· 你將學會如何創建對象、定義自己的類型、使用繼承以及其他各種操作來充分使用對象。
總而言之,你將學到JavaScript語言并進行專業編程所需熟知的一切。本書適合熟悉面向對象編程的概念并希望將其應用于JavaScript的開發者閱讀,也適合JavaScript新手學習參考。
《鋒利的jQuery(第2版)》
推薦指數:☆☆☆☆
作者:單東林 張曉菲 魏然
· 本書介紹了jQuery的各種函數和方法調用;
· 讀者可以系統地掌握jQuery的選擇器、DOM操作、事件和動畫、AJAX應用、插件、jQuery Mobile、jQuery各個版本變化、jQuery性能優化和技巧等知識點,并結合每個章節后面的案例演示進行練習;
· 本書的第8章將前7章講解的知識點和效果進行了整合,打造出一個非常有個性的網站,并從案例研究、網站材料、網站結構、網站樣式和網站腳本等方面指導讀者參與到項目建設中來。
《鋒利的jQuery(第2版)》適合所有對jQuery技術感興趣的Web設計者和前端開發人員閱讀和參考。
Node.js是建立在Chrome瀏覽器的JavaScript運行時基礎上,用于快速構建可擴展的網絡應用的平臺。Node旨在幫助開發者編寫異步的、事件驅動的應用。在Node中,每一個請求都是異步的,并且幾乎所有的I/O都是非阻塞的。因此,Node應用非常高效率,能夠處理的"并發"連接的數量也很龐大。
《Node.js實戰(第2版)》
推薦指數:☆☆☆
作者:[英]Alex Young [美] Bradley Meck [美] Mike Cantelon [美] Tim Oxley [美] Marc Harter [美] T.J.Holowaychuk [美] Nathan Rajlich 譯者:吳海星
· Node.js核心框架貢獻者力作 ;
· 展示Node核心技巧 ;
· 涵蓋前端構建系統、Web框架選擇、數據庫交互和Web程序測試與部署等全棧開發所需技術。
本書是Node.js的實戰教程,涵蓋了為開發產品級Node應用程序所需要的一切特性、技巧以及相關理念。從搭建Node開發環境,到一些簡單的演示程序,到開發復雜應用程序所必不可少的異步編程,第2版介紹了全棧開發者所需的全部技術,可作為入門書籍。
《深入淺出 Node.js》
推薦指數:☆☆☆☆☆
作者:樸靈
《深入淺出Node.js》從不同的視角介紹了 Node 內在的特點和結構。由首章Node介紹為索引,涉及Node的各個方面,主要內容包括:
· 模塊機制的揭示;
· 異步I/O實現原理的展現;
· 異步編程的探討;
· 內存控制的介紹;
· 二進制數據Buffer的細節;
· Node中的網絡編程基礎;
· Node中的Web開發;
· 進程間的消息傳遞;
· Node測試以及通過Node構建產品需要的注意事項。
附錄介紹了Node的安裝、調試、編碼規范和NPM倉庫等事宜。本書適合想深入了解 Node的人員閱讀,是進階必備書籍。
《HTTP權威指南》
推薦指數:☆☆☆☆☆
作者:[美]David Gourley [美]Brian Totty [美]Marjorie Sayer [美]Sailu Reddy [美]Aushu Aggarwal 譯者:陳涓 趙振平
本書由具有多年實踐經驗的專家編寫,通過簡潔語言和大量翔實的細節圖解幫助讀者形象地理解Web幕后所發生的事情,詳細說明了Web上每條請求的實際運行情況,主要內容包括:
· HTTP方法、首部以及狀態碼;
· 優化代理和緩存的方法;
· 設計Web機器人和爬蟲的策略;
· Cookies、認證以及安全HTTP;
· 國際化及內容協商;
· 重定向及負載平衡策略。
本書深入說明了Web的工作原理,內容全面,講解細致,是HTTP協議及相關Web技術方面的著作。
《圖解HTTP》
推薦指數:☆☆☆☆
作者:[日]上野 宣 譯者:于均良
《圖解HTTP》對HTTP協議進行了全面系統的介紹,可以說是一本講解HTTP協議的神書,簡單有趣,圖文并茂,生動形象,適合入門,主要內容包括:
· HTTP協議的發展歷史;
· HTTP協議的結構剖析;
· 常見通信場景及實戰案例;
· Web安全、新技術動向等。
讀者可通過本書快速了解并掌握HTTP協議的基礎知識。
《圖解TCP/IP(第5版)》
推薦指數:☆☆☆
作者:[日]竹下隆史 [日]村山公保 [日]荒井透 [日]苅田幸雄 譯者:烏尼日其其格
· 本書是一本圖文并茂的網絡管理技術書籍,旨在讓廣大讀者理解TCP/IP的基本知識、掌握TCP/IP的基本技能;
· 書中講解了網絡基礎知識、TCP/IP基礎知識、數據鏈路、IP協議、IP協議相關技術、TCP與UDP、路由協議、應用協議、網絡安全等內容;
· 引導讀者了解和掌握TCP/IP,營造一個安全的、使用放心的網絡環境。
《Web性能權威指南》
推薦指數:☆☆☆☆
作者:[加]Ilya Grigorik 譯者:李松峰
本書由谷歌公司高性能團隊核心成員創作,堪稱實戰經驗與規范解讀結合的產物,獲得IETF下一代HTTP協議工作組主席力薦。本書目標是涵蓋Web技術體系中應該掌握的所有網絡及性能優化知識。本書主要內容有:
· 以性能優化為主線,從TCP、UDP和TLS協議講起;
· 解釋了如何針對這幾種協議和基礎設施來優化應用;
· 深入探討了無線和移動網絡的工作機制;
· 揭示了HTTP協議的底層細節;
· 同時詳細介紹了HTTP 2.0、 XHR、SSE、WebSocket、WebRTC和DataChannel等現代瀏覽器新增的具有革命性的新能力。
本書適合所有Web應用及站點開發人員閱讀,包括但不限于前端、后端、運維、大數據分析、UI/UX、存儲、視頻、實時消息,以及性能工程師。
當前,三大主流前端框架分別是React、Vue、Angular。
React 是一個采用聲明式,高效而且靈活的用來構建用戶界面的框架,另辟蹊徑提出了以組件化的形式重新構建頁面內容,將頁面的內容按特征分塊,然后將特定塊中的HTML、CSS、JS封裝在一起,最后用組件來構建頁面內容。
《深入React技術棧》
推薦指數:☆☆☆☆
作者:陳屹
本書從幾個維度去介紹 React:
· 一是作為 View 庫,它怎么實現組件化,以及它背后的實現原理;
· 二是擴展到 Flux 應用架構及重要的衍生品 Redux,它們怎么與 React 結合做應用開發;
· 三是對 React 與 server 的碰撞產生的一些思考;
· 四是講述它在可視化方面的優勢與劣勢。
此外,本書非常重視實戰,每一節都有實際的例子,細節豐富,內容翔實,由淺入深,無論你是 React 初學者,還是進階人士,本書都值得一讀!本書適合有一定經驗的前端開發人員閱讀。
Vue.js是一套構建用戶界面的漸進式框架。與其他重量級框架不同的是,Vue 采用自底向上增量開發的設計。Vue.js 自身不是一個全能框架——它只聚焦于視圖層,因此它非常容易學習,并很容易與其它庫或已有項目整合。
《深入淺出Vue.js》
推薦指數:☆☆☆☆
作者:劉博文
本書從源碼層面分析了Vue.js,主要內容有 :
· 簡要介紹Vue.js;
· 講解內部核心技術"變化偵測",帶領大家從0到1實現一個簡單的"變化偵測"系統;
· 介紹虛擬DOM技術,包括虛擬DOM的原理及其patching算法;
· 討論模板編譯技術,包括模板解析器的實現原理、優化器的原理以及代碼生成器的原理;
· 介紹其整體架構以及提供給我們使用的各種API的內部原理,同時還介紹了生命周期、錯誤處理、指令系統與模板過濾器等功能的原理。
360奇舞團團長月影和《JavaScript高級程序設計》譯者李松峰作序推薦,適合前端開發人員閱讀。
Angular是一個用來構建大型應用,高性能的Web應用程序的框架;是一個完整的、從 UI、路由、Http、Socket到依賴注入、編譯、優化、測試的框架。Angular上手起來有一定難度,但其工程屬性極強,非常適合多團隊的大型項目,一旦學會,優勢很大。
《Angular權威教程》
推薦指數:☆☆☆☆
作者:[美]Ari Lerner [巴西]Felipe Coury [美]Nate Murray [巴西]Carlos Taborda 譯者:Nice Angular社區
· 本書堪稱Angular領域的里程碑式著作,幾乎涵蓋了關于Angular的所有內容;
· 對于沒有經驗的人,本書平實、通俗的講解,遞進、嚴密的組織,可以讓人毫無壓力地登堂入室,迅速領悟新一代Web應用開發的精髓;
· 如果你有相關經驗,那本書對Angular概念和技術細節的全面剖析,以及引人入勝、切中肯綮的講解,將幫助你徹底掌握這個框架,在自己職業技術修煉之路上更進一步。
*請認真填寫需求信息,我們會在24小時內與您取得聯系。