[轉]我們為什么要用vue,他解決了什么問題,如何使用它?

?

?

?

Vue.js新手入門指南

?

最近在逛各大網站,論壇,以及像SegmentFault等編程問答社區,發現Vue.js異常火爆,重復性的提問和內容也很多,樓主自己也趁著這個大前端的熱潮,著手學習了一段時間的Vue.js,目前用它正在做自己的結業項目。

?

在做的過程中也對Vue.js的官方文檔以及其各種特性有了許多認識。作為一個之前以PHP+模版引擎為主的開發,從一個從未接觸過除HTML+CSS+JavaScript+JQuery以外的前端技術的人到現在可以獨立使用Vue.js以及各種附屬的UI庫來開發項目,我總結了一些知識和經驗想與大家分享。

?

下面我就以問答的形式來分享吧。這里假設你僅僅只掌握了HTML+CSS+JavaScript,如果你對JQuery這個前端庫,以及各種后端模版語言比如說PHP,JSP還有所了解并且使用過的話那就太好了。

?

1.Vue.js是什么?

?

Vue.js(讀音 /vju?/, 類似于 view) 是一套構建用戶界面的 漸進式框架。與其他重量級框架不同的是,Vue 采用自底向上增量開發的設計。Vue 的核心庫只關注視圖層,并且非常容易學習,非常容易與其它庫或已有項目整合。另一方面,Vue 完全有能力驅動采用單文件組件和 Vue 生態系統支持的庫開發的復雜單頁應用。

?

Vue.js 的目標是通過盡可能簡單的 API 實現響應的數據綁定和組合的視圖組件。

?

如果你是有經驗的前端開發者,想知道 Vue.js 與其它庫/框架的區別,查看對比其它框架。

?

這是官網的介紹,是不是覺得非常的抽象非常的官方?看完之后可能還是有很多人不是很懂這個框架到底是用來做什么的,什么是“漸進式框架”?什么是“自底向上增量開發”?什么是“視圖層”?什么是“單文件組件”?什么是“復雜的單頁應用?”第二段話里面“響應的數據綁定和組合的視圖組件”這又是個啥?還有最后一段話,“Vue.js 與其它庫/框架的區別”究竟是什么?

?

不要擔心,如果你慢慢看完這里面的所有問答,一定會對前面那些可能你從未聽說過的專業術語有一種恍然大悟的感覺。

?

2.Vue.js到底是什么?

?

想必現在能看到我這篇文章的人,都是用著APP或者網頁版知乎在閱讀把。Vue.js就是一個用于搭建類似于網頁版知乎這種表單項繁多,且內容需要根據用戶的操作進行修改的網頁版應用。

?

3.單頁應用程序(SPA)

?

顧名思義,單頁應用一般指的就是一個頁面就是應用,當然也可以是一個子應用,比如說知乎的一個頁面就可以視為一個子應用。單頁應用程序中一般交互處理非常多,而且頁面中的內容需要根據用戶的操作動態變化。

?

4.你前面說的網頁版知乎我也可以用JQuery寫啊,為什么要用Vue.js呢?

?

講到JQuery,就不得不說到JavaScript的DOM操作了。如果你用JQuery來開發一個知乎,那么你就需要用JQuery中的各種DOM操作方法去操作HTML的DOM結構了。

?

現在我們把一個網頁應用抽象一下,那么HTML中的DOM其實就是視圖,一個網頁就是通過DOM的組合與嵌套,形成了最基本的視圖結構,再通過CSS的修飾,在基本的視圖結構上“化妝”讓他們看起來更加美觀。最后涉及到交互部分,就需要用到JavaScript來接受用戶的交互請求,并且通過事件機制來響應用戶的交互操作,并且在事件的處理函數中進行各種數據的修改,比如說修改某個DOM中的innerHTML或者innerText部分。

?

我們把HTML中的DOM就可以與其他的部分獨立開來劃分出一個層次,這個層次就叫做視圖層。

?

