黄聪

论SEO对人类的重要性,请看我的博客:hcsem.com

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::
  884 随笔 :: 0 文章 :: 903 评论 :: 389万 阅读

方法一:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import Vue from 'vue'
 
/**
 * @param Component 组件实例的选项对象
 * @param props 组件实例中的prop
 */
export function create(Component, props) {
 const comp = new (Vue.extend(Component))({ propsData: props }).$mount()
  
 document.body.appendChild(comp.$el)
 
 comp.remove = () => {
  document.body.removeChild(comp.$el)
 
  comp.$destroy()
 }
 
 return comp
}
复制代码

 

方式二

复制代码
import Vue from 'vue'
 
export function create(Component, props) {
 // 借鸡生蛋new Vue({render() {}}),在render中把Component作为根组件
 const vm = new Vue({
  // h是createElement函数,它可以返回虚拟dom
  render(h) {
   console.log(h(Component,{ props }));
    
   // 将Component作为根组件渲染出来
   // h(标签名称或组件配置对象,传递属性、事件等,孩子元素)
   return h(Component, { props })
  }
 }).$mount() // 挂载是为了把虚拟dom变成真实dom
 // 不挂载就没有真实dom
 // 手动追加至body
 // 挂载之后$el可以访问到真实dom
 document.body.appendChild(vm.$el)
 
 console.log(vm.$children);
  
 // 实例
 const comp = vm.$children[0]
 
 // 淘汰机制
 comp.remove = () => {
  // 删除dom
  document.body.removeChild(vm.$el)
 
  // 销毁组件
  vm.$destroy()
 }
 
 // 返回Component组件实例
 return comp
}
复制代码

 

posted on   黄聪  阅读(1025)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
历史上的今天:
2017-04-15 黄聪:CR2格式批量转换JPG(美图看看)
2012-04-15 黄聪:tor 解决 连接中继目录failed 没有可用的链路
2011-04-15 黄聪:一些文件上传组件(Flash,JQuery,asp,php,js,AJAX)
2010-04-15 黄聪:WordPress模板基本文件和常见函数调用代码
2010-04-15 黄聪:CSS+DIV 设置圆角边框加阴影效果
点击右上角即可分享
微信分享提示