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的插件教程(Plugin)
Sep 03 Javascript
parseInt parseFloat js字符串转换数字
Aug 01 Javascript
javascript之典型高阶函数应用介绍
Jan 10 Javascript
JS中判断null、undefined与NaN的方法
Mar 26 Javascript
js防止DIV布局滚动时闪动的解决方法
Oct 30 Javascript
JQuery对ASP.NET MVC数据进行更新删除
Jul 13 Javascript
AngularJS基础 ng-class-odd 指令示例
Aug 01 Javascript
如何使用Bootstrap创建表单
Mar 29 Javascript
vue 开发一个按钮组件的示例代码
Mar 27 Javascript
微信小程序select下拉框实现效果
May 15 Javascript
ES6 Promise对象概念及用法实例详解
Oct 15 Javascript
React Hook用法示例详解(6个常见hook)
Apr 28 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 防恶意刷新实现代码
2010/05/16 PHP
php数据库备份还原类分享
2014/03/20 PHP
PHP队列用法实例
2014/11/05 PHP
thinkphp实现发送邮件密码找回功能实例
2014/12/01 PHP
thinkPHP5.0框架URL访问方法详解
2017/03/18 PHP
Thinkphp开发--集成极光推送
2017/09/15 PHP
ThinkPHP3.1.x修改成功与失败跳转页面的方法
2017/09/29 PHP
PHP标准库 (SPL)――Countable用法示例
2020/06/05 PHP
js压缩利器
2007/02/20 Javascript
JavaScript数据结构与算法之链表
2016/01/29 Javascript
javaScript知识点总结(必看篇)
2016/06/10 Javascript
JavaScript页面实时显示当前时间实例代码
2016/10/23 Javascript
AngularJs表单校验功能实例代码
2017/02/09 Javascript
使用jquery+iframe做一个ajax上传效果(实例)
2017/08/24 jQuery
微信小程序支付及退款流程详解
2017/11/30 Javascript
微信小程序实现action-sheet弹出底部菜单功能【附源码下载】
2017/12/09 Javascript
vue非父子组件通信问题及解决方法
2018/06/11 Javascript
vue和better-scroll实现列表左右联动效果详解
2019/04/29 Javascript
解决layer.msg 不居中 ifram中的问题
2019/09/05 Javascript
图解NodeJS实现登录注册功能
2019/09/16 NodeJs
Nuxt的路由配置和参数传递方式
2020/11/06 Javascript
Python入门篇之面向对象
2014/10/20 Python
Python编程之列表操作实例详解【创建、使用、更新、删除】
2017/07/22 Python
Python一句代码实现找出所有水仙花数的方法
2018/11/13 Python
详解Python3 基本数据类型
2019/04/19 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
python爬虫开发之使用python爬虫库requests,urllib与今日头条搜索功能爬取搜索内容实例
2020/03/10 Python
Django REST Framework 分页(Pagination)详解
2020/11/30 Python
Python爬虫逆向分析某云音乐加密参数的实例分析
2020/12/04 Python
python 第三方库paramiko的常用方式
2021/02/20 Python
奥地利网上书店:Weltbild
2017/07/14 全球购物
某/etc/fstab文件中的某行如下: /dev/had5 /mnt/dosdata msdos defaults,usrquota 1 2 请解释其含义
2013/04/11 面试题
Python绘制地图神器folium的新人入门指南
2021/05/23 Python
ajax请求前端跨域问题原因及解决方案
2021/10/16 Javascript
JavaScript数组 几个常用方法总结
2021/11/11 Javascript
Python捕获、播放和保存摄像头视频并提高视频清晰度和对比度
2022/04/14 Python