基于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 相关文章推荐
文本框文本自动补全效果示例分享
Jan 19 Javascript
jQuery遍历之next()、nextAll()方法使用实例
Nov 08 Javascript
动态创建按钮的JavaScript代码
Jan 29 Javascript
关于微信中a链接无法跳转问题
Aug 02 Javascript
KnockoutJS 3.X API 第四章之数据控制流if绑定和ifnot绑定
Oct 10 Javascript
微信小程序 自定义消息提示框
Aug 06 Javascript
react 父组件与子组件之间的值传递的方法
Sep 14 Javascript
使用webpack打包koa2 框架app
Feb 02 Javascript
vue 项目地址去掉 #的方法
Oct 20 Javascript
送你43道JS面试题(收藏)
Jun 17 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
Nov 06 Javascript
微信小程序实现多选框全选与反全选及购物车中删除选中的商品功能
Dec 17 Javascript
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
通过对php一些服务器端特性的配置加强php的安全
2006/10/09 PHP
PHP原理之异常机制深入分析
2010/08/08 PHP
JavaScript面象对象设计
2008/04/28 Javascript
javascript 拖动表格行实现代码
2011/05/05 Javascript
使用Jquery打造最佳用户体验的登录页面的实现代码
2011/07/08 Javascript
jquery插件冲突(jquery.noconflict)解决方法分享
2014/03/20 Javascript
jQuery中removeProp()方法用法实例
2015/01/05 Javascript
javascript比较两个日期相差天数的方法
2015/07/24 Javascript
Ajax清除浏览器js、css、图片缓存的方法
2015/08/06 Javascript
老生常谈js中0到底是 true 还是 false
2017/03/08 Javascript
你有必要知道的10个JavaScript难点
2017/07/25 Javascript
微信小程序实现YDUI的ScrollTab组件
2018/02/02 Javascript
使用Nuxt.js改造已有项目的方法
2018/08/07 Javascript
jQuery实现input[type=file]多图预览上传删除等功能
2019/08/02 jQuery
小程序Scroll-view上拉滚动刷新数据
2020/06/21 Javascript
[02:33]2018DOTA2亚洲邀请赛赛前采访——LGD
2018/04/04 DOTA
python相似模块用例
2016/03/04 Python
利用aardio给python编写图形界面
2017/08/21 Python
python射线法判断一个点在图形区域内外
2019/06/28 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
pycharm快捷键汇总
2020/02/14 Python
python随机模块random的22种函数(小结)
2020/05/15 Python
python 实现 hive中类似 lateral view explode的功能示例
2020/05/18 Python
如何更换python默认编辑器的背景色
2020/08/10 Python
Python中免验证跳转到内容页的实例代码
2020/10/23 Python
python打包生成so文件的实现
2020/10/30 Python
Python入门基础之数字字符串与列表
2021/02/01 Python
圣彼得堡鲜花配送:Semicvetic
2020/09/15 全球购物
银行实习生自我鉴定范文
2013/09/19 职场文书
测绘工程本科生求职信
2013/10/10 职场文书
入党自我鉴定
2014/03/25 职场文书
开展党的群众路线教育实践活动领导班子对照检查材料
2014/09/25 职场文书
公司环境卫生管理制度
2015/08/05 职场文书
公司开业的祝贺语大全(60条)
2019/07/05 职场文书
Vue.js 带下拉选项的输入框(Textbox with Dropdown)组件
2021/04/17 Vue.js
Pandas数据类型之category的用法
2021/06/28 Python