vue+ts修改父组件属性的写法。

部分代码如下:

父组件:

<coupon  :modifyFlag.sync="flag" />

data() {

return {

flag:0

};

子组件:

<div class="receive" @click="changeTest">领取</div>

import Vue from "vue";

import { Component, Prop, Emit } from "vue-property-decorator";

@Component({

name: "Coupon",

filters: {

timeFormat(input: any) {

input = input.replace(/\-/g, "/"); //横杠的时间不能被识别,所以要替换程斜杠

let time = new Date(input);

let year = time.getFullYear(); //年

let month = time.getMonth() + 1; //月

let day = time.getDate(); //日

return `${year}年${month}月${day}日`;

}

}

})

export default class Coupon extends Vue {

//定义props,括号的是JS类型,冒号后是TS类型,叹号是必传值,问号是可选值

@Prop({ default: [] }) list!: [];

  //这里可以正常定义生命周期函数

created() {

this.list.forEach((item: any) => {

this.$set(item, "showRole", false);

});

}

changeTest(){

this.changeFlag(20);

}

//如果有参数但是元素事件上没有参数的时候,可以单独封装一下,交给调用函数传参

@Emit(‘update:modifyFlag‘)

changeFlag(n:number){

n=19;

console.log(n);

}

}

参考:

彻底明白VUE修饰符sync

https://www.jianshu.com/p/d42c508ea9de

vue-property-decorator用法

https://www.jianshu.com/p/d8ed3aa76e9b

原文地址:https://www.cnblogs.com/llcdbk/p/12088462.html

时间: 2024-07-30 16:46:30

vue+ts修改父组件属性的写法。的相关文章

vue子组件修改父组件值时报错

报错 Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "type" 问题 目前有三个组件 A组件引用了B组件 B组件里面有个props B组件引

vue2.0子组件修改父组件props数据的值

从vue1.0升级至2.0之后 prop的.sync被去除 因此直接在子组件修改父组件的值是会报错的如下: 目的是为了阻止子组件影响父组件的数据那么在vue2.0之后 如何在子组件修改父组件props传过来的值呢?思路是通过子组件$emit发射一个方法  如下: this.$emit('imgDataCallback', callbackUrl); 在父组件使用子组件的地方用v-on绑定这个自定义事件 如下: 然后在父组件定义这个方法 //获取imgurl        getImgData:

vue子组件修改父组件传递过来的值

这里不再赘述父子组件及子父组件传值,不懂的同学可以翻看我以前写过的关于两者传值的文章 父子组件传值:https://www.cnblogs.com/Sky-Ice/p/9267192.html 子父组件传值:https://www.cnblogs.com/Sky-Ice/p/9289922.html 直接进入正题,把一个布尔值传递给子组件,然后,在子组件中修改该值,会报错 Avoid mutating a prop directly since the value will be overwri

vue中修改第三方组件的样式不生效

问题 在使用element-ui时,有时候想要修改组件内的样式,但不成功,例如 <div class="test"> <el-button>按钮</el-button> </div> <style lang="less" scoped> .test{ .el-button span{ background:red; } } </style> 以上对.el-button span的样式不生效 问题

Vue中,父组件向子组件传值

1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属性绑定并赋值给子组件 5:子组件通过 props 接收父组件传递过的数据 6:查看 7:总结: 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在子组件标签中添加子组件props中创建的属性 把需要传给子组件的值赋给该属性 原文地址:https://www.cnblo

vue学习之父组件与子组件之间的交互

1.父组件数据传给子组件 父组件中的msgfather定义数据 在之组件中通过设置props来取得希望从父组件中获得的值 通过设置这两个属性就可以从父组件传数据到子组件 2.子组件传数据给父组件(这里只介绍$emit) 触发child-tell-me事件,并传参 "this is child message!" 在父组件会找到child-tell-me方法并执行.

Taro 中父组件传多个值到子组件, 不同页面传值, 子组件修改父组件值

1.父子组件传值需借助 中间ts文件 hook/context-manager.tsx // 使用hook给父子组件共享数组 import { createContext } from "@tarojs/taro"; export default createContext({}); 2.父组件 import TripContext from '../../hook/context-manager' import Trip_success from '../../components/

vue中修改第三方组件中的样式

项目在中修改第三方组件样式,但由于 scoped 属性的样式隔离,可能需要去除 scoped 或是另起一个 style .这些做法都会带来副作用(组件样式污染.不够优雅),样式穿透在css预处理器中使用才生效 我们可以使用 >>> 或 /deep/ 解决这一问题 <style scoped> 外层 >>> .el-checkbox { display: block; font-size: 26px; .el-checkbox__label { font-si

vue 简单实现父组件向子组件传值,简单来说就是子组件肆意妄为的调用父组件里后台返回的值

首先在于父子组件传值的方法很多,本人在这里只是简单描述一下一个组件里面引用了子组件,那么子组件如何才能获取父组件中后台返回的值呢? 首先调用组件相信大家都应该明白了(不明白的自己撸撸文档), <info-head :orderInfo="orderInfo" :changePrice="changePrice"></info-head> 上面的是父组件中引用的子组件,其中orderInfo为父组件中定义的接收后台返回的值需要向平常一样的去定义