栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

JSX在render函数中的应用

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

JSX在render函数中的应用

一.JSX简介
const element = Hello, world!;

JSX 可以很好地描述 UI 应该呈现出它应有交互的本质形式。JSX 可能会使人联想到模版语言,但它具有 Javascript 的全部功能。

Babel 会把 JSX 转译成一个名为 React.createElement() 函数调用。
以下两种示例代码完全等效:

const element = (
  

Hello, world! );

const element = React.createElement(
  'h1',
  {className: 'greeting'},
  'Hello, world!'
);

React.createElement() 会预先执行一些检查,以帮助你编写无错代码,但实际上它创建了一个这样的对象:

const element = {
  type: 'h1',
  props: {
    className: 'greeting',
    children: 'Hello, world!'
  }
};
二.模板缺陷

模板的最大特点是扩展难度大,不易扩展。可能会造成逻辑冗余:

哈哈
哈哈
哈哈

Level组件需要对不同的type产生不同的标签



三.函数式组件

函数式组件没有模板,只允许提供render函数

export default {
 render(h) {
  return h("h" + this.type, {}, this.$slots.default);
 },
 props: {
  type: {
   type: Number
  }
 }
};

复杂的逻辑变得非常简单

四.JSX应用

使用jsx会让代码看起来更加简洁、易于读取

export default {
 render(h) {
  const tag = "h" + this.type;
  return {this.$slots.default};
 },
 props: {
  type: {
   type: Number
  }
 }
};
五.render方法定制组件

编写List组件,可以根据用户传入的数据自动循环列表







通过render方法来定制组件,在父组件中传入render方法


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

我们需要createElement方法,就会想到可以编写个函数组件,将createElement方法传递出来



ListItem.vue调用最外层的render方法,将createElement和当前项传递出来


六.scope-slot

使用v-slot 将内部值传入即可


    


七.编写可编辑表格

基于iview使用jsx扩展成可编辑的表格




转载请注明:文章转载自 www.mshxw.com
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号