Vue 的核心庫只關注視圖層

?

我們為什么要把視圖層抽取出來并且單獨去關注它呢?

?

因為在像知乎這種頁面元素非常多,結構很龐大的網頁中,數據和視圖如果全部混雜在一起,像傳統開發一樣全部混合在HTML中,那么要對它們進行處理會十分的費勁,并且如果其中有幾個結構之間存在藕斷絲連的關系,那么會導致代碼上出現更大的問題,這什么問題呢?

?

你是否還記得你當初寫JQuery的時候,有$('#xxx').parent().parent().parent()這種代碼呢?當你第一次寫的時候,你覺得頁面元素不多,不就是找這個元素的爸爸的爸爸的爸爸嗎,我大不了在注釋里面寫清楚這個元素的爸爸的爸爸的爸爸不就好了。但是萬一過幾天之后你的項目組長或者你的產品經理突然對你做的網頁提出修改要求,這個修改要求將會影響頁面的結構,也就是DOM的關聯與嵌套層次要發生改變,那么$('#xxx').parent().parent().parent()可能就會變成
$('#xxx').parent().parent().parent().parent().parent()了。

?

這還不算什么,等以后產品迭代越來越快,修改越來越多,而且頁面中類似的關聯和嵌套DOM元素不止一個,那么修改起來將非常費勁。而且JQuery選擇器查找頁面元素以及DOM操作本身也是有性能損失的,可能到時候打開這個頁面,會變得越來越卡,而你卻無從下手。

?

當你在編寫項目的時候遇到了這種問題,你一定會抱怨,為什么世上會有HTML這種像盜夢空間一樣的需要無數div嵌套才能做出頁面的語言,為什么當初學JQuery看中的是它簡潔的DOM操作,現在卻一點也不覺得它有多簡潔,難道我學的是假的JQuery?為什么寫個代碼這么難,你想砸電腦,你想一鍵盤拍在產品狗的腦袋上,責怪他天天改需求才讓你原本花清香茶清味的代碼變得如此又臭又長。

?

這個時候如果你學過Vue.js,那么這些抱怨將不復存在。

?

5.Vue.js為什么能讓基于網頁的前端應用程序開發起來這么方便?

?

因為Vue.js有聲明式,響應式的數據綁定,與組件化的開發,并且還使用了Virtual DOM這個看名字就覺得高大上的技術。

?

可是這些名詞都是啥?

?

6.響應式的數據綁定

?

這里的響應式不是@media 媒體查詢中的響應式布局,而是指vue.js會自動對頁面中某些數據的變化做出響應。至于是如何響應的,大家可以先把下面這段代碼隨便粘貼到一個擴展名為html的文件然后用瀏覽器打開,隨便在文本框里面輸入一些文字,觀察一下頁面變化。

?

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>vue.js</title><script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body><div id="app"><input type="text" name="" value="" placeholder="在這里輸入文字,下面會跟著變化" v-model="message"><hr><p>{{ message }}</p></div><script type="text/javascript">var app = new Vue({el: '#app',data: {message: 'Hello Vue!'}})</script>
</body>
</html>

?

是不是會發現一個很神奇的現象,文本框里面輸入的文字和后面的p標簽中的內容一起變化?

?

換句話說,p標簽里面通過{{ message }}這個寫法與input標簽中的value綁定在了一起,其中變化,另外一個和它綁定的數據就跟著變化。

?

結合標題來說,就是vue.js會自動響應數據的變化情況,并且根據用戶在代碼中預先寫好的綁定關系,對所有綁定在一起的數據和視圖內容都進行修改。而這種綁定關系,在圖上是以input 標簽的v-model屬性來聲明的,因此你在別的地方可能也會看到有人粗略的稱vue.js為聲明式渲染的模版引擎。

?

7.組件化開發

?

還記得在傳統前端開發的時候,我們都是每個人做一個頁面,然后最后套入各種后端模版引擎,比如說PHP的Smarty或者Java的JSP等等。

?

