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 圆形旋转图片滚动切换效果
Jan 19 Javascript
JsDom 编程小结
Aug 09 Javascript
完美解决AJAX跨域问题
Nov 01 Javascript
jQuery获取Radio,CheckBox选择的Value值(示例代码)
Dec 12 Javascript
jquery+CSS3实现淘宝移动网页菜单效果
Aug 31 Javascript
用JavaScript来美化HTML的select标签的下拉列表效果
Nov 17 Javascript
js注入 黑客之路必备!
Sep 14 Javascript
AngularJS用户选择器指令实例分析
Nov 04 Javascript
vue.js指令v-model使用方法
Mar 20 Javascript
值得分享和收藏的xmlplus组件学习教程
May 05 Javascript
turn.js异步加载实现翻书效果
Jul 25 Javascript
详解用js代码触发dom事件的实现方案
Jun 10 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 Ubb代码编辑器函数代码
2012/07/05 PHP
php从数据库查询结果生成树形列表的方法
2015/04/17 PHP
php判断邮箱地址是否存在的方法
2016/02/13 PHP
PHP用户管理中常用接口调用实例及解析(含源码)
2017/03/09 PHP
PHP判断是否是微信打开,浏览器打开的方法
2018/03/14 PHP
js jquery数组介绍
2012/07/15 Javascript
js 火狐下取本地路径实现思路
2013/04/02 Javascript
文本框中禁止非数字字符输入比如手机号码、邮编
2013/08/19 Javascript
document.execCommand()的用法小结
2014/01/08 Javascript
使用FlexiGrid实现Extjs表格效果方法分享
2014/12/16 Javascript
浅谈jQuery添加的HTML,JS失效的问题
2016/10/05 Javascript
node.js与C语言 实现遍历文件夹下最大的文件,并输出路径,大小
2017/01/20 Javascript
用node和express连接mysql实现登录注册的实现代码
2017/07/05 Javascript
不得不看之JavaScript构造函数及new运算符
2017/08/21 Javascript
详解在Vue中使用TypeScript的一些思考(实践)
2018/07/06 Javascript
jQuery实现数字自动增加或者减少的动画效果示例
2018/12/11 jQuery
JS实现深度优先搜索求解两点间最短路径
2019/01/17 Javascript
利用原生JS实现data方法示例代码
2019/05/28 Javascript
了解JavaScript函数中的默认参数
2019/05/30 Javascript
JavaScript canvas实现雪花随机动态飘落
2020/02/08 Javascript
python追加元素到列表的方法
2015/07/28 Python
轻松理解Python 中的 descriptor
2017/09/15 Python
Python基础之文件读取的讲解
2019/02/16 Python
用Python写一个模拟qq聊天小程序的代码实例
2019/03/06 Python
学习python分支结构
2019/05/17 Python
python opencv 图像拼接的实现方法
2019/06/27 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
Python基于argparse与ConfigParser库进行入参解析与ini parser
2021/02/02 Python
英国顶级水晶珠宝零售商之一:Tresor Paris
2019/04/27 全球购物
三星印度官网:Samsung印度
2019/08/03 全球购物
客服文员岗位职责
2013/11/29 职场文书
跟单文员岗位职责
2014/01/03 职场文书
高中军训感言1000字
2014/03/01 职场文书
学生请假条格式
2014/04/11 职场文书
学校党员干部承诺书
2015/05/04 职场文书
公司车队管理制度
2015/08/04 职场文书