Vue2系列 — 渲染函数 (render + createElement)

本文介绍了Vue.js中render函数的作用,如何使用createElement()创建节点,以及如何用JavaScript替代模板语法如v-if/v-for/v-model。通过实例演示了如何自定义anchored-heading组件并展示其在Vue组件中的使用。
摘要由CSDN通过智能技术生成

官网文档:https://v2.cn.vuejs.org/v2/guide/render-function.html

1 render 函数

render 函数
不使用模板,使用 js 生成虚拟 dom

2 createElement()

接受的参数:

  • 参数1 节点类型
  • 参数2 attribute
  • 参数3 子节点

3 DEMO

在这里插入图片描述

<template>
  <div class="container">
    <!-- <WangEditorDemo></WangEditorDemo> -->
    <!-- <div v-hello>123</div> -->
    <!-- <input v-limit-input-number> -->
    <!-- <el-input v-model="name" v-limit-input></el-input> -->
    <!-- <IDBDemo></IDBDemo> -->
    <anchored-heading :level="1">Hello world!</anchored-heading>
    <anchored-heading :level="2">Hello world!</anchored-heading>
  </div>
</template>

main.js

Vue.component('anchored-heading', {
  render: function (createElement) {
    return createElement(
      // 参数1 节点类型 {String | Object | Function}
      'h' + this.level,   // 标签名称
      // 参数2 attribute {Object} 可选
      {
        'class': {
          foo: true
        },
        style: {
          color: 'red'
        },
      },
      // 参数3 子节点 {String | Array} 可选
      '123' // 文本节点
    )
  },
  props: {
    level: {
      type: Number,
      required: true
    }
  }
})

4 使用 JavaScript 代替模板功能(v-if/v-for/v-model…)

官方文档:https://v2.cn.vuejs.org/v2/guide/render-function.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值