vue延迟渲染组件_Vue 动态组件渲染问题分析

本文深入分析了Vue中动态组件渲染时遇到的问题,当试图在App和Child组件之间切换时,由于Vue的选项策略合并及数据延迟初始化,导致实际渲染的始终是App。关键执行顺序包括Vue.extend生成构造器、data合并以及createComponent的处理。解决方案包括直接传入构造器或使用method避免data值合并策略。
摘要由CSDN通过智能技术生成

fire

读在最前面:

1、本文适用于有一定基础的vue开发者,需要了解基本的vue渲染流程

2、本文知识点涉及vue构造器以及选项策略合并、 渲染逻辑

问题描述:

Child继承自App,主程序通过true 和false来控制显示 Child 还是 App,在动态 中渲染出来的始终是App,代码如下

Vue.config.productionTip = false;

Vue.config.devtools = false;

// ----------------options---------------------

const optionsA = {

render: (h) => h('span', '我是options - 父'),

};

const optionsB = {

render: (h) => h('span', '我是options - 子'),

};

const App = Vue.extend({

template: `

当前组件: { {name}}

`,

data() {

return {

name: 'App',

node: optionsA,

}

}

});

const Child = App.extend({

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值