但是現在我們做單頁應用,頁面交互和結構十分復雜,一個頁面上就有許許多多的模塊需要編寫,而且往往一個模塊的代碼量和工作量就非常龐大,如果還按照原先的方法來開發,那么會累死人。而且遇到以后的產品需求變更,修改起來也非常麻煩,生怕動了其中一個div之后,其他div跟著雪崩,整個頁面全部亂套,或者由于JavaScript的事件冒泡機制,導致修改一些內層的DOM事件處理函數之后,出現各種莫名其妙的詭異BUG。

?

在面向對象編程中,我們可以使用面向對象的思想將各種模塊打包成類或者把一個大的業務模塊拆分成更多更小的幾個類。在面向過程編程中,我們也可以把一些大功能拆分成許多函數,然后分配給不同的人來開發。

?

在前端應用,我們是否也可以像編程一樣把模塊封裝呢?這就引入了組件化開發的思想。

?

Vue.js通過組件,把一個單頁應用中的各種模塊拆分到一個一個單獨的組件(component)中,我們只要先在父級應用中寫好各種組件標簽(占坑),并且在組件標簽中寫好要傳入組件的參數(就像給函數傳入參數一樣,這個參數叫做組件的屬性),然后再分別寫好各種組件的實現(填坑),然后整個應用就算做完了。

?

8.Virtual DOM

?

現在的網速越來越快了,很多人家里都是幾十甚至上百M的光纖,手機也是4G起步了,按道理一個網頁才幾百K,而且瀏覽器本身還會緩存很多資源文件,那么幾十M的光纖為什么打開一個之前已經打開過,已經有緩存的頁面還是感覺很慢呢?這就是因為瀏覽器本身處理DOM也是有性能瓶頸的,尤其是在傳統開發中,用JQuery或者原生的JavaScript DOM操作函數對DOM進行頻繁操作的時候,瀏覽器要不停的渲染新的DOM樹,導致頁面看起來非常卡頓。

?

而Virtual DOM則是虛擬DOM的英文,簡單來說,他就是一種可以預先通過JavaScript進行各種計算,把最終的DOM操作計算出來并優化,由于這個DOM操作屬于預處理操作,并沒有真實的操作DOM,所以叫做虛擬DOM。最后在計算完畢才真正將DOM操作提交,將DOM操作變化反映到DOM樹上。

?

對于vue.js的Virtual DOM,目前業界有著褒貶不一的評價。有人認為Vue.js作為一個輕量級框架,引入Virtual DOM會加大Vue.js本身的代碼尺寸,也會消耗更多CPU(手機上會更耗電)(注意:消耗更多的CPU并不意味著會更卡,因為JavaScript計算是后臺計算,他的計算量還不至于讓DOM操作變得卡頓),并且在操作單個DOM元素的時候,反而多了一道計算工序,會更慢。但也有人認為基本上會用Vue.js開發的都是頁面中內容很多的元素,肯定操作的DOM量級普遍較大,平均一下還是比較劃算的。

?

9.我到底該怎么用Vue.js做單頁應用開發?

?

說了這么多,我還是不知道怎么用它做出一個像知乎那樣的頁面啊,到底怎么學它呢?

?

前面我們看了一個響應式的數據綁定案例,那只是一個DEMO,而且也看不出有什么實際意義,離真正的單頁應用程序還差得遠,到底怎么用它開發真實的項目呢?

?

我的建議是,先把介紹 - vue.js官方文檔的基礎部分硬著頭皮看一遍。除了組件這個小節涉及到了很多晦澀難懂的名詞以外,前面幾章完全就是把Vue.js當作一個模版引擎來用。

?

然后開始學習ECMAScript6,Webpack,NPM以及Vue-Cli的基本用法,最好對Node.js也要有所了解。

?

最后組件部分先大致看一遍,了解組件里面都有哪些概念之后,開始看網上各種實戰視頻以及文章還有別人開源的源代碼。

?

10.在前面你提到過好幾次ECMAScript,這是啥?

