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 相关文章推荐
javascript AutoScroller 函数类
May 29 Javascript
jQuery对象[0]是什么含义?
Jul 31 Javascript
js原生appendChild的bug解决心得分享
Jul 01 Javascript
document.getElementBy(&quot;id&quot;)与$(&quot;#id&quot;)有什么区别
Sep 22 Javascript
JavaScript中的console.log()函数详细介绍
Dec 29 Javascript
js获取数组的最后一个元素
Apr 14 Javascript
基于jQuery滑动杆实现购买日期选择效果
Sep 15 Javascript
jQuery实现注册会员时密码强度提示信息功能示例
Sep 05 jQuery
Three.js利用顶点绘制立方体的方法详解
Sep 27 Javascript
VueJs 将接口用webpack代理到本地的方法
Nov 27 Javascript
jQuery使用动画队列自定义动画操作示例
Jun 16 jQuery
element-ui 中的table的列隐藏问题解决
Aug 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
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
js和jquery对dom节点的操作(创建/追加)
2013/04/21 Javascript
js二级地域选择的实现方法
2013/06/17 Javascript
js控制href内容的连接内容的变化示例
2014/04/30 Javascript
JavaScript实现的GBK、UTF8字符串实际长度计算函数
2014/08/27 Javascript
javascript实现检验的各种规则
2015/07/31 Javascript
js贪吃蛇网页版游戏特效代码分享(挑战十关)
2015/08/24 Javascript
微信小程序 框架详解及实例应用
2016/09/26 Javascript
jQuery grep()方法详解及实例代码
2016/10/30 Javascript
jQuery 改变P标签文本值方法
2018/02/24 jQuery
vue脚手架搭建过程图解
2018/06/06 Javascript
浅析Vue实例以及生命周期
2018/08/14 Javascript
浅谈Vue render函数在ElementUi中的应用
2018/09/06 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
在Bootstrap开发框架中使用dataTable直接录入表格行数据的方法
2018/10/25 Javascript
微信小程序实现的日期午别医生排班表功能示例
2019/01/09 Javascript
Vue封装的组件全局注册并引用
2019/07/24 Javascript
微信小程序之左右布局的实现代码
2019/12/13 Javascript
JavaScript实现轮播图特效
2020/04/10 Javascript
vue实现购物车功能(商品分类)
2020/04/20 Javascript
JS removeAttribute()方法实现删除元素的某个属性
2021/01/11 Javascript
[03:44]2014DOTA2国际邀请赛 71专访:DK战队赛前讨论视频遭泄露
2014/07/13 DOTA
Python带动态参数功能的sqlite工具类
2018/05/26 Python
Python 中 function(#) (X)格式 和 (#)在Python3.*中的注意事项
2018/11/30 Python
python截取两个单词之间的内容方法
2018/12/25 Python
Django 自定义权限管理系统详解(通过中间件认证)
2020/03/11 Python
Python 列表反转显示的四种方法
2020/11/16 Python
css3学习之2D转换功能详解
2016/12/23 HTML / CSS
新西兰网上购物,折扣店:BestDeals.co.nz
2019/03/20 全球购物
ESDlife健康生活易:身体检查预订、搜寻及比较
2019/05/10 全球购物
大家检讨书5000字
2014/02/03 职场文书
运动会横幅标语
2014/06/17 职场文书
购房委托书范本
2014/09/18 职场文书
党的群众路线教育实践活动整改落实情况自查报告
2014/10/28 职场文书
2015年采购部工作总结
2015/04/23 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android