一.JSX簡(jiǎn)介
在四子王等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強(qiáng)發(fā)展的系統(tǒng)性、市場(chǎng)前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站建設(shè)、網(wǎng)站建設(shè) 網(wǎng)站設(shè)計(jì)制作按需搭建網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),成都品牌網(wǎng)站建設(shè),成都全網(wǎng)營銷,外貿(mào)營銷網(wǎng)站建設(shè),四子王網(wǎng)站建設(shè)費(fèi)用合理。
const element =Hello, world!
;
JSX 可以很好地描述 UI 應(yīng)該呈現(xiàn)出它應(yīng)有交互的本質(zhì)形式。JSX 可能會(huì)使人聯(lián)想到模版語言,但它具有 JavaScript 的全部功能。
Babel 會(huì)把 JSX 轉(zhuǎn)譯成一個(gè)名為 React.createElement() 函數(shù)調(diào)用。
以下兩種示例代碼完全等效:
const element = (Hello, world!
);
const element = React.createElement( 'h2', {className: 'greeting'}, 'Hello, world!' );
React.createElement() 會(huì)預(yù)先執(zhí)行一些檢查,以幫助你編寫無錯(cuò)代碼,但實(shí)際上它創(chuàng)建了一個(gè)這樣的對(duì)象:
const element = { type: 'h2', props: { className: 'greeting', children: 'Hello, world!' } };
二.模板缺陷
模板的最大特點(diǎn)是擴(kuò)展難度大,不易擴(kuò)展??赡軙?huì)造成邏輯冗余:
哈哈 哈哈 哈哈
Level組件需要對(duì)不同的type產(chǎn)生不同的標(biāo)簽
三.函數(shù)式組件
函數(shù)式組件沒有模板,只允許提供render函數(shù)
export default { render(h) { return h("h" + this.type, {}, this.$slots.default); }, props: { type: { type: Number } } };
復(fù)雜的邏輯變得非常簡(jiǎn)單
四.JSX應(yīng)用
使用jsx會(huì)讓代碼看起來更加簡(jiǎn)潔、易于讀取
export default { render(h) { const tag = "h" + this.type; return{this.$slots.default} ; }, props: { type: { type: Number } } };
五.render方法定制組件
編寫List組件,可以根據(jù)用戶傳入的數(shù)據(jù)自動(dòng)循環(huán)列表
- {{item}}
通過render方法來定制組件,在父組件中傳入render方法
render(h, name) { return {name}; }
我們需要createElement方法,就會(huì)想到可以編寫個(gè)函數(shù)組件,將createElement方法傳遞出來
{{item}}
ListItem.vue調(diào)用最外層的render方法,將createElement和當(dāng)前項(xiàng)傳遞出來
六.scope-slot
使用v-slot 將內(nèi)部值傳入即可
{{item}}
七.編寫可編輯表格
基于iview使用jsx擴(kuò)展成可編輯的表格
以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。