?

ECMAScript聽名字好像和JavaScript很像,難不成他們有什么千絲萬縷的聯系?

?

沒錯你猜對了,他們之間還真有著很深的聯系。

?

引用阮一峰老師的話:(ECMAScript 6入門)

?

要講清楚這個問題,需要回顧歷史。1996年11月,JavaScript 的創造者 Netscape 公司,決定將 JavaScript 提交給國際標準化組織ECMA,希望這種語言能夠成為國際標準。次年,ECMA 發布262號標準文件(ECMA-262)的第一版,規定了瀏覽器腳本語言的標準,并將這種語言稱為 ECMAScript,這個版本就是1.0版。

?

該標準從一開始就是針對 JavaScript 語言制定的,但是之所以不叫 JavaScript,有兩個原因。一是商標,Java 是 Sun 公司的商標,根據授權協議,只有 Netscape 公司可以合法地使用 JavaScript 這個名字,且 JavaScript 本身也已經被 Netscape 公司注冊為商標。二是想體現這門語言的制定者是 ECMA,不是 Netscape,這樣有利于保證這門語言的開放性和中立性。

?

因此,ECMAScript 和 JavaScript 的關系是,前者是后者的規格,后者是前者的一種實現(另外的 ECMAScript 方言還有 Jscript 和 ActionScript)。日常場合,這兩個詞是可以互換的。

?

而ECMAScript6就是新一代的JavaScript語言。

?

這里也強烈推薦大家學習ECMAScript6的時候參考這本書ECMAScript 6入門

?

11.我在學習Vue.js的時候老是聽到Webpack,這是啥?

?

Webpack是一個前端打包和構建工具。如果你之前一直是手寫HTML,CSS,JavaScript,并且通過link標簽將CSS引入你的HTML文件,以及通過Script標簽的src屬性引入外部的JS腳本,那么你肯定會對這個工具感到陌生。不要緊,我們先來了解一下為什么要用Webpack,然后帶著原因去學習就好了。

?

12.為什么要用Webpack

?

前面說了,做一個單頁應用程序本身就相當復雜,而且在做的時候肯定會使用到很多素材和別的第三方庫,我們該如何去管理這些東西呢?

?

還有前面講到了Webpack是一個前端打包工具,前端代碼為什么要打包呢?因為單頁應用程序中用到很多素材,如果每一個素材都通過在HTML中以src屬性或者link來引入,那么請求一個頁面的時候,可能瀏覽器就要發起十多次請求,往往請求的這些資源都是一些腳本代碼或者很小的圖片,這些資源本身才幾k,下載連1秒都不需要,但是由于HTTP是應用層協議,它的下層是TCP這個運輸層協議,TCP的握手和揮手過程消耗的時間可能比下載資源本身還要長,所以需要把這些小文件全部打包成一個文件,這樣只要一次TCP握手和揮手的過程,就把多個資源給下載下來了,并且多個資源由于都是共享一個HTTP請求,所以head等部分也是共享的,相當于形成了規模效應,讓網頁展現更快,用戶體驗更好。

?

前面說到Webpack還有構建的功能,這就不得不提到了ECMAScript6這個新版本的JavaScript,但是現在國內外還有很多人用著老版本的瀏覽器,這些瀏覽器并不支持ECMAScript6,那么我們的前端項目如何在這種瀏覽器上運行呢?這就需要Webpack的Loader自動載入一個轉換器來將我們寫的ECMAScript6轉換成瀏覽器能支持的老版本JavaScript語言,這個轉換器的名字叫做babel,如果你以后聽到或者看到了這個單詞,應該要知道它就是一個ECMAScript6 to 老版本JavaScript的轉換器了。這也是Webpack的構建功能。當然對前端有更深入的同學還會知道Sass,Less,stylus之類的CSS預處理器,我們也可以通過在Loader中編寫特定的規則來實現自動將這些CSS預處理語言轉換成普通瀏覽器能識別的CSS代碼。

