eact-start
基礎知識
1.使用腳手架創建項目并啟動
? 1.1 安裝腳手架:
npm install -g create-react-app
? 1.2 使用腳手架創建項目:
create-react-app antd-start-demo antd-start-demo為項目名。
? 1.3 啟動
npm start
2.npm轉換為yarn
? 2.1 安裝yarn:
npm install -g yarn
? 2.2 獲取yarn當前的鏡像源:
yarn config get registry
? 2.3 設置為淘寶鏡像:
yarn config set registry 'https://registry.npm.taobao.org'
? 2.4 常用命令:
yarn init --初始化 yarn add --添加模塊 yarn remove --刪除模塊 yarn /yarn install --安裝項目中的依賴
項目搭建
2.1 安裝react-router 4.0、axios、less-loader
yarn add react-router-dom axios less-loader
2.2 暴漏webpack配置
yarn eject
webpack配置
2.3 配置less-loader
? antd是基于less開發的,我們使用less可以方便的改變主題色等配置。
? 安裝less模塊:yarn add less@2.7.3
? 打開config/webpack.config.dev.js添加如下配置:
{ test: /\.less$/, use: [ require.resolve('style-loader'), { loader: require.resolve('css-loader'), options: { importLoaders: 1 }, }, { // Options for PostCSS as we reference these options twice // Adds vendor prefixing based on your specified browser support in // package.json loader: require.resolve('postcss-loader'), options: { // Necessary for external CSS imports to work // https://github.com/facebook/create-react-app/issues/2677 ident: 'postcss', plugins: () => [ require('postcss-flexbugs-fixes'), require('postcss-preset-env')({ autoprefixer: { flexbox: 'no-2009', }, stage: 3, }), ], }, }, { loader: require.resolve('less-loader') } ], },
到配置cssload同級如圖所示
圖片示例
注意:在webpack.config.dev.js添加的配置部分,也需要在webpack.config.prod.js中做相同的配置。否則可能導致項目發布上線后,報錯無法執行。
2.4 安裝antd
yarn add antd
2.5 測試使用
import { Button } from "antd"; import 'antd/dist/antd.css'; ... render() { return ( <div> <Button>click</Button> </div> ); } ...
注意:默認情況下安裝的antd需要引入antd/dist/antd.css才會生效樣式,但很多時候,我們只是使用了部分組件,引入整個antd樣式文件,有些得不償失。所以按需加載應運而生。
2.6 antd按需加載
1.添加babel-plugin-import,
yarn add babel-plugin-import
2.打開webpack配置,搜索:JS with Babel
找到如下配置:
// Process application JS with Babel. // The preset includes JSX, Flow, TypeScript and some ESnext features. { test: /\.(js|mjs|jsx|ts|tsx)$/, include: paths.appSrc, loader: require.resolve('babel-loader'), options: { customize: require.resolve( 'babel-preset-react-app/webpack-overrides' ), plugins: [ [ require.resolve('babel-plugin-named-asset-import'), { loaderMap: { svg: { ReactComponent: '@svgr/webpack?-prettier,-svgo![path]', }, }, }, ], ], cacheDirectory: true, // Save disk space when time isn't as important cacheCompression: true, compact: true, }, },
進行修改plugin下添加:
["import", { "libraryName": "antd", "style": true }]
至此可以取消引入css文件了,babel會自動根據引入的組件,默認加載對應的css。
2.7修改主題色
{ loader: require.resolve('less-loader'), options: { modules: false, modifyVars: { "@primary-color": "#f9c700" } } }
在webpack,中配置less的地方即可修改。@primary-color為antd內置的less變量,只需要覆蓋掉默認的配置,就實現了修改主題色。
本文GitHub代碼:GitHub地址 歡迎star!
作者博客:做全棧攻城獅
分享交流前后端知識,一起做全棧攻城獅。
antd form 組件的 UI 方式適用于大多數的后臺管理系統,如果對 UI 要求不是特別苛刻,完全開箱即用。
可能由于剛上手此組件庫,或者對其中細節不熟悉,會使得實現表單效果有些磕磕碰碰,這里示例三種常見的業務場景,希望對新手能有所幫助。
柵格布局應該是 bootstrap 開始帶來的概念,對于復雜頁面布局這似乎是一種萬金油方式。
form 組件中的 <a-form-item> 支持柵格布局,使我們能自由的控制表單項的 label 和 輸入框長度比例。
下面,是設置3列 label 和 5列 input 的例子:
通過 label-col 和 wrapper-col 可以很方便的設置長度:
可能某單個表單項的 label 不需要設置,這樣會導致布局錯亂。
下面,紅框是預期展示效果(由于不含 label,會導致表單項往左偏移):
因為 label 不存在,所以 label-col 不會生效。利用 grid 規則,在 wrapper-col 額外再設置 offset 偏移原先 label-col 的數值即可。
input、select 之類 antd 的表單組件默認寬度 100%,當單行內如果有多個這樣的組件,最終會上下依次排列。
如果像省市區這樣需求,從左至右單行排列會更加友好,但需要修改對應的寬度 width。
同樣我們可以使用 grid 柵格布局 + flex 布局,讓整個邏輯控制在 html 層,而非增加額外的 css 代碼。
下面,紅框是預期展示效果:
上面這些只是簡單展示我目前遇到的三種場景,對于熟悉 form 組件的同學來說,這些完全基于該組件提供的 props 實現的效果。不過希望能對剛用 antd 的新手有個幫助。
本文使用 mdnice 排版
來來源于《現代通信》雜志微信公眾號CQ現代通信。
端午節威諾VR6600PRO團購活動進行中,馬上查看!
http://weidian.com/item.html?itemID=1873367516
近年來SDR(Software Definition Radio,軟件定義無線電)之風吹到了HAM界,一時之間各種SDR設備層出不窮,有專門設計制造的,也有愛好者DIY的,甚至幾十元一支的電視棒也可以成為一個SDR接收機,追玩SDR一時成為時尚。但是,目前大多都是作為接收機的形式出現,有收發功能齊全的SDR機器較為少見,特別是大功率的SDR收發信機。這次就嘗鮮了一下FlexRadio Systems FLEX-6500這款100W HF/6m波段SDR收發信機。
這臺FLEX-6500機器的本體并不是很大,與一般基地型HF電臺大小差不多,重量也比主流的HF收發信機要輕很多,不足6公斤。
機體是一個黑色的金屬機殼。機殼的正面有一個小屏幕、幾個小按鈕和3個話筒、耳機、電鍵插座,機箱兩個側面是2個三寸的大風扇孔,后面則是一堆連接插座。粗看有幾分像是個音響播放機的感覺。
機箱后面
【微信公眾號CQ現代通信】本次試用的FLEX-6500屬于是FLEX-6000系列機型之中的中檔機,其上是具有雙接收單元的高端型號FLEX-6700,下有低端的FLEX-6300。另外,還配有一個漂亮的觸摸屏操作控制臺可選件。
FLEX-6500采用的是16Bit的ADC,其采樣速率是245Msps,采樣帶寬達77MHz,而且在模數轉換之前還有高性能的預選器(較傳統帶通濾波器高檔)和前置放大器等信號預處理電路,性能完全不是坊間的8Bit或10Bit的SDR所能及的,經過實際試用,機器的整體性能可以用驚異來形容。
然而這個黑色的機器只是一個軀殼,這個機器的靈魂其實是安裝于PC電腦中的名為“SmartSDR”的軟件平臺。機器通過一條LAN網線與PC電腦相連,也可通過網絡交換接入計算機局域網使用,運行SmartSDR軟件之后機器才能工作。還有比較郁悶的是機器本身并沒有安裝揚聲器,而需要外接揚聲器或者耳機才能聽到聲音。估計有不少初次使用這款機器的人,或者會以為機器的聲音是從電腦揚聲器中發出的而折騰一番,因此,為了能夠在第一次能夠愉快地使用設備,建議先準備好一個帶有功放的電腦音箱。
最初是把SmartSDR軟件安裝在一臺Win XP操作系統的臺式機上,誰知安裝完了之后出現一大堆的出錯提示。
Win XP系統下安裝出現錯誤提示
【微信公眾號CQ現代通信】情急之下,把SmartSDR軟件安裝于另一臺Win7操作系統的筆記本電腦上,終于就順利工作起來了,經查看使用手冊,原來SmartSDR軟件需要依賴微軟的.net framewrok 4.0運行,需要提前安裝。
軟件的界面與HD SDR等SDR操作軟件差不多,因而很容易上手。軟件的控制反應很快,點擊控制和設置,機器馬上就有所變化。
在屏幕的左邊是頻譜圖和瀑布圖,可以通過設置,在屏幕上顯示上下多欄的頻譜圖和瀑布圖,如下圖所示包括四個頻譜窗口,監聽四個信號。
頻譜圖和瀑布圖
【微信公眾號CQ現代通信】頻譜圖和瀑布圖最大顯示寬度為14MHz,而且可以隨時調整頻譜圖和瀑布圖顯示的帶寬和中心位置。
頻譜圖的縱坐標電平值也可以隨時調整,以適合的幅度顯示信號的大小。頻譜圖中用圖形顯示收發頻率以及接收帶寬范圍等參數。在頻譜圖中有所謂的“切片接收機”的顯示欄,在欄中顯示和控制接收機的幾乎所有的功能參數。
界面的右邊是幾套控制和顯示板。他們分別是:發射功率和天線調諧器控制板、CW發射控制板、話音發射控制板、語音模式控制板、接收控制板以及均衡器控制板。這幾個控制板可以同時顯示和操作,也可以隱藏起來。
在試用之中感覺這個SmartSDR軟件的功能十分強大,可以滿足各種刁鉆的操作設置要求,而且軟件運行流暢,占用CPU很小。但是在應用中感覺界面有些擠迫,各欄之間沒有根據屏幕自動適應調整的功能,導致有些欄會跑出顯示屏邊界之外,經了解,在英文版的Windows操作系統下,界面偏移會不存在。
因為是采用PC機軟件控制的緣故,完全沒有傳統收發信機的那種操控感覺,代之而像操作電腦一樣,通過菜單和點擊屏幕上的按鈕進行各種的調整和操控,鼠標的左右鍵和滾輪都派上了用場,初次使用可能需要一段時間慢慢適應。
如果嫌操縱感覺不夠,還可以配上大波輪操控器選件。大波輪操控器還可以在SmartSDR軟件的程序菜單中按照自己的喜好自定義好大波輪操控器中各按鈕和大波輪旋鈕的操作功能定義,使用起來就操作感十足了。
大波輪操控器選件
【微信公眾號CQ現代通信】我初次使用這個大波輪操控器時還鬧了笑話,以為是將它插到FLEX-6500機器的USB口上用的,經過試驗之后才知道是應該插在電腦的USB口上的。
如果用觸摸屏電腦操控起來的感覺不知道如何?
FLEX-6000系列機器如果采用最新的選件——帶彩色液晶顯示屏的操作控制臺,估計就不需用PC電腦,操控起來就十足是一臺傳統小型收發信機的感覺了。
開機操作
【微信公眾號CQ現代通信】經過實際測試,FLEX-6500的工作頻率范圍是0.03~74MHz(FLEX-6700是0.03~77MHz、135~175MHz),機器有一個接收通道(FLEX-6700有2個獨立接收通道),在軟件中能夠創建4個全功能的獨立接收機(切片接收機)同時工作(FLEX-6700有8個切片接收機),每個切片接收機可以執行獨立的功能和參數設置,例如頻率、模式、帶寬和DSP設置等等,還可以指定聲音的大小甚至輸出所處的聲道位置。如果戴著立體聲耳機,通過調整讓四個切片接收機通道的輸出聲音處于不同的聲像位置,聽起來有種新奇過癮的感覺。
首先,對機器進行靜態測試。其中最感興趣的是機器的靈敏度。令人驚訝的是把信號發生器的輸出一直調到盡頭的-137dBm,機器仍然有輸出!機器的本底噪聲在-140dBm之下,而且各頻段基本沒有什么變化。
在SmartSDR軟件的“ANT”鈕中調整RF輸入的放大或衰減器,其噪聲電平也基本沒有變化,以至于開始測試時曾懷疑調整是否有效。至后來加入信號進行實測后,才證實電路的放大和衰減器是有作用的。在后來接上天線進行實際信號測試時,就可以看到RF輸入的放大或衰減器的明顯作用,特別對于去除低波段的臨鄰近強干擾信號的抑制是非常有效的。
經過測試,各種模式的接收靈敏度基本差不多,通過機器的頻譜和瀑布圖顯示,發現機器在整個工作頻率范圍內的本底噪聲都很均勻,也沒有出現什么寄生信號,因而瀑布圖的顯示都顯得很“干凈”。機器的濾波器及其選擇性性能也很好,通過調整帶寬來分隔信號很準確,顯得干凈利落。在實際接收信號時,機器(軟件)的很多帶寬調整、濾波陷波和降噪等功能對于信號的處理都很給力,效果超出了傳統收發信機的處理結果。如果有時間深入去研究,綜合靈活地運用各種功能之后,估計出來的效果還會更好。
接下來是對機器進行動態測試。由于機器具有預選器可以阻擋波段之外的干擾信號,所以,實際的接收效果比通常的收發信機要好些。下面是機器實際接收效果圖。
一邊聽廣播電臺(上面的頻譜窗口)、一邊監聽15m波段業余電臺信號(下面的頻譜窗口)
一個CW比賽,20m波段密密麻麻的信號,看著頻譜找空閑頻率擺攤不會吹灰之力
比賽中,在40m波段主叫,同時也能看到15m和20m波段的傳播狀況
【微信公眾號CQ現代通信】6m波段開通了,在同一個波段上同時監聽四個信號
總的來說,試用的這臺FLEX-6500接收性能是所用過的SDR機器之中最好的,無論是高波段還是低波段,特別是它超低的本底噪聲、超高的動態范圍和出奇的降噪效果讓我驚異。
最后來測試機器的發射性能,FLEX-6500的標稱發射功率是100W,與實際標稱相符。
測試發射性能
各波段的發射功率比較平均,機器可以通過SmartSDR軟件界面輕松地調整各波段的發射功率,SmartSDR軟件會分別記住各波段的發射功率,而且可以分別設定正式使用和調諧時的發射功率。FLEX-6500內置有自動天線調諧器,在160m波段至6m波段范圍內工作。但是試用時感覺初次調整需要的時間比較長。
通過SmartSDR軟件還可以對機器的許多發射參數進行細致的調整,例如監聽音量,CW的Sidetone、Speed、Pitch和聲像位置等。
發射和接收都可以分別調整音頻的頻響(采用十段EQ調整)。發射時的音頻處理還有NOR、DX和DX+三擋設置,對DX和DX+的處理方式估計是采用DSP軟件方式以盡量壓縮發射信號的動態范圍,切除發射話音中的高低頻成分,令發射信號的能量更加集中,但是,未知發射信號的實際聽感和效果如何。
【微信公眾號CQ現代通信】機器發射時,電腦屏幕上顯示發射信號的頻譜、入射功率以及SWR,但是,瀑布圖上不會有顯示。對于CW和數字模式的發射,SmartSDR軟件有專門的參數調整板,甚至可以用鍵盤來發信息進行通聯。要是SmartSDR軟件具有CW和數字模式的解碼顯示功能就更好了。從網上了解到的信息,SmartSDR軟件提供了虛擬的數字輸入輸出通道,就是說可以講信號直接傳遞給CW SKIMMER、RTTY等軟件進行解碼了。
機器的整體散熱效果很好,折騰大半天,機殼也還是微暖的狀態。
散熱效果出色
【微信公眾號CQ現代通信】初步試玩了幾天,已經感覺出FLEX-6500 SDR 這臺機器的收發性能超群,SmartSDR軟件的可玩性很高。
如果花點時間去挖掘SmartSDR軟件上的更多功能,再配合互聯網進行遠程控制操縱等,必定會產生更多玩法,令樂趣無窮。
端午節威諾VR6600PRO團購活動進行中,馬上查看!
http://weidian.com/item.html?itemID=1873367516
本文節選自《現代通信》雜志,作者吳國光(BA7IA),轉載請注明出處:《現代通信》雜志訂閱號【CQ現代通信】。
現代通信,中國火腿自己的雜志。
歡迎文筆好或外語好或人緣好的HAM加入CQ《現代通信》特約編輯團隊,讓我們一起服務中國HAM。留言會友臺,點贊留余香
*請認真填寫需求信息,我們會在24小時內與您取得聯系。