update cli templates

This commit is contained in:
wxzhang 2022-08-15 20:21:48 +08:00
parent af148a30cd
commit ccad9d45c3
12 changed files with 255 additions and 277 deletions

View File

@ -4,8 +4,10 @@
"version": "0.0.0",
"scripts": {
"dev": "vite",
"dev:clean":"vite --force",
"build": "vite build",
"preview": "vite preview"
"preview": "vite preview",
"go":"pnpm voerkai18n extract && pnpm voerkai18n compile && vite"
},
"dependencies": {
"@voerkai18n/cli": "workspace:^1.0.11",

View File

@ -25,6 +25,7 @@ export default {
data() {
return {
language: this.i18n.activeLanguage,
tabIndex:0
}
},
watch: {
@ -41,21 +42,32 @@ export default {
</script>
<template>
<div>
<img alt="Vue logo" src="./assets/logo.png" />
<h1>{{ t("中华人民共和国") }} </h1>
<h2>{{ t("迎接中华民族的伟大复兴") }} </h2>
<China :title="t('中华人民共和国')" />
<Formatters />
<h5>默认语言{{ i18n.defaultLanguage }}</h5>
<h5>当前语言{{ i18n.activeLanguage.value }}</h5>
<button :key="lng.name" v-for="lng of i18n.languages" @click="i18n.activeLanguage = lng.name"
style="padding:8px;margin:8px;cursor:pointer"
:style="{ 'outline': lng.name === i18n.activeLanguage.value ? '2px red solid' : '' }">{{ lng.title
}}</button>
<button @click="i18n.activeLanguage = 'de'" style="padding:8px;margin:8px;cursor:pointer"
:style="{ 'outline': i18n.activeLanguage.value === 'de' ? '2px red solid' : '' }">德语</button>
<button @click="i18n.activeLanguage = 'jp'" style="padding:8px;margin:8px;cursor:pointer"
:style="{ 'outline': i18n.activeLanguage.value === 'jp' ? '2px red solid' : '' }">日语</button>
<h1 class="navbar" id="title">
VoerkaI18n多语言解决方案
<div class="menu" >
<button class="menuitem" :key="lng.name" v-for="lng of i18n.languages" @click="i18n.activeLanguage = lng.name"
:style="{ 'outline': lng.name === i18n.activeLanguage.value ? '2px red solid' : '' }">{{ lng.title
}}</button>
<button class="menuitem" @click="i18n.activeLanguage = 'de'"
:style="{ 'outline': i18n.activeLanguage.value === 'de' ? '2px red solid' : '' }">德语</button>
<button class="menuitem" @click="i18n.activeLanguage = 'jp'"
:style="{ 'outline': i18n.activeLanguage.value === 'jp' ? '2px red solid' : '' }">日语</button>
</div>
</h1>
<span><b>默认语言</b>{{ i18n.defaultLanguage }}&nbsp;&nbsp;&nbsp;&nbsp;<b>当前语言</b>{{ i18n.activeLanguage.value }}</span>
<div class="tabs">
<div class="tab" title="" >
<h3>{{ t("中华人民共和国") }} </h3>
<h3>{{ t("迎接中华民族的伟大复兴") }} </h3>
<China :title="t('中华人民共和国')" />
</div>
<div class="tab" style="flex:2;font-size:small">
<Formatters />
</div>
</div>
</div>
</template>
@ -65,8 +77,50 @@ export default {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
color: #2c3e50;
margin-top:80px;
}
.navbar{
position: fixed;
margin:0;
top:0;
left:0;
width: 100%;
height: 48px;
background: #298df1;
padding: 12px;
color:white;
text-align: left ;
}
.navbar>.menu{
float:right;
top:0;
margin:0px;
padding-right:20px;
}
.navbar>.menu>.menuitem{
padding:8px;
margin:8px;
cursor:pointer;
}
.tabs{
width:100%;
padding: 8px;
position: relative;
display: flex;
align-items: flex-start;
flex-direction: row;
}
.tabs > .tab{
position: relative;
padding: 8px;
background: #f3f3f3;
min-height: 500px;
margin:4px;
color:rgb(4, 123, 202);
flex:1;
border-radius: 8px;
}
</style>

View File

@ -10,7 +10,7 @@ const count = ref(0)
</script>
<template>
<div style="padding:16px;border:1px red solid;margin:0 auto;margin-bottom:16px;width:600px;">
<div>
<h2>{{ title }}</h2>
<h3>{{ t("成立于{}年",1949)}} </h3>
<h3>{{ t("首都:北京")}} </h3>

View File

@ -12,14 +12,16 @@ export default {
components: { China },
data() {
return {
NOW: null//new Date()
NOW: new Date(),
datetime:null
}
}
}
</script>
<template>
<div style="padding:16px;border:1px red solid;line-height:120%;margin:0 auto;margin-bottom:16px;width:600px;text-align:left;">
<div class="font-size:6px;">
{{t("Hello world!")}}
<table>
<thead>
<tr style="font-weight:bold;">
@ -28,9 +30,17 @@ export default {
</tr>
</thead>
<tbody>
<tr><td colspan="2" >
<select v-model="datetime" >
<option default :value="null">空值</option>
<option :value="NOW">现在</option>
</select>
</td></tr>
<tr><td colspan="2" ><b>日期</b></td></tr>
<tr><td>默认</td><td>{{ t("现在是{ value }", NOW) }}</td></tr>
<tr><td>date</td><td>{{ t("现在是{ value | date }", NOW) }}</td></tr>
<!-- <tr><td>默认</td><td>{{ t("现在是{ value }", NOW) }}</td></tr> -->
<!-- <tr><td>date</td><td>{{ t("现在是{ value | date }", datetime) }}</td></tr>
<tr><td>date|empty</td><td>{{ t("现在是{ value | date | empty }", datetime) }}</td></tr>
<tr><td>date|empty('无')</td><td>{{ t("现在是{ value | date | empty('无') }", datetime) }}</td></tr>
<tr><td>shortdate</td><td>{{ t("现在是{ value | shortdate }", NOW) }}</td></tr>
<tr><td>time</td><td>{{ t("现在是{ value | time }", NOW) }}</td></tr>
<tr><td>shorttime</td><td>{{ t("现在是{ value | shorttime }", NOW) }}</td></tr>
@ -50,7 +60,7 @@ export default {
<tr><td>millisecond</td><td>{{ t("现在是{ value | millisecond }", NOW) }}</td></tr>
<tr><td>timestamp</td><td>{{ t("现在是{ value | timestamp }", NOW) }}</td></tr>
<tr><td colspan="2" ><b>货币</b></td></tr>
<tr><td>currency-cny</td><td>{{ t("商品价格:{ value | currency('CNY','元整',3)}", 788741) }}</td></tr>
<tr><td>currency-cny</td><td>{{ t("商品价格:{ value | currency('CNY','元整',3)}", 788741) }}</td></tr> -->
<tr><td>currency</td><td>{{ t("商品价格:{ value | currency }", 788741) }}</td></tr>
<tr><td>capitalizeCurrency</td><td>{{ t("商品价格:{ value | capitalizeCurrency }", 788741) }}</td></tr>
<tr><td>capitalizeCurrency</td><td>{{ t("商品价格:{ value | capitalizeCurrency(true) }", 788741.35) }}</td></tr>

View File

@ -1,32 +1,33 @@
export default {
"1": "Hello world!",
"1": "Hello world!(EN)",
"2": "The People's Republic of China",
"3": "Welcome the great rejuvenation of the Chinese nation",
"4": "Founded in {}",
"5": "Capital: Beijing",
"6": "VoerkaI18n多语言解决方案 ",
"7": "Now is { value | date }",
"8": "Now is { value | shortdate }",
"9": "Now is { value | time }",
"10": "Now is { value | shorttime }",
"11": "Now is { value | year }",
"12": "Now is { value | month }",
"13": "Now is { value | day }",
"14": "Now is { value | weekdayValue }",
"15": "Now is { value | weekday }",
"16": "Now is { value | shortWeekday }",
"17": "Now is { value | monthName }",
"18": "Now is { value | shorMonthName }",
"19": "Now is { value | hour }",
"20": "Now is { value | hour12 }",
"21": "Now is { value | minute }",
"22": "Now is { value | second }",
"23": "Now is { value | millisecond }",
"24": "Now is { value | timestamp }",
"25": "Price: { value | currency }",
"26": "Price: { value | capitalizeCurrency }",
"27": "Now is { value }",
"28": "Price: { value | currency('CNY','元整',3)}",
"29": "Price:{ value | capitalizeCurrency(true) }",
"30": "Count: { value | number }"
"8": "Now is { value | date | empty }",
"9": "Now is { value | date | empty('无') }",
"10": "现在是{ value | shortdate }",
"11": "现在是{ value | time }",
"12": "现在是{ value | shorttime }",
"13": "现在是{ value | year }",
"14": "现在是{ value | month }",
"15": "现在是{ value | day }",
"16": "现在是{ value | weekdayValue }",
"17": "现在是{ value | weekday }",
"18": "现在是{ value | shortWeekday }",
"19": "现在是{ value | monthName }",
"20": "现在是{ value | shorMonthName }",
"21": "现在是{ value | hour }",
"22": "现在是{ value | hour12 }",
"23": "现在是{ value | minute }",
"24": "现在是{ value | second }",
"25": "现在是{ value | millisecond }",
"26": "现在是{ value | timestamp }",
"27": "商品价格:{ value | currency('US ','元整',3)}",
"28": "商品价格:{ value | currency }",
"29": "商品价格:{ value | capitalizeCurrency }",
"30": "商品价格:{ value | capitalizeCurrency(true) }",
"31": "商品数量:{ value | number }"
}

View File

@ -1,108 +0,0 @@
/**
格式化器用来对翻译文本内容中的插值变量进行格式化
比如将一个数字格式化为货币格式或者将一个日期格式化为友好的日期格式
- 以下定义了一些格式化器在中文场景下会启用这些格式化器
import dayjs from "dayjs";
const formatters = {
"*":{ // 在所有语言下生效的格式化器
$types:{...}, // 只作用于特定数据类型的默认格式化器
.... // 全局格式化器
},
cn:{
// 只作用于特定数据类型的格式化器
$types:{
Date:(value)=>dayjs(value).format("YYYY年MM月DD日 HH:mm:ss"),
},
date:(value)=>dayjs(value).format("YYYY年MM月DD日")
bjTime:(value)=>"北京时间"+ value,
[格式化器名称]:(value)=>{...},
[格式化器名称]:(value)=>{...},
[格式化器名称]:(value)=>{...},
},
en:{
$types:{
Date:(value)=>dayjs(value).format("YYYY/MM/DD HH:mm:ss"), // 默认的格式化器
},
date:(value)=>dayjs(value).format("YYYY/MM/DD")
bjTime:(value)=>"BeiJing "+ value,
[格式化器名称]:(value)=>{...},
[格式化器名称]:(value)=>{...},
[格式化器名称]:(value)=>{...},
}
}
- 在翻译函数中使用格式化器的方法,示例如下
t("Now is { value | date | bjTime }",{value: new Date()})
其等效于
t(`Now is ${bjTime(date(value))",{value: new Date()})
由于value分别经过两个管道符转换上一个管道符的输出作为下一个管道符的输入,可以多次使用管道符
最终的输出结果
中文: "现在是北京时间2022年3月1日"
英文: "Now is BeiJing 2022/03/01"
*
*/
export default{
// 在所有语言下生效的格式化器
"*":{
//[格式化名称]:(value)=>{...},
//[格式化名称]:(value,arg)=>{...},
},
// 在所有语言下只作用于特定数据类型的格式化器
$types:{
},
zh:{
$types:{
// 所有类型的默认格式化器
// "*":{
// },
// Date:{
// },
// Number:{
// },
// String:{
// },
// Array:{
// },
// Object:{
// }
}
},
en:{
$types:{
// 所有类型的默认格式化器
// "*":{
// },
// Date:{
// },
// Number:{
// },
// String:{
// },
// Array:{
// },
// Object:{
// }
}
}
}

View File

@ -6,27 +6,28 @@ export default {
"首都:北京": 5,
"VoerkaI18n多语言解决方案 ": 6,
"现在是{ value | date }": 7,
"现在是{ value | shortdate }": 8,
"现在是{ value | time }": 9,
"现在是{ value | shorttime }": 10,
"现在是{ value | year }": 11,
"现在是{ value | month }": 12,
"现在是{ value | day }": 13,
"现在是{ value | weekdayValue }": 14,
"现在是{ value | weekday }": 15,
"现在是{ value | shortWeekday }": 16,
"现在是{ value | monthName }": 17,
"现在是{ value | shorMonthName }": 18,
"现在是{ value | hour }": 19,
"现在是{ value | hour12 }": 20,
"现在是{ value | minute }": 21,
"现在是{ value | second }": 22,
"现在是{ value | millisecond }": 23,
"现在是{ value | timestamp }": 24,
"商品价格:{ value | currency }": 25,
"商品价格:{ value | capitalizeCurrency }": 26,
"现在是{ value }": 27,
"商品价格:{ value | currency('CNY','元整',3)}": 28,
"商品价格:{ value | capitalizeCurrency(true) }": 29,
"商品数量:{ value | number }": 30
"现在是{ value | date | empty }": 8,
"现在是{ value | date | empty('无') }": 9,
"现在是{ value | shortdate }": 10,
"现在是{ value | time }": 11,
"现在是{ value | shorttime }": 12,
"现在是{ value | year }": 13,
"现在是{ value | month }": 14,
"现在是{ value | day }": 15,
"现在是{ value | weekdayValue }": 16,
"现在是{ value | weekday }": 17,
"现在是{ value | shortWeekday }": 18,
"现在是{ value | monthName }": 19,
"现在是{ value | shorMonthName }": 20,
"现在是{ value | hour }": 21,
"现在是{ value | hour12 }": 22,
"现在是{ value | minute }": 23,
"现在是{ value | second }": 24,
"现在是{ value | millisecond }": 25,
"现在是{ value | timestamp }": 26,
"商品价格:{ value | currency('CNY','元整',3)}": 27,
"商品价格:{ value | currency }": 28,
"商品价格:{ value | capitalizeCurrency }": 29,
"商品价格:{ value | capitalizeCurrency(true) }": 30,
"商品数量:{ value | number }": 31
}

View File

@ -1,6 +1,7 @@
import messageIds from "./idMap.js" // 语言ID映射文件
import { translate,i18nScope } from "./runtime.js" // 运行时
import runtime from "./runtime.js" // 运行时
const { translate,i18nScope } = runtime
import defaultFormatters from "./formatters/zh.js" // 默认语言格式化器
const activeFormatters = defaultFormatters // 激活语言格式化器
@ -44,6 +45,7 @@ const loaders = {
const scope = new i18nScope({
...scopeSettings, // languages,defaultLanguage,activeLanguage,namespaces,formatters
id : "vueapp", // 当前作用域的id自动取当前工程的package.json的name
debug : false, // 是否在控制台输出高度信息
default : defaultMessages, // 默认语言包
messages : activeMessages, // 当前语言包
idMap : messageIds, // 消息id映射列表

View File

@ -1,212 +1,219 @@
{
"Hello world!": {
"en": "Hello world!",
"en": "Hello world!(EN)",
"$file": [
"App.vue"
],
"de": "Hello world!"
"de": "Hello world!(DE)"
},
"中华人民共和国": {
"en": "The People's Republic of China",
"$file": [
"App.vue"
],
"de": "中华人民共和国"
"de": "中华人民共和国(DE)"
},
"迎接中华民族的伟大复兴": {
"en": "Welcome the great rejuvenation of the Chinese nation",
"$file": [
"App.vue"
],
"de": "迎接中华民族的伟大复兴"
"de": "迎接中华民族的伟大复兴(DE)"
},
"成立于{}年": {
"en": "Founded in {}",
"$file": [
"components\\china.vue"
],
"de": "成立于{}年"
"de": "成立于{}年(DE)"
},
"首都:北京": {
"en": "Capital: Beijing",
"$file": [
"components\\china.vue"
],
"de": "首都:北京"
"de": "首都:北京(DE)"
},
"VoerkaI18n多语言解决方案 ": {
"en": "VoerkaI18n多语言解决方案 ",
"$file": [
"App.vue"
],
"de": "VoerkaI18n多语言解决方案 "
"de": "VoerkaI18n多语言解决方案 (DE)"
},
"现在是{ value | date }": {
"en": "Now is { value | date }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | date }"
"de": "DE Now is { value | date }(DE)"
},
"现在是{ value | date | empty }": {
"en": "Now is { value | date | empty }",
"de": "Now is { value | date | empty }(DE)",
"$file": [
"components\\formatters.vue"
]
},
"现在是{ value | date | empty('无') }": {
"en": "Now is { value | date | empty('无') }",
"de": "Now is { value | date | empty('无') } (DE) ",
"$file": [
"components\\formatters.vue"
]
},
"现在是{ value | shortdate }": {
"en": "Now is { value | shortdate }",
"en": "现在是{ value | shortdate }",
"de": "现在是{ value | shortdate }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | shortdate }"
]
},
"现在是{ value | time }": {
"en": "Now is { value | time }",
"en": "现在是{ value | time }",
"de": "现在是{ value | time }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | time }"
]
},
"现在是{ value | shorttime }": {
"en": "Now is { value | shorttime }",
"en": "现在是{ value | shorttime }",
"de": "现在是{ value | shorttime }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | shorttime }"
]
},
"现在是{ value | year }": {
"en": "Now is { value | year }",
"en": "现在是{ value | year }",
"de": "现在是{ value | year }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | year }"
]
},
"现在是{ value | month }": {
"en": "Now is { value | month }",
"en": "现在是{ value | month }",
"de": "现在是{ value | month }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | month }"
]
},
"现在是{ value | day }": {
"en": "Now is { value | day }",
"en": "现在是{ value | day }",
"de": "现在是{ value | day }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | day }"
]
},
"现在是{ value | weekdayValue }": {
"en": "Now is { value | weekdayValue }",
"en": "现在是{ value | weekdayValue }",
"de": "现在是{ value | weekdayValue }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | weekdayValue }"
]
},
"现在是{ value | weekday }": {
"en": "Now is { value | weekday }",
"en": "现在是{ value | weekday }",
"de": "现在是{ value | weekday }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | weekday }"
]
},
"现在是{ value | shortWeekday }": {
"en": "Now is { value | shortWeekday }",
"en": "现在是{ value | shortWeekday }",
"de": "现在是{ value | shortWeekday }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | shortWeekday }"
]
},
"现在是{ value | monthName }": {
"en": "Now is { value | monthName }",
"en": "现在是{ value | monthName }",
"de": "现在是{ value | monthName }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | monthName }"
]
},
"现在是{ value | shorMonthName }": {
"en": "Now is { value | shorMonthName }",
"en": "现在是{ value | shorMonthName }",
"de": "现在是{ value | shorMonthName }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | shorMonthName }"
]
},
"现在是{ value | hour }": {
"en": "Now is { value | hour }",
"en": "现在是{ value | hour }",
"de": "现在是{ value | hour }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | hour }"
]
},
"现在是{ value | hour12 }": {
"en": "Now is { value | hour12 }",
"en": "现在是{ value | hour12 }",
"de": "现在是{ value | hour12 }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | hour12 }"
]
},
"现在是{ value | minute }": {
"en": "Now is { value | minute }",
"en": "现在是{ value | minute }",
"de": "现在是{ value | minute }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | minute }"
]
},
"现在是{ value | second }": {
"en": "Now is { value | second }",
"en": "现在是{ value | second }",
"de": "现在是{ value | second }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | second }"
]
},
"现在是{ value | millisecond }": {
"en": "Now is { value | millisecond }",
"en": "现在是{ value | millisecond }",
"de": "现在是{ value | millisecond }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | millisecond }"
]
},
"现在是{ value | timestamp }": {
"en": "Now is { value | timestamp }",
"en": "现在是{ value | timestamp }",
"de": "现在是{ value | timestamp }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value | timestamp }"
},
"商品价格:{ value | currency }": {
"en": "Price: { value | currency }",
"$file": [
"components\\formatters.vue"
],
"de": "商品价格:{ value | currency }"
},
"商品价格:{ value | capitalizeCurrency }": {
"en": "Price: { value | capitalizeCurrency }",
"$file": [
"components\\formatters.vue"
],
"de": "商品价格:{ value | capitalizeCurrency }"
},
"现在是{ value }": {
"en": "Now is { value }",
"$file": [
"components\\formatters.vue"
],
"de": "现在是{ value }"
]
},
"商品价格:{ value | currency('CNY','元整',3)}": {
"en": "Price: { value | currency('CNY','元整',3)}",
"en": "商品价格:{ value | currency('US ','元整',3)}",
"de": "商品价格:{ value | currency('CNY','元整',3)}",
"$file": [
"components\\formatters.vue"
],
"de": "商品价格:{ value | currency('CNY','元整',3)}"
]
},
"商品价格:{ value | currency }": {
"en": "商品价格:{ value | currency }",
"de": "商品价格:{ value | currency }",
"$file": [
"components\\formatters.vue"
]
},
"商品价格:{ value | capitalizeCurrency }": {
"en": "商品价格:{ value | capitalizeCurrency }",
"de": "商品价格:{ value | capitalizeCurrency }",
"$file": [
"components\\formatters.vue"
]
},
"商品价格:{ value | capitalizeCurrency(true) }": {
"en": "Price:{ value | capitalizeCurrency(true) }",
"en": "商品价格:{ value | capitalizeCurrency(true) }",
"de": "商品价格:{ value | capitalizeCurrency(true) }",
"$file": [
"components\\formatters.vue"
],
"de": "商品价格:{ value | capitalizeCurrency(true) }"
]
},
"商品数量:{ value | number }": {
"en": "Count: { value | number }",
"en": "商品数量:{ value | number }",
"de": "商品数量:{ value | number }",
"$file": [
"components\\formatters.vue"
],
"de": "商品数量:{ value | number }"
]
}
}