?

開頭的介紹提到了vue.js可以使用單文件組件開發項目,其實也是通過Webpack將單文件組件中的模版,樣式以及JS轉換到主頁面中

?

當然Webpack不止這點功能,它還可以通過安裝各種插件來擴展,比如說熱加載技術,就是解放鍵盤的F5鍵。讓我們修改代碼,并且按Ctrl+S保存之后,瀏覽器頁面自動刷新變化,不需要我們去手動刷新,還有一些插件可以自動添加注釋,自動給CSS代碼加上一些瀏覽器內核對CSS3兼容前綴,就像webkit-xxx之類的一樣。

?

13.NPM和Node.js又是什么?它們是什么關系?

?

首先講講Node.js。我們知道通常情況下,JavaScript的運行環境都是瀏覽器,因此JavaScript的能力也就局限于瀏覽器能賦予它的權限了。比如說讀寫本地系統文件這種操作,一般情況下運行在瀏覽器中的JavaScript代碼是沒有這個操作權限的。如果我們想用JavaScript寫出一些能夠運行在操作系統上的,能夠具有像PHP,JAVA之類的編程語言具有的功能的程序該怎么辦呢?Node.js就解決了這個問題。Node.js是一個服務端的JavaScript運行環境,通過Node.js可以實現用JavaScript寫獨立程序。像我們之前提到的Webpack就是Node.js寫的,所以作為一個前端開發,即使你不用Node.js寫獨立程序,也得配一個Node.js運行環境,畢竟很多前端工具都是使用它寫的。

?

NPM是一個node.js的包管理器。我們在傳統開發的時候,JQuery.js大多都是百度搜索,然后去官網下載,或者直接引入CDN資源,這種方法太過于麻煩。如果以后遇到其他的包,這個包的代碼本身可能還調用了其他的包(也稱這個包和其他的那幾個包存在依賴關系),那么我們要在自己的項目中引入一個包將變得十分困難。現在我們有了NPM這個包管理器,直接可以通過

?

npm install xxx包名稱

?

的方式引入它,比如說

?

npm install vue

?

就自動在當前項目文件夾下導入了這個包,并且npm自動下載好了vue這個包依賴的其他包。

?

至于有的人在按照網上的npm教程配置的時候踩坑了,發現下載速度很慢或者完全下載不了,那是因為我國有著眾所周知的原因,網上也有各種解決方法可以解決這個問題,大家多善用搜索引擎。

?

前面提到了Webpack可以安裝各種插件來擴展功能,其實也是通過這種方式擴展。

?

如果你學過PHP的話,NPM就和PHP里面的Composer差不多。也和CentOS下的yum和Ubuntu下的apt-get差不多。

?

14.Vue-CLi又是啥?

?

它是一個vue.js的腳手架工具。說白了就是一個自動幫你生成好項目目錄,配置好Webpack,以及各種依賴包的工具,它可以通過

?

npm install vue-cli -g

?

的方式安裝,后面的-g表示全局安裝的意思,意味著你可以打開命令行之后直接通過vue命令調用它。

?

15.我該不該學Vue.js?

?

現在Vue.js無論是發展勢頭還是作者支持還是很好的,而且它本身中文資料就比較多,教程也很多,現在隨隨便便打開幾個和前端開發有關的知乎專欄,基本上都能見到相關文章,社區也很活躍。

?

至于你該不該學,取決于你自己,如果你當前只是做做以內容展示為主的項目,或者就是成天用各種CMS建站仿站,并且以后都不打算更換更好的工作,那么可以暫時不用學。如果你開發的項目交互非常多,而且前后端開發都對前后端分離有很清楚的認識,那么可以大膽的學習,并且在實際項目中運用。

?

16.Vue.js怎么火起來的?

?

關于這個問題,網上說法很多,我自己認為主要還是前些年大前端變革太快,而最近一年開始Vue.js+Webpack這個組合開始逐漸穩定下來了,而且已經有了很多中文資料。

