Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537 Warning: error_log(/data/www/wwwroot/hmttv.cn/caches/error_log.php): failed to open stream: Permission denied in /data/www/wwwroot/hmttv.cn/phpcms/libs/functions/global.func.php on line 537
著vue.js的發展,一些基于vue.js的框架如雨后春筍般出現在開發者面前(例如:Element-ui、Mint-ui)。但是,無論哪一種框架都不可能完全滿足項目需求,有時需要開發者自己編寫自定義組件。那怎樣編寫自定義組件呢?今天,老K為大家分享一下自己常用的方法。
按鈕是經常使用的組件之一。Element-ui中的按鈕組件說明,如下圖:
今天,我們就拿這個按鈕組件為例為大家編寫一個自己的按鈕組件。
前期準備:node.js開發環境,npm包管理器或者cnpm包管理器(推薦cnpm,速度快)。
首先,打開命令行窗口,用腳手架工具vue-cli搭建一個vue2.0開發環境。我們選擇搭建一個webpack-simple并放到custom-global-component目錄里。如下圖:
按步驟依次完成環境搭建。然后進入custom-global-component文件里,輸入命令cnpm init完成依賴包的安裝,然后輸入命令npm run dev,啟動測試環境。如下圖:
如果一切順利,會出現vue.js經典的歡迎頁。如下圖:
然后進入custom-global-component/src目錄里,打開App.vue,為了便于測試,將多余代碼刪掉。如下圖:
代碼刪掉后,寫上本次的主題名稱。如下圖:
測試頁面同時會自動更新,如下圖:
在custom-global-component/src目錄里,新建components目錄,用來放組件文件。如下圖:
進入components目錄,新建button目錄。這就是我們今天做的button組件的所在位置。如下圖:
進入button目錄里,新建入口文件index.js、組件文件Button.vue,如下圖:
打開Button.vue,為了是我們的組件具有良好的可擴展性,我們采用vue.js的render方法創建組件模板。如下圖:
組件標簽名為“<g-button>”,轉譯的html標簽名為“<button>”,默認具有的樣式class名為“g-button”。
進入入口文件index.js,引入button組件模板,生成名為“g-button”的vue組件并輸出。如下圖:
這樣一個普通的button組件就完成了。
現在,我們回到src目錄下,嘗試一下我們新編寫的組件。打開main.js和App.vue文件,引入并使用這個組件,如下圖:
main.js
App.vue
預覽結果:
這樣,一個可以復用的初級按鈕組件就完成了。上述代碼我已提交到github,歡迎參考!
代碼地址:
https://github.com/gaofei019/vue2.0-custom-global-component.git
當然,這個組件遠沒有達到完美,擴展性還不夠強大。在下篇中,老K還會為大家繼續完善這個按鈕組件,敬請期待...
本文為原創內容,若轉載請注明出處,轉發感激不盡。
最近,微軟宣布了一項舉世矚目的提案,表示他們將支持 JavaScript 和 TypeScript 的進一步開發,該提案幾乎在一夜之間動搖了編程語言的基礎。
截止到目前為止,該提案還只是一個處于 Stage 0 階段的建議,但微軟宣布他們會按時將該提案提交給 TC39 委員會。如果這個提案被采納并付諸實施,那么必將在 JavaScript 和 TypeScript 界引發前所未有的動蕩。
JavaScript 的歷史回顧
回溯 20 年前,與現在的 Web 開發做比較,你就會發現,雖然 JavaScript 作為一種編程語言已經有了很大的發展,但圍繞 JavaScript 的生態系統則取得了更大的進步。
語言本身與生態系統的發展是相輔相成的,一方面在過去的二十年里 JavaScript 社區變得越來越專業,而另一方面互聯網本身在現實生活中的重要性也變得越來越突出。作為開發人員,我們無法控制用戶使用哪些瀏覽器。
這意味著用戶只有定期更新瀏覽器才能使用 JavaScript 的現代功能。雖然對于個人用戶來說,定期更新并不是難事,因為如今許多瀏覽器會自動更新而無需用戶的指示,但對于企業卻并非如此。
各個公司對于軟件和軟件更新有著嚴格的規定。許多公司都會使用過時的軟件或瀏覽器上網。這是一個基本問題,甚至會影響到 HTML 和 CSS,此外,由于編程語言必須由各個瀏覽器解釋,因此也會對瀏覽器產生嚴重的依賴。
原文鏈接:https://betterprogramming.pub/how-microsoft-wants-to-destroy-typescript-1f1a53b18de6
END
《新程序員001-004》全面上市,對話世界級大師,報道中國IT行業創新創造
成就一億技術人
SX語法的特點是將HTML語言直接混寫嵌入JavaScript語言中,而不需要加任何引號。下面來看看對比。不使用JSX的例子:
使用JSX的例子:
JSX語法轉譯器會識別嵌入JavaScript代碼中的HTML標簽,當遇到“<”標識符就會啟動JSX轉譯過程,遇到“{”標識符就會當作JavaScript代碼進行處理,元素的標簽、屬性和子元素都會被當作參數傳給React.createElement函數。使用JSX語法的代碼: var app=<HelloComp color="blue" />;
使用原生JavaScript的等價代碼:var app=React.createElement(HelloComp, {color:"blue"});
JSX支持使用JavaScript求值表達式作為屬性值,從而達到類似模板的效果。JSX中的表達式用一對大括號{}包起來。求值表達式是要求有返回值的表達式,其原理類似于JSP中的<%=...%>。求值表達式本身與JSX沒有直接關系,只是JS的特性。求值表達式與語句有所不同,在編寫JSX時,在{}中不能使用語句(如if語句、for語句等),但可以把語句放在函數中,再在求值表達式中調用該函數。盡管在{}中不能使用if-else語句,但可以采用三元操作表達式。如:
也可以使用二元運算符“||”來書寫,如果左邊的值為真,則直接返回左邊的值,否則返回右邊的值,與if語句的效果相同。
當三元操作表達式不能滿足需要時,可以在JSX標簽外使用if語句來決定應該渲染哪個組件。如:
也可以使用變量來書寫:
或者把變量去掉,直接在{}中調用函數
render: function() {
return <div>Hello {this.getName()}</div>;
}
如果{}中包含的變量是一個數組,則會自動展開數組的所有成員,代碼如下:
*請認真填寫需求信息,我們會在24小時內與您取得聯系。