View File

@ -1,6 +1,7 @@
{{if moduleType === "esm"}}
import messageIds from "./idMap.js" // 语言ID映射文件
{{if inlineRuntime }}import { translate,i18nScope } from "./runtime.js" // 运行时
{{if inlineRuntime }}import runtime from "./runtime.js" // 运行时
const { translate,i18nScope } = runtime
import defaultFormatters from "./formatters/{{defaultLanguage}}.js" // 默认语言格式化器
{{if defaultLanguage === activeLanguage}}const activeFormatters = defaultFormatters{{else}}import activeFormatters from "./formatters/{{activeLanguage}}.js"{{/if}} // 激活语言格式化器
{{else}}import { translate,i18nScope } from "@voerkai18n/runtime"

View File

@ -30,7 +30,7 @@
*/
{{if moduleType === "esm"}}
export default{{else}}module.exports = {{/if}}{
export default{{else}}module.exports = {{/if}} {
// 格式化器参数
$config:{

View File

@ -15,11 +15,19 @@ import { computed,reactive,ref } from "vue"
function forceUpdate(app){
function updateComponent(inst){
if(inst && inst.update) inst.update()
if(inst.subTree && inst.subTree.children){
inst.subTree.children.forEach( vnode=>{
if(vnode && vnode.component) updateComponent(vnode.component)
})
if(!inst) return
if(inst.update) inst.update()
if(inst.subTree){
if(inst.subTree.children){
inst.subTree.children.forEach( vnode=>{
if(vnode && vnode.component) updateComponent(vnode.component)
})
}
if(inst.subTree.dynamicChildren){
inst.subTree.dynamicChildren.forEach( vnode=>{
if(vnode && vnode.component) updateComponent(vnode.component)
})
}
}
}
try{