?

對比它的競爭對手AngularJS,新舊版本項目無法平滑升級,變革太大讓用戶感覺不安穩。

?

而React本身主流推薦用的是JSX,需要額外學習一門語法(什么?學Vue.js還要學ECMAScript6?現在ECMAScript6是趨勢,并不是因為Vue.js才要學的),并且React本身用的是render寫法編寫模版代碼,這讓很多用習慣了Smarty等后端模版引擎得人來使用感覺很不適應,現在看來React本身在中國一些論壇社區的火爆程度還是沒有Vue.js高。

?

當然也并不是說除了Vue.js以外其他框架都很差。像知乎新版也是用React開發的,他還是有各自優秀的地方大家可以深入學習之后做出自己的判斷。

?

17.我在很多地方還看到Vuex和Vue-route,它們又是什么?

?

Vuex是vue的一個狀態管理器。用于集中管理一個單頁應用程序中的各種狀態。

?

Vue-route是vue的一個前端路由器,這個路由器不是我們上網用的路由器,而是一個管理請求入口和頁面映射關系的東西。它可以實現對頁面局部進行無刷新的替換,讓用戶感覺就像切換到了網頁一樣。

?

要講清楚這兩個東西,又得花費大量篇幅,所以這里只是簡單提一下,先學好vue.js本身才是最重要的。

?

18.我還在一些地方看到過Vue-resource和Axios,它們又是什么?

?

我們在傳統的前后端不分離的開發中,后端直接把數據通過模版引擎拼接進了返回的HTML中。而現在做單頁應用程序屬于前后端分離開發,那么這個單頁應用程序中的數據就得通過ajax的方式獲取,也要通過ajax的方式提交到后端。

?

在傳統開發中我們都是通過xmlhttprequest手動操作,或者通過JQuery的ajax方法來進行數據提交獲取。

?

vue.js本身沒有封裝ajax操作庫,所以我們要通過Vue-resource和Axios來進行ajax操作,而因為種種原因,現在vue.js2.0已經將axios作為官方推薦的ajax庫了。

?

19.寫Vue.js用什么開發工具和電腦呢?

?

前端開發基本上不需要太高端的電腦都能勝任,現在這個時代是臺電腦,裝個編輯器都可以做前端開發的。

?

Vue.js的組件文件本質上還是普通的代碼文件,所以各種編輯器配合一些語法檢查插件就足夠了。我自己用的是sublime text 3,安裝一些插件之后可以實現.vue單文件組件高亮代碼以及各種自動完成。Webstorm中也有類似插件,大家可以在網上各種教學文章的指導下配置好環境。

?

我用的主題是Monokai,這個主題在大部分顯示器下長時間觀看眼睛不會很疼。我使用的顯示器是LG IPS236,部分顯示器有亮度色標調節,我這款顯示器調到2.0左右會比較舒適,過低會導致底部的茶色背景變黑,反差較大更加疲勞,過高會導致對比度不足,畫面泛白影響調色。

?

結束語:

?

可能包括我在內的很多人在看到Vue.js那神奇的雙向綁定優雅寫法都會有一種非常驚艷,而看到中文文檔發布之后有種想立馬學習的沖動。可惜大前端終究是大前端,如果一個對于前端各個方面沒有深入認識就想著能一步登天,肯定對不起大前端的“大”字。原本看著只想學一個Vue.js,沒想到順帶把ECMAScript6,Webpack配置,ESLint配置,bable配置,npm使用,node.js語法,以后vue全家桶中的vuex,vue-route等等等等都學了一遍。前段時間網上也流傳出了一個職位叫做Webpack配置工程師,從這里也可以看出弄懂前端這個大雜燴確實不是那么容易。大家一起加油,有什么問題也可以在評論區回復,我會抽空補充在文章內容中。謝謝各位的支持!~

?


?

github文章資源地址:我們為什么要用vue,他解決了什么問題,如何使用它?

?

我的個人博客:http://xiaolongwu.cn

