Vue Render函数创建DOM节点代码实例


Posted in Javascript onJuly 08, 2020

虽然在render里使用createElement函数创建DOM节点不是很直观,但是在部分独立组件的设计中还是可以满足一些特殊需求的。一个简单的render示例如下:

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Document</title>
</head>
<body>
  <div id="app">
    <my-component :list="list"></my-component>
  </div>
  <script src="vue.js"></script>
  <script>
    Vue.component('my-component', {
      props: {
        list: {
          type: Array,
          default: () => []
        }
      },
      render(createElement) {
        if (this.list.length) {
          return createElement('ul', this.list.map(item => createElement('li', item)))
        } else {
          return createElement('p', 'Empty list')
        }
      }
    })
    new Vue({
      el: '#app',
      data: {
        list: ['html', 'css', 'javascript']
      }
    })
  </script>
</body>
</html>

另外,由于v-if,v-else,v-show等指令都无法在render里使用,需要自己手动实现,拿常用的v-model举个栗子:

Vue.component('my-component', {
  data() {
    return {
      message: ''
    }
  },
  render(createElement) {
    return createElement(
      'div',
      [
        createElement(
          'input',
          {
            on: {
              input: e => this.message = e.target.value
            }
          }
        ),
        createElement('p', this.message)
      ]
    )
  }
})

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
jquery模拟按下回车实现代码
Sep 20 Javascript
js change,propertychange,input事件小议
Dec 20 Javascript
innerHTML与jquery里的html()区别介绍
Oct 12 Javascript
js实现动态改变字体大小代码
Jan 02 Javascript
Javascript字符串对象的常用方法简明版
Jun 26 Javascript
详解JavaScript中void语句的使用
Jun 04 Javascript
详解JavaScript的Date对象(制作简易钟表)
Apr 07 Javascript
jQuery实现指定区域外单击关闭指定层的方法【经典】
Jun 22 Javascript
Bootstrap表单布局
Jul 19 Javascript
获取JavaScript异步函数的返回值
Dec 21 Javascript
vue mounted组件的使用
Jun 18 Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
Feb 21 Javascript
实例讲解React 组件生命周期
Jul 08 #Javascript
详细分析React 表单与事件
Jul 08 #Javascript
详解JavaScript之ES5的继承
Jul 08 #Javascript
jQuery使用jsonp实现百度搜索的示例代码
Jul 08 #jQuery
微信小程序拖拽排序列表的示例代码
Jul 08 #Javascript
基于javascript canvas实现五子棋游戏
Jul 08 #Javascript
深度解读vue-resize的具体用法
Jul 08 #Javascript
You might like
Uchome1.2 1.5 代码学习 common.php
2009/04/24 PHP
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
《PHP编程最快明白》第五讲:php目录、文件操作
2010/11/01 PHP
php 字符串替换的方法
2012/01/10 PHP
php中base_convert()进制数字转换函数实例
2014/11/20 PHP
thinkphp循环结构用法实例
2014/11/24 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
PHP二维数组实现去除重复项的方法【保留各个键值】
2017/12/21 PHP
分享5个非常有用的Laravel Blade指令
2018/05/30 PHP
Javascript valueOf 使用方法
2008/12/28 Javascript
理解Javascript_09_Function与Object
2010/10/16 Javascript
intro.js 页面引导简单用法 分享
2013/08/06 Javascript
一起学写js Calender日历控件
2016/04/14 Javascript
利用Angularjs和bootstrap实现购物车功能
2016/08/31 Javascript
微信小程序 时间格式化(util.formatTime(new Date))详解
2016/11/16 Javascript
如何利用JQuery实现从底部回到顶部的功能
2016/12/27 Javascript
AngularJS自定义指令之复制指令实现方法
2017/05/18 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
Angular实现响应式表单
2017/08/04 Javascript
vue+iview+less 实现换肤功能
2018/08/17 Javascript
详解Vue数据驱动原理
2020/11/17 Javascript
Python 模块EasyGui详细介绍
2017/02/19 Python
Python3.6实现根据电影名称(支持电视剧名称),获取下载链接的方法
2019/08/26 Python
Python绘制动态水球图过程详解
2020/06/03 Python
Python实现在线批量美颜功能过程解析
2020/06/10 Python
美国户外运动商店:Sun & Ski
2018/08/23 全球购物
亚马逊海外购:亚马逊美国、英国、日本、德国直邮
2021/03/18 全球购物
德国BA保镖药房中文网:Bodyguard Apotheke
2021/03/09 全球购物
对标管理实施方案
2014/03/12 职场文书
企业演讲比赛主持词
2014/03/18 职场文书
汽车促销活动方案
2014/03/31 职场文书
判缓刑人员个人思想汇报
2014/10/10 职场文书
小学五年级(说明文3篇)
2019/08/13 职场文书
Python机器学习之逻辑回归
2021/05/11 Python
OpenCV-Python实现人脸磨皮算法
2021/06/07 Python
浅谈PostgreSQL表分区的三种方式
2021/06/29 PostgreSQL