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与CSS复习(三)
Jun 29 Javascript
JS对象与JSON格式数据相互转换
Feb 20 Javascript
javascript中expression的用法整理
May 13 Javascript
jQuery学习笔记之jQuery+CSS3的浏览器兼容性
Jan 19 Javascript
Dropzone.js实现文件拖拽上传功能(附源码下载)
Nov 22 Javascript
Angular2-primeNG文件上传模块FileUpload使用详解
Jan 14 Javascript
bootstrap 下拉多选框进行多选传值问题代码分析
Feb 14 Javascript
基于Vue实例对象的数据选项
Aug 09 Javascript
使用vue2实现购物车和地址选配功能
Mar 29 Javascript
JavaScript动态添加数据到表单并提交的几种方式
Jun 26 Javascript
解决vant的Toast组件时提示not defined的问题
Nov 11 Javascript
正则表达式基础与常用验证表达式
Jun 16 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
php遍历文件夹所有文件子文件夹函数代码
2013/11/27 PHP
php源码分析之DZX1.5随机数函数random用法
2015/06/17 PHP
超强多功能php绿色集成环境详解
2017/01/25 PHP
laravel-admin解决表单select联动时,编辑默认没选上的问题
2019/09/30 PHP
利用javaScript实现点击输入框弹出窗体选择信息
2013/12/11 Javascript
javascript移出节点removeChild()使用介绍
2014/04/03 Javascript
45个JavaScript编程注意事项、技巧大全
2015/02/11 Javascript
如何解决谷歌浏览器下jquery无法获取图片的尺寸
2015/09/10 Javascript
chrome调试javascript详解
2015/10/21 Javascript
图文详解JavaScript的原型对象及原型链
2016/08/02 Javascript
angularjs+bootstrap菜单的使用示例代码
2017/03/07 Javascript
jQuery插件ContextMenu自定义图标
2017/03/15 Javascript
JavaScript中一些特殊的字符运算
2017/08/17 Javascript
JS实现的获取银行卡号归属地及银行卡类型操作示例
2019/01/08 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
Python中使用tarfile压缩、解压tar归档文件示例
2015/04/05 Python
python使用tornado实现登录和登出
2018/07/28 Python
python生成九宫格图片
2018/11/19 Python
Python Pandas数据中对时间的操作
2019/07/30 Python
pytorch常见的Tensor类型详解
2020/01/15 Python
Python3 获取文件属性的方式(时间、大小等)
2020/03/12 Python
jupyter notebook指定启动目录的方法
2021/03/02 Python
CSS3区域模块region相关编写示例
2015/08/28 HTML / CSS
canvas简单连线动画的实现代码
2020/02/04 HTML / CSS
Java如何读取CLOB字段
2013/10/10 面试题
团支部推优材料
2014/05/21 职场文书
建筑工程质量通病防治方案
2014/06/08 职场文书
文明好少年事迹材料
2014/08/19 职场文书
上党课的心得体会
2014/09/02 职场文书
个人师德师风自我剖析材料
2014/09/29 职场文书
群众路线个人自我剖析材料
2014/10/07 职场文书
英文自荐信范文
2015/03/25 职场文书
工作服管理制度范本
2015/08/06 职场文书
团结友爱主题班会
2015/08/13 职场文书
python读取并查看npz/npy文件数据以及数据显示方法
2022/04/14 Python
项目中Nginx多级代理是如何获取客户端的真实IP地址
2022/05/30 Servers