?

如果您對我的博客內容有疑惑或質疑的地方,請在下方評論區留言,或郵件給我,共同學習進步。

?

郵箱:wuxiaolong802@163.com


---------------------
作者:LeonWuV
來源:CSDN
原文:https://blog.csdn.net/wxl1555/article/details/79964818
版權聲明:本文為作者原創文章,轉載請附上博文鏈接!
內容解析By:CSDN,CNBLOG博客文章一鍵轉載插件

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/285296.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/285296.shtml
英文地址,請注明出處:http://en.pswp.cn/news/285296.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

java反射機制續

http://www.cnblogs.com/fingerboy/p/5325261.html轉載于:https://www.cnblogs.com/yangmin-78819/p/5328869.html

測量人看過來:多種語言編寫的測量坐標反算神器附源碼(C#/VB)

坐標正算:【小程序】坐標正算神器V1.0(附源程序) 坐標反算一直是困擾測量人的一個問題,坐標反算是指已知兩點坐標,反求邊長和方位角。本文演示用C#和VB語言實現過程。 文章目錄 一、坐標反算原理1. 原理圖2. 計算公式3. 象限角4. 限角和坐標方位角的關系二、C#語言實現1. …

如何獲取GC(垃圾回收器)的STW(暫停)時間?

前言在現代的容器化和微服務應用中&#xff0c;因為分布式的環境和錯綜復雜的調用關系&#xff0c;APM&#xff08;Application Performance Monitoring 應用性能監控&#xff09;顯得尤為重要&#xff0c;它通過采集應用程序各種指標和請求鏈路&#xff0c;讓你知道系統當前的…

C語言試題136之打印出楊輝三角形(要求打印出 10 行如下圖)

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:打印出楊輝三角形(要求打印…

C#控件綁定數據源方式

1:控件數據源綁定泛型Dictionary<string,string> 1):Dictionart<string,string> Dnew Dictionary(string,string);xxx.DataSourcenew BindingList<string>(D.values.ToList());2):Dictionary<string, string> D new Dictionary<string,string>;…

【ArcGIS風暴】ArcGIS矢量數據分層設色后導出或裁剪后顏色分類丟失完美解決辦法

在利用ArcGIS做土地利用現狀圖或者規劃圖時,事先費了好大勁把每個地類對應的圖斑進行了符號化(用不同的顏色表示),后來把符號化好的數據導出,并進行加載,發現顏色分類完全丟失了,同樣,在利用某個重點區域范圍裁剪后,顏色變成了單一的顏色。 符號化成果: 導出后加載矢…

如何使用Cmder替換cmd

一、cmder介紹 cmder是一款Windows環境下非常簡潔美觀易用的cmd替代者&#xff0c;它支持了大部分的Linux命令。支持ssh連接linux&#xff0c;使用起來非常方便。比起cmd、powershell、conEmu&#xff0c;其界面美觀簡潔&#xff0c;功能強大。 二、下載地址 地址&#xff1a…

C語言試題137之畫點

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:利用putpixel 畫點。 2 、溫…

7z壓縮文檔的powershell示例

首先要安裝7-Zip到c:\Program Files\7-Zip&#xff1b; 示例如下&#xff1a; 1234567891011121314151617181920212223242526272829303132#define Function DeleteLogfunction DeleteLog{ param($filePath,$TimeOutDays) $allFilesget-childitem -path $filePath …

Delphi WinExec ShellExec 用法介紹

2019獨角獸企業重金招聘Python工程師標準>>> Delphi WinExec ShellExec 用法介紹 在Windows程序設計中WinAPI也為我們提供了類似的函數&#xff0c;它們就是WinExec()和ShellExecute()&#xff0c;下面就來討論一下這兩個函數的用法。 1)WinExec() 函數原型&#x…

各大主流編程語言性能PK,結果出乎意料

