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