真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

JSX在render函數(shù)中的應(yīng)用詳解

一.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)列表






通過render方法來定制組件,在父組件中傳入render方法


render(h, name) {
  return {name};
}

我們需要createElement方法,就會(huì)想到可以編寫個(gè)函數(shù)組件,將createElement方法傳遞出來



ListItem.vue調(diào)用最外層的render方法,將createElement和當(dāng)前項(xiàng)傳遞出來


六.scope-slot

使用v-slot 將內(nèi)部值傳入即可


  


七.編寫可編輯表格

基于iview使用jsx擴(kuò)展成可編輯的表格



以上就是本文的全部內(nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。


當(dāng)前文章:JSX在render函數(shù)中的應(yīng)用詳解
當(dāng)前路徑:http://weahome.cn/article/gioioi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部