单文件组件(.vue)在指定位置处挂载,以及动态加载组件


title: 单文件组件(.vue)在指定位置处挂载,以及动态加载组件
tags: vue,挂载,SCF,动态加载组件
grammar_cjkRuby: true

SCF指定位置挂载(延迟挂载)

  当使用Vue的自定义组件,做类似于JQuery那种现在js新建节点,然后加到页面指定位置,发现无法像JQuery那样,直接使用下面这种就能加载到指定位置

    $("<div></div>").appendTo(xxx)

  SCF的处理办法是使用 Vue.extend() 将导入的子组件,转为Vue的类 VueComponent , 再使用 $mount() 方法去挂载

    import test from "./test";

    let mountTest=Vue.extend(test);//将导入组件转为类
    let tt=new mountTest().$mount("#test");//实例化组件类,挂载到 #test

这样是和下面这种常用的写法是一样的

    <div>
        <test></test>
    </dev>

  这是个比较完美无中生有的动态挂载子组件的方法,不用在components上声明,也不用在html预先写子组件的标签,但是还是得先import。
  这个可以单独写个引入js文件,负责引入一个文件夹下的所有js或vue文件,这样你只需要将SCF放到这个文件夹下就可以了。

动态加载组件

    let app=new Vue({
        ...,
        components:{
            child:() => import('../components/' + name + '.vue')
        }
    })

这样就可以根据name去动态加载组件,并根据指定挂载,就能避开在html中写 引入的组件的标签了

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值