// Tags.Vue this。$ emit('xxx',this.selectedTags) //Money.Vue <Tags:data-source.sync =“ tags” @ xxx =“ yyy” /> yyy(zzz: string []){ console.log(zzz); } ``` - 改名:
// Tags.Vue
this。$ emit(‘update:selected’,this.selectedTags)
//Money.Vue
<Tags:data-source.sync =“ tags” @update:selected =“ onUpdateTags” />
onUpdateTags(tags:string []){
console.log(tags);
} ```
// Money.vue <布局class-prefix =“ layout”> <NumberPad @update:value =“ onUpdateAmout” /> <Types @update:value =“ onUpdateType” /> <Notes @update:value =“ onUpdateNotes“ /> <Tags:data-source.sync =” tags“ @update:value =” onUpdateTags“ /> </ Layout> 导出默认类Money扩展Vue { 标签= [”衣“,”食“,”住“,”行“] onUpdateTags(value:string []){ console.log(value); } onUpdateNotes(value:string){ console.log(value); } onUpdateType(value:string){ 控制台。
// Tag.vue衍生 类别的注释扩展了Vue { value =''; @Watch( '值') onValueChanged(值:字符串){ 此$ EMIT( '更新:值',值)。 } } ``` #### 4. TS中的类型声明-将所有数据记录`` ` 类型Record = { 标签!:字符串[] //!表示可以没有这个属性 注释:字符串 类型:字符串 数量:数字} record:Record = {标签:[],注释:'',类型:'-' ,金额:0} ` ` ` #### 5.把值重新传回类型,方便维护 - 如果你想给组件一个初始值,然后更新的时候时候,又要拿到最新的值,就用.sync
//Types.Vue
//这样就不需要之前的手表,并
替换类别Types扩展了Vue {
@Prop()替换值!:字符串;
selectType(值:字符串){
如果(值!“-” &&值!“+”){
抛出新错误(“类型未知”)
}
这个$ EMIT( '更新:值',值)
}
}
// Money.Vue
<类型:值=“record.type” @Update:值=“ onUpdateType” />
//可以
简写成<Types:value.sync =“ record.type” />```
saveRecord(){常量RECORD2 = JSON.parse(JSON.stringify(this.record)); this.recordList.push(RECORD2)的的console.log(this.recordList)}
if(版本===“ 0.0.1”){//数据库升级,数据迁移recordList.forEach(记录=> {record.createdAt =新日期(2020年)年)年)年)年)),0,0,1);})//保存数据window.localStorage.setItem(“ recordList”,JSON.stringify(recordList))本地存储.setItem(“版本”) ))””“ 0.0.2”)