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 相关文章推荐
ExtJS的FieldSet的column列布局
Nov 20 Javascript
跟我学习javascript的函数和函数表达式
Nov 16 Javascript
jquery判断输入密码两次是否相等
Apr 22 Javascript
Node.js 条形码识别程序构建思路详解
Feb 14 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
AngularJS 中使用Swiper制作滚动图不能滑动的解决方法
Nov 15 Javascript
Jquery中.bind()、.live()、.delegate()和.on()之间的区别详解
Aug 01 jQuery
JavaScript选取(picking)和反选(rejecting)对象的属性方法
Aug 16 Javascript
bootstrap实现二级下拉菜单效果
Nov 23 Javascript
微信小程序实现工作时间段选择
Feb 15 Javascript
react实现antd线上主题动态切换功能
Aug 12 Javascript
JavaScript中数组去重的5种方法
Jul 04 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
如何实现给定日期的若干天以后的日期
2006/10/09 PHP
ThinkPHP3.2.3实现分页的方法详解
2016/06/03 PHP
php删除txt文件指定行及按行读取txt文档数据的方法
2017/01/30 PHP
CakePHP框架Model关联对象用法分析
2017/08/04 PHP
Javascript读取cookie函数代码
2010/10/16 Javascript
鼠标拖动实现DIV排序示例代码
2013/10/14 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
通过pjax实现无刷新翻页(兼容新版jquery)
2014/01/31 Javascript
使用typeof判断function是否存在于上下文
2014/08/14 Javascript
封装好的一个万能检测表单的方法
2015/01/21 Javascript
jquery实现仿JqueryUi可拖动的DIV实例
2015/07/31 Javascript
jQuery 1.9.1源码分析系列(十五)之动画处理
2015/12/03 Javascript
jQuery实现简单的手风琴效果
2020/04/17 jQuery
基于BootStrap multiselect.js实现的下拉框联动效果
2017/07/28 Javascript
解决bootstrap模态框数据缓存的问题方法
2018/08/10 Javascript
nodejs初始化init的示例代码
2018/10/10 NodeJs
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
JS实现骰子3D旋转效果
2019/10/24 Javascript
Python中方法链的使用方法
2016/02/23 Python
python的mysqldb安装步骤详解
2017/08/14 Python
python实现读取大文件并逐行写入另外一个文件
2018/04/19 Python
Python爬虫抓取代理IP并检验可用性的实例
2018/05/07 Python
教你利用Python玩转histogram直方图的五种方法
2018/07/30 Python
django 中QuerySet特性功能详解
2019/07/25 Python
python sorted方法和列表使用解析
2019/11/18 Python
幼儿园保教管理制度
2014/02/03 职场文书
质检部经理岗位职责
2014/02/19 职场文书
一句话工作感言
2014/03/01 职场文书
《金孔雀轻轻跳》教学反思
2014/04/20 职场文书
2014年母亲节演讲稿范文
2014/05/07 职场文书
教师群众路线教育实践活动学习笔记
2014/11/05 职场文书
税务会计岗位职责
2015/04/02 职场文书
欠款纠纷起诉状
2015/05/19 职场文书
股东协议书范本2016
2016/03/21 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
Java无向树分析 实现最小高度树
2022/04/09 Javascript