出品 | OSC開源社區&#xff08;ID&#xff1a;oschina2013&#xff09;“什么編程語言速度最快”&#xff0c;為了回答這個問題&#xff0c;The Benchmarks Game 專門面向主流編程語言設計了性能測試。測試的項目包括&#xff08;可點擊文末閱讀原文查看詳情&#xff09;&…

閉包 —JavaScript面向對象高級

# 閉包 # 我的理解&#xff1a;面試時&#xff0c;先說作用域鏈&#xff0c;再說閉包產生的原因&#xff0c;然后是垃圾回收GC&#xff0c;最后說閉包。 a.一個函數內部聲明的變量&#xff0c;就是它的私有變量. b.在javascript中特性中&#xff0c;函數是可以訪…

【MapBox】5種地圖(底圖)樣式自由切換附源碼

文章目錄 一、不同地圖顯示樣式1. 衛星2. 淺色3. 深色4. 街道5. 戶外二、完整源碼一、不同地圖顯示樣式 MapBox提供了5種不同形式的地圖顯示樣式: 1. 衛星 2. 淺色

[轉]vue項目中,main.js,App.vue,index.html如何調用

1、main.js是我們的入口文件&#xff0c;主要作用是初始化vue實例&#xff0c;并引入所需要的插件 2、App.vue是我們的主組件&#xff0c;所有頁面都是在App.vue下進行切換的。其實你也可以理解為所有的路由也是App.vue的子組件。所以我將router標示為App.vue的子組件。 index…

C語言試題138之畫橢圓

??個人主頁:個人主頁 ??系列專欄:C語言試題200例 ??推薦一款模擬面試、刷題神器?? 點擊跳轉進入網站 ?作者簡介:大家好,我是碼莎拉蒂,CSDN博客專家(全站排名Top 50),阿里云博客專家、51CTO博客專家、華為云享專家 1、題目 題目:畫橢圓 ellipse 2 、溫馨提示…

2016年Web前端面試題

2016年Web前端面試題目匯總 以下是收集一些面試中經常會遇到的經典面試題以及自己面試過程中無法解決的問題&#xff0c;通過對知識的整理以及經驗的總結&#xff0c;重新鞏固自身的前端基礎知識&#xff0c;如有錯誤或更好的答案&#xff0c;歡迎指正。:&#xff09; 閱讀目錄…

光纖熔接過程詳細說明

在我們實際的網絡工作當中會遇到光纖的熔接&#xff0c;由于目前光纖熔接的工藝已經成熟完善&#xff0c;對于一根六芯光纖整個熔接過程需要2名工程師&#xff0c;大約需要花費1個小時的時間就可以完成。我們首先考慮的是為光纖線纜留出足夠的長度來&#xff0c;多了好辦&#…

Playwright之錄制

前言前段時間看了大佬分享的關于Playwright.NET的文章感覺挺有意思&#xff0c;想要閱讀點擊&#xff1a;此處&#xff0c;然后跟隨大佬的腳步&#xff0c;學習了一點自動化玩&#xff0c;其中有一個錄制功能感覺挺好玩&#xff0c;下面就來簡單看看介紹手動操作瀏覽器&#xf…

【MapBox】在地圖上創建多個Marker點,設置鼠標經過提示信息,單擊跳轉到鏈接

本文講述在MapBox地圖上創建多個Point點,然后設置鼠標經過每個點提示信息,再讓每個點鼠標點擊跳轉到指定的不同的鏈接地址。 任務描述: 顯示MapBox地圖添加Marker設置鼠標經過提示設置Marker單擊鏈接效果展示: 點擊Marker跳轉到指定的鏈接地址。 源碼贈送: <!DOCTYPE …

Timequest的波形窗口調出

在使用TIMEQUEST做時序約束的時候,波形是很直觀的一個界面,但是在操作的時候順手向下一拉,波形窗口就不見了, 再report timing的時候就這樣了,只有summary,沒有波形窗口了. 找了半天的的view等等菜單沒找到怎么打開,最后將鼠標放在下圖位置他又出現了 出現上下拉的標簽向上拉就…