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 获取和设置Select选项的代码
Feb 07 Javascript
jquery实现弹出div,始终显示在屏幕正中间的简单实例
Mar 08 Javascript
点击按钮出现60秒倒计时的简单js代码(推荐)
Jun 07 Javascript
关于webpack2和模块打包的新手指南(小结)
Aug 07 Javascript
Vue渲染函数详解
Sep 15 Javascript
bootstrap 点击空白处popover弹出框隐藏实例
Jan 24 Javascript
微信小程序自定义prompt组件步骤详解
Jun 12 Javascript
详解JS函数stack size计算方法
Jun 18 Javascript
Puppeteer 爬取动态生成的网页实战
Nov 14 Javascript
js实现详情页放大镜效果
Oct 28 Javascript
微信小程序tab左右滑动切换功能的实现代码
Feb 08 Javascript
JavaScript 实现页面滚动动画
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
ubuntu 编译安装php 5.3.3+memcache的方法
2010/08/05 PHP
PHP 杂谈《重构-改善既有代码的设计》之一 重新组织你的函数
2012/04/09 PHP
php 无法加载mcrypt.dll的解决办法
2013/04/03 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
微信公众号开发之获取位置信息php代码
2018/06/13 PHP
PHP实现微信提现(企业付款到零钱)
2019/08/01 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
js静态作用域的功能。
2006/12/25 Javascript
jqPlot Option配置对象详解
2009/07/25 Javascript
关于js拖拽上传 [一个拖拽上传修改头像的流程]
2011/07/13 Javascript
JavaScript初学者建议:不要去管浏览器兼容
2014/02/04 Javascript
javaScript使用EL表达式的几种方式
2014/05/27 Javascript
在父页面得到zTree已选中的节点的方法
2015/02/12 Javascript
jQuery实现强制cookie过期方法汇总
2015/05/22 Javascript
jquery实现触发时更新下拉列表内容的方法
2015/12/02 Javascript
实例讲解避免javascript冲突的方法
2016/01/03 Javascript
基于JavaScript实现滑动门效果
2017/03/16 Javascript
详解JavaScript事件循环机制
2018/09/07 Javascript
在vue项目中引入highcharts图表的方法
2019/01/21 Javascript
IE浏览器下JS脚本提交表单后,不能自动提示问题解决方法
2019/06/04 Javascript
vue离开当前页面触发的函数代码
2020/09/01 Javascript
[41:13]完美世界DOTA2联赛PWL S2 Forest vs Rebirth 第一场 11.20
2020/11/20 DOTA
使用Python对IP进行转换的一些操作技巧小结
2015/11/09 Python
用python写一个windows下的定时关机脚本(推荐)
2017/03/21 Python
Python批量删除只保留最近几天table的代码实例
2019/04/01 Python
Python中变量的输入输出实例代码详解
2019/07/28 Python
Python startswith()和endswith() 方法原理解析
2020/04/28 Python
解决PyCharm无法使用lxml库的问题(图解)
2020/12/22 Python
python 基于opencv去除图片阴影
2021/01/26 Python
开展批评与自我批评发言材料
2014/05/15 职场文书
给校长的建议书200字
2014/05/16 职场文书
大学生国家助学金感谢信
2015/01/23 职场文书
导游词之宿迁乾隆行宫
2019/10/15 职场文书
iPhone13再次曝光
2021/04/15 数码科技
Java中使用Filter过滤器的方法
2021/06/28 Java/Android
Python 详解通过Scrapy框架实现爬取CSDN全站热榜标题热词流程
2021/11/11 Python