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 相关文章推荐
javascript生成随机数的方法
May 16 Javascript
jQuery实现简洁的导航菜单效果
Nov 23 Javascript
基于jQuery实现弹出可关闭遮罩提示框实例代码
Jul 18 Javascript
javascript另类方法实现htmlencode()与htmldecode()函数实例分析
Nov 17 Javascript
js中string和number类型互转换技巧(分享)
Nov 28 Javascript
jquery做个日期选择适用于手机端示例
Jan 10 Javascript
Jquery鼠标放上去显示全名的实现方法
Feb 06 Javascript
JavaScript面向对象精要(下部)
Sep 12 Javascript
js中apply()和call()的区别与用法实例分析
Aug 14 Javascript
详解Vue中的基本语法和常用指令
Jul 23 Javascript
微信小程序嵌入腾讯视频源过程详解
Aug 08 Javascript
基于Vue实现微前端的示例代码
Apr 24 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
xml+php动态载入与分页
2006/10/09 PHP
php微信公众平台开发(四)回复功能开发
2016/12/06 PHP
PHP合并两个或多个数组的方法
2019/01/20 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
浅析PHP7的多进程及实例源码
2019/04/14 PHP
js的with语句使用方法
2007/09/21 Javascript
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
js变换显示图片的实例
2013/04/16 Javascript
jquery mobile事件多次绑定示例代码
2013/09/13 Javascript
JavaScript实现快速排序的方法
2015/07/31 Javascript
JS DOM实现鼠标滑动图片效果
2020/09/17 Javascript
JavaScript正则替换HTML标签功能示例
2017/03/02 Javascript
jQuery插件zTree实现更新根节点中第i个节点名称的方法示例
2017/03/08 Javascript
AngularJS动态菜单操作指令
2017/04/25 Javascript
利用Vue v-model实现一个自定义的表单组件
2017/04/27 Javascript
underscore之function_动力节点Java学院整理
2017/07/11 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
jQuery简单实现向列表动态添加新元素的方法示例
2017/12/25 jQuery
关于React动态加载路由处理的相关问题
2019/01/07 Javascript
vue插槽slot的理解和使用方法
2019/04/03 Javascript
微信小程序实现拼图小游戏
2020/10/22 Javascript
[00:32]DOTA2上海特级锦标赛 Ehome战队宣传片
2016/03/03 DOTA
python中异常捕获方法详解
2017/03/03 Python
实例讲解Python脚本成为Windows中运行的exe文件
2019/01/24 Python
解决python xx.py文件点击完之后一闪而过的问题
2019/06/24 Python
python实现人像动漫化的示例代码
2020/05/17 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
如何向接受结构参数的函数传入常数值
2016/02/17 面试题
枚举与#define宏的区别
2014/04/30 面试题
竞聘上岗演讲
2014/05/19 职场文书
民主生活会汇报材料
2014/12/15 职场文书
委托书格式要求
2015/01/28 职场文书
Anaconda安装pytorch及配置PyCharm 2021环境
2021/06/04 Python
总结Python变量的相关知识
2021/06/28 Python