時(shí)間:2023-04-21 02:18:02 | 來(lái)源:網(wǎng)站運(yùn)營(yíng)
時(shí)間:2023-04-21 02:18:02 來(lái)源:網(wǎng)站運(yùn)營(yíng)
Ant Design 4.0 正式版來(lái)了!:4.0 rc
版本。經(jīng)過(guò) 1 個(gè)多月的反饋收集和調(diào)整之后,我們終于迎來(lái)了 4.0 的正式版!感謝在此期間每一位提供反饋、建議以及貢獻(xiàn)的人。我們會(huì)結(jié)合 rc
版本已經(jīng)涉及的更新以及一些比較重要的新增內(nèi)容于此進(jìn)行列舉。完整的更新文檔可以點(diǎn)擊此處。v4 文檔地址:https://ant.design3.x-stable
分支并進(jìn)入維護(hù)狀態(tài)。我們?nèi)匀粫?huì)為 v3 版本進(jìn)行半年的維護(hù)工作。維護(hù)截止日期為 2020 年 5 月。4px
調(diào)整為 2px
。中后臺(tái)產(chǎn)品以效率為第一優(yōu)先級(jí),圓角樣式作為 UI 上的重要細(xì)節(jié),更小的圓角從視覺(jué)上減少界面細(xì)節(jié),提升了信息閱讀效率。此外,我們對(duì)陰影進(jìn)行了調(diào)整,使其更符合真實(shí)陰影,也同時(shí)將信息層級(jí)更好體現(xiàn)。antd@3.9.0
中,我們引入了 svg 圖標(biāo)(為何使用 svg 圖標(biāo)?)。使用了字符串命名的圖標(biāo) API 無(wú)法做到按需加載,因而全量引入了 svg 圖標(biāo)文件,這大大增加了打包產(chǎn)物的尺寸。在 4.0 中,我們調(diào)整了圖標(biāo)的使用 API 從而支持 tree shaking,減少 antd 默認(rèn)包體積約 150 KB(Gzipped)。import { Icon, Button } from 'antd';const Demo = () => ( <div> <Icon type="smile" /> <Button icon="smile" /> </div>);
4.0 中會(huì)采用按需引入的方式:import { Button } from 'antd';// tree-shaking supported- import { Icon } from 'antd';+ import { SmileOutlined } from '@ant-design/icons'; const Demo = () => ( <div>- <Icon type="smile" />+ <SmileOutlined /> <Button icon={<SmileOutlined />} /> </div> ); // or directly import import SmileOutlined from '@ant-design/icons/SmileOutlined';
此外,我們也對(duì)相關(guān)依賴(lài)進(jìn)行了精簡(jiǎn),從而降低打包尺寸(Gzipped):Form.create
的 HOC 方式獲得表單實(shí)例,而通過(guò) form.getFieldDecorator
來(lái)對(duì)組件進(jìn)行數(shù)據(jù)綁定。此外,每次數(shù)據(jù)變更便會(huì)進(jìn)行整個(gè)表單的重新渲染,這使得在大數(shù)據(jù)表單中性能堪憂(yōu)。在 v4 版本中,F(xiàn)orm 將自帶表單實(shí)例,你可以直接通過(guò) Form.Item 的 name
屬性進(jìn)行數(shù)據(jù)綁定,從而簡(jiǎn)化你的代碼:- const { form } = this.props;- const onSubmit = () => {- form.validateFields((err, values) => {- if (!err) {- console.log('Received values of form: ', values);- }- });- };+ const onFinish = (values) => {+ console.log('Received values of form: ', values);+ };- <Form onSubmit={onSubmit}>+ <Form onFinish={onFinish}>- <Form.Item>+ <Form.Item name="username">- {getFieldDecorator('username')(- <Input />,- )}+ <Input /> </Form.Item> </Form>
我們發(fā)現(xiàn)大多數(shù)場(chǎng)景下,開(kāi)發(fā)者其實(shí)只關(guān)注表單提交成功的值。因而我們提供了 onFinish
,其只會(huì)在表單驗(yàn)證通過(guò)后觸發(fā),而 validateFields
不在需要。Form.useForm
允許你對(duì)表單示例進(jìn)行控制:const [form] = Form.useForm();React.useEffect(() => { form.setFieldValues({ ... });});<Form form={form} />
同時(shí),我們提供了 Form.List 組件,使你可以非常方便的實(shí)現(xiàn)列表字段的控制:<Form.List name="names"> {(fields, { add, remove }) => ( <div> {fields.map(field) => <Form.Item {...field}><Input /></Form.Item>} <Button onClick={() => add(initialValue)}>Add</Button> </div> }</Form.List>
sticky
樣式進(jìn)行固定列的實(shí)現(xiàn),因而大大減少了表格擁有固定列時(shí)的性能消耗。而對(duì)于不支持 sticky
的 IE 11,我們采取降級(jí)處理。summary
API 用于實(shí)現(xiàn)總結(jié)行的效果:fixedColumn
、expandable
、scroll
可以混合使用。提供了 body
API 用于自定義表格內(nèi)容實(shí)現(xiàn),你可以由此實(shí)現(xiàn)諸如虛擬滾動(dòng)的效果。moment
進(jìn)行解耦。你可以通過(guò)我們提供的 generate
方法生成自定義日期庫(kù)的 Picker 組件。為了保持兼容,默認(rèn)的 Picker 組件仍然使用 moment
作為日期庫(kù)。自定義日期庫(kù)請(qǐng)參考此處。picker
屬性進(jìn)行設(shè)置,不再需要通過(guò) mode
的受控方法來(lái)實(shí)現(xiàn)特地的選擇器:<RangePicker /><RangePicker showTime /><RangePicker picker="week" /><RangePicker picker="month" /><RangePicker picker="year" />
在范圍選擇器上,我們也對(duì)交互進(jìn)行了優(yōu)化。你現(xiàn)在可以單獨(dú)的選擇開(kāi)始或結(jié)束時(shí)間,并且完美優(yōu)化了手動(dòng)輸入日期的體驗(yàn)。Modal.xxx
和 Notification.xxx
調(diào)用方法無(wú)法獲得 Context 的問(wèn)題。這是由于我們對(duì)于這些語(yǔ)法糖會(huì)額外通過(guò) ReactDOM.render
創(chuàng)建一個(gè) React 實(shí)例,這也導(dǎo)致了 context 丟失的問(wèn)題。在新版中,我們提供了 hooks 方法,讓你可以將節(jié)點(diǎn)注入到需要獲得 context 的地方:const [api, contextHolder] = notification.useNotification();return ( <Context1.Provider value="Ant"> {/* contextHolder is in Context1 which mean api will not get context of Context1 */} {contextHolder} <Context2.Provider value="Design"> {/* contextHolder is out of Context2 which mean api will not get context of Context2 */} </Context2.Provider> </Context1.Provider>);
direction
配置以支持 rtl
語(yǔ)言國(guó)際化。size
設(shè)置包含組件尺寸。suffix
屬性。steps
子組件。onResize
。flex
布局。rtl
的國(guó)際化功能,@shaodahong 對(duì)于兼容包的貢獻(xiàn),以及每個(gè)參與幫助開(kāi)發(fā)的人。是你們?yōu)殚_(kāi)源的貢獻(xiàn)讓 Ant Design 變得更加美好!關(guān)鍵詞:正式
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
客戶(hù)&案例
營(yíng)銷(xiāo)資訊
關(guān)于我們
微信公眾號(hào)
版權(quán)所有? 億企邦 1997-2025 保留一切法律許可權(quán)利。