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中LigerUi的弹出编辑框(实现方法)
Jul 09 Javascript
判断客户浏览器是否支持cookie的示例代码
Dec 23 Javascript
jquery SweetAlert插件实现响应式提示框
Aug 18 Javascript
jQuery实现按钮点击遮罩加载及处理完后恢复的效果
Jun 07 Javascript
一步一步封装自己的HtmlHelper组件BootstrapHelper(二)
Sep 14 Javascript
Javascript 实现计算器时间功能详解及实例(二)
Jan 08 Javascript
windows下vue-cli导入bootstrap样式
Apr 25 Javascript
JS判断一个数是否是水仙花数
Jun 11 Javascript
关于javascript sort()排序你可能忽略的一点理解
Jul 18 Javascript
基于vue2实现左滑删除功能
Nov 28 Javascript
VUE前端从后台请求过来的数据进行转换数据结构操作
Nov 11 Javascript
利用 Chrome Dev Tools 进行页面性能分析的步骤说明(前端性能优化)
Feb 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
php str_pad 函数使用详解
2009/01/13 PHP
PHP类与对象中的private访问控制的疑问
2012/11/01 PHP
可缩放Reloaded-一个针对可缩放元素的复用组件
2007/03/10 Javascript
Jquery选择器 $实现原理
2009/12/02 Javascript
JavaScript CSS 修改学习第四章 透明度设置
2010/02/19 Javascript
js对字符的验证方法汇总
2015/02/04 Javascript
JS实现动态生成表格并提交表格数据向后端
2020/11/25 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
Ajax+FormData+javascript实现无刷新表单信息提交
2016/10/24 Javascript
BootStrapTable服务器分页实例解析
2016/12/20 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
JavaScript作用域链实例详解
2019/01/21 Javascript
vue 组件内获取actions的response方式
2019/11/08 Javascript
Vue 打包的静态文件不能直接运行的原因及解决办法
2020/11/19 Vue.js
vue使用transition组件动画效果的实例代码
2021/01/28 Vue.js
wxpython 学习笔记 第一天
2009/03/16 Python
pyramid配置session的方法教程
2013/11/27 Python
Python自动连接ssh的方法
2015/03/07 Python
Python实现求最大公约数及判断素数的方法
2015/05/26 Python
对python读取zip压缩文件里面的csv数据实例详解
2019/02/08 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python 3.6.7实现端口扫描器
2019/09/04 Python
Python魔法方法 容器部方法详解
2020/01/02 Python
详解Python流程控制语句
2020/10/28 Python
python3.9.1环境安装的方法(图文)
2021/02/02 Python
HTML5的hidden属性兼容老浏览器的方法
2014/04/23 HTML / CSS
HTML5表单验证特性(知识点小结)
2020/03/10 HTML / CSS
STAUD官方网站:洛杉矶独有的闲适风格
2019/04/11 全球购物
酒店前台接待岗位职责
2013/12/03 职场文书
工作失误检讨书范文大全
2014/01/13 职场文书
益达广告词
2014/03/14 职场文书
村居抓节水倡议书
2014/05/19 职场文书
运动会广播稿150字(9篇)
2014/09/20 职场文书
人民币使用说明书
2019/04/17 职场文书
送给火锅店的创意营销方案!
2019/07/08 职场文书
python tkinter模块的简单使用
2021/04/07 Python