基于vue2.0动态组件及render详解


Posted in Javascript onMarch 17, 2018

如下所示:

<template>
 <div class="hello">
 <h1>{{ msg }}</h1>
 <h2>这里是Boor</h2>
 <component v-bind:my-data="items" v-bind:is="currentView">
  <!-- 组件在 vm.currentview 变化时改变! -->
 </component>
 <a class="explain">直直</a>
 <button v-on:click="addData">点击</button>
 </div>
</template>
<script>
 //import $ from '@/assets/scripts/lib/zepto.min'
 //console.log($);
 //import Vue from 'vue'
 function isEmptyObject(e) {
 var t;
 for (t in e)
  return !1;
 return !0
 }
 function objectLength(o) {
  var len = 0;
  for(var p in o) {
   len++;
  }
  return len;
 }
 let data ={
  c_0:{c:1},
  c_1:{c:2},
  c_2:{c:3},
  c_3:{c:4}
 };
 let num = 0;
 //console.log(objectLength(data));
 const MyComponent = {
 //template: '<h3 v-for="item in items">{{ item.c}}</h3>',
 props: ['myData'],
 data(){
  return{
  //items : myData
  }
 },
 render: function (createElement) {
  debugger;
  let items = this.myData;
   //items = JSON.stringify(items);
  let num = objectLength(items);
 if (!isEmptyObject(items)) {
  debugger;
  return createElement('div', Array.apply(null, { length: num }).map(function (v,index) {
  return createElement('h3', items['c_'+index]['c'].toString())
  }))
 } else {
  return createElement('h1', '没有数据!');
 }
 }
 };
 // 注册
 //Vue.component('my-component', MyComponent);
export default {
 name: 'bar',
 data () {
 return {
  msg: 'Bar',
  fuck: 'Hello',
  items: data,
  currentView: MyComponent
 }
 },
 methods:{
 addData : function(){
  for(let p in data) {
   if(p == 'c_'+num) {
    data[p] = {'c': num };
   } else {
    data['c'+num] = {'c': num };
   }
  }
  num++;
 }
 }
};
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
h1, h2 {
 font-weight: normal;
}
ul {
 list-style-type: none;
 padding: 0;
}
li {
 display: inline-block;
 margin: 0 10px;
}
a {
 color: #42b983;
}
</style>

以上这篇基于vue2.0动态组件及render详解就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript数组的扩展实现代码集合
Jun 01 Javascript
关于B/S判断浏览器断开的问题讨论
Oct 29 Javascript
js 图片轮播(5张图片)
Dec 30 Javascript
JavaScript高级程序设计 客户端存储学习笔记
Sep 10 Javascript
jquery 元素控制(追加元素/追加内容)介绍及应用
Apr 21 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
Jan 21 Javascript
Angular2使用jQuery的方法教程
May 28 jQuery
Easyui Datagrid自定义按钮列(最后面的操作列)
Jul 13 Javascript
vue 列表页跳转详情页获取id以及详情页通过id获取数据
Mar 27 Javascript
vue本地打开build后生成的dist文件夹index.html问题
Sep 04 Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 Javascript
vue封装数字翻牌器
Apr 20 Vue.js
Vue实现动态创建和删除数据的方法
Mar 17 #Javascript
JS实现将链接生成二维码并转为图片的方法
Mar 17 #Javascript
基于vue1和vue2获取dom元素的方法
Mar 17 #Javascript
解决vue页面DOM操作不生效的问题
Mar 17 #Javascript
vue中实现先请求数据再渲染dom分享
Mar 17 #Javascript
vue 每次渲染完页面后div的滚动条保持在最底部的方法
Mar 17 #Javascript
vue获取当前激活路由的方法
Mar 17 #Javascript
You might like
基础的WordPress插件制作教程
2015/11/24 PHP
PHP实现ASCII码与字符串相互转换的方法
2017/04/29 PHP
php连接MSsql server的五种方法总结
2018/03/04 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
用户注册常用javascript代码
2009/08/29 Javascript
模仿JQuery.extend函数扩展自己对象的js代码
2009/12/09 Javascript
JavaScript中setAttribute用法介绍
2013/07/20 Javascript
使用GruntJS构建Web程序之合并压缩篇
2014/06/06 Javascript
用js读、写、删除Cookie代码续篇
2014/12/03 Javascript
JavaScript中的Math.sin()方法使用详解
2015/06/15 Javascript
jquery.fastLiveFilter.js实现输入自动过滤的方法
2015/08/11 Javascript
JavaScript地理位置信息API
2016/06/11 Javascript
AngularJS动态绑定HTML的方法分析
2016/11/07 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
微信小程序 video详解及简单实例
2017/01/16 Javascript
小程序开发实战:实现九宫格界面的导航的代码实现
2017/01/19 Javascript
从零开始学习Node.js系列教程之设置HTTP头的方法示例
2017/04/13 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
JavaScript闭包_动力节点Java学院整理
2017/06/27 Javascript
Javascript 严格模式use strict详解
2017/09/16 Javascript
vue devtools的安装与使用教程
2018/08/08 Javascript
Quasar Input:type=&quot;number&quot; 去掉上下小箭头 实现加减按钮样式功能
2020/04/09 Javascript
[01:46]2020完美世界全国高校联赛秋季赛报名开启
2020/10/15 DOTA
Python模拟三级菜单效果
2017/09/11 Python
Python+Selenium+PIL+Tesseract自动识别验证码进行一键登录
2017/09/20 Python
django 按时间范围查询数据库实例代码
2018/02/11 Python
python数据归一化及三种方法详解
2019/08/06 Python
friso美素佳儿官方海外旗舰店:荷兰原产原罐
2017/07/03 全球购物
理肤泉英国官网:La Roche-Posay英国
2019/01/14 全球购物
日本AOKI官方商城:AOKI西装
2020/06/11 全球购物
Laravel中Kafka的使用详解
2021/03/24 PHP
创业者是否需要商业计划书?
2014/02/07 职场文书
幼儿发展评估方案
2014/06/11 职场文书
说好普通话圆梦你我他演讲稿
2014/09/21 职场文书
学校艾滋病宣传活动总结
2015/05/09 职场文书
考研经验交流会策划书
2015/11/02 职场文书