语法:@Prop(options: (PropOptions | Constructor[] | Constructor) = {})参数说明:@Prop装饰器接收一个参数,这个参数可以有三种写法:Constructor例如String,Number,Boolean等,指定 prop 的类型;Constructor[]指定 prop 的可选类型;PropOptions可以使用以下选项:type,default,required,validator。
<!--* @FilePath: \hello-typescript\src\components\Child.vue
-->
<template><div style="border: 1px solid black;padding: 2rem;"><h1>Child Component</h1><span>{{pMsg}}</span><br/><!-- <span>{{prMsg}}</span><br/> --><span>{{child}}</span><br/><span>{{childA}}</span><br/><span>{{childB}}</span><br/><span>{{childC}}</span><br/><input type="text" :value="value" @input="changed" placeholder="please write something..."/></div>
</template>
<script lang="ts">
// InjectReactive
import { Component, Model, Vue, Emit, Inject, Prop } from 'vue-property-decorator'@Component
export default class Chlid extends Vue {// data 数据范畴// model 数据绑定 也属于data 数据范畴,属于本地成员变量数据// 获取父组件关于input输入框中 value变量的绑定值 model 绑定为动态双向绑定@Model('input') value!: boolean// props 数据范畴 !表示不需要构造器进行数据初始化// 必要参数 数据类型 字符串 或 数字 只读 单向同步数据,如果利用prop反向同步数据会报错@Prop({ type: [String, Number], required: true }) readonly child!: string | number// 非必须参数@Prop(Number) readonly childA!: number// 非必传参数,拥有默认值@Prop({ default: 'default value' }) readonly childB!: string// 非必传 需要构建器初始化 仅一个参数时默认为type@Prop([String, Boolean]) readonly childC: string | boolean | undefined// 转发input事件,动作名称叫input,parent中绑定名称也应交做input@Emit('input')// eslint对any类型警告,可以在package.json中关闭 也可以对指定地方关闭// eslint-disable-next-line @typescript-eslint/no-explicit-anychanged (event: any) {return event.target.value}
}
</script>
<!--* @FilePath: \hello-typescript\src\views\Parent.vue
-->
<template><div><h1>Parent</h1><Child v-model="content" @input="childChange" :child="content" :childA="childA" :childB="childB" :childC="childC"></Child><br/><p><b>Child 与 Parent 绑定的内容 => {{content}}</b></p></div>
</template>
<script lang="ts">
// ProvideReactive
import { Component, Vue, Provide } from 'vue-property-decorator'
import Child from '@/components/Child.vue'
@Component({components: {Child}
})
export default class Parent extends Vue {// data 范畴的数据// 一个组件只会有一个 v-modelcontent = '初始化内容'childA = 1childB = 'B'childC = true// methods// eslint-disable-next-line @typescript-eslint/no-explicit-anyprivate childChange (val: any, event: any) {window.console.log('val', val)window.console.log('event', event)// 非响应式数据this.msg = val// 修改propthis.childB = val}
}
</script>

Vue Typescript @Prop相关推荐

  1. Vue + TypeScript + Element 搭建简洁时尚的博客网站及踩坑记

    前言 本文讲解如何在 Vue 项目中使用 TypeScript 来搭建并开发项目,并在此过程中踩过的坑 . TypeScript 具有类型系统,且是 JavaScript 的超集,TypeScript ...

  2. vue-property-decorator vue typescript写法

    什么是Typescript TypeScript 是一种由微软开发的自由和开源的编程语言,它是 JavaScript 的一个超集,扩展了 JavaScript 的语法.作者是安德斯大爷, Delphi ...

  3. vue + typescript 父子组件传值记录

    为什么80%的码农都做不了架构师?>>>    typescript 使用 vue-property-decorator 插件后 组件通信 做一个记录 1. 父传子 父: <s ...

  4. Vue+TypeScript使用教程-快速入门

    目前Vue CLI已经内置了TypeScript工具支持 一.使用 TypeScript 创建工程 vue create vue-ts 选择Manually Select Features 然后选择自 ...

  5. Vue—Typescript

    Vue-cli推出了3.0,自带了Pwa和Typescript,尝试了下发现Typescript用起来十分方便,这里简单介绍下. 这次脚手架项目中用到了2个插件,vue-class-component ...

  6. vue ts prop

    a.vue 接收组件传过来的参数 @Prop() private viewPointData!: any; b.vue 定义: resData:any; 后台传过来的resData赋值给this.re ...

  7. Vue.js Prop

    Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中的模板时,camel ...

  8. vue的Prop属性

    转载自  Prop Prop 的大小写 (camelCase vs kebab-case) HTML 中的特性名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符.这意味着当你使用 DOM 中 ...

  9. vue组件 Prop传递数据

    组件实例的作用域是孤立的.这意味着不能(也不应该)在子组件的模板内直接引用父组件的数据.要让子组件使用父组件的数据,我们需要通过子组件的props选项. prop 是单向绑定的:当父组件的属性变化时, ...

最新文章

  1. latex Label ' ' multiply defined
  2. 7. Python运算符之逻辑、成员、身份运算符及优先级
  3. 用Docker搭建PHP开发环境
  4. Jchatting通过Sina SAE云开发平台高级开发者认证
  5. android studio安装在其他盘,Android Studio配置移动到D盘(亲测)
  6. [转载] js 读取和输出txt文件
  7. IOS开发基础知识--碎片32
  8. Eclipse 安装Gradle插件
  9. 7. SQL -- 创建数据库(表,字段)
  10. 计算机里的文件丢失6,丢失的文件怎么恢复?腾讯电脑管家恢复电脑丢失文件的方法介绍...
  11. 获取Shell(提权)后的操作(windows、Linux)
  12. html5中不再支持的元素
  13. 华为电脑c盘哪些文件可以删除,c盘可以删除哪些文件
  14. Web前端性能优化——CSS优化
  15. Python正则表达式大全
  16. 【新手基础教程】 硬件加速的图像处理
  17. Ventana Research|是时候把指标中台纳入企业数据架构了!
  18. vscode配置和快捷键
  19. Material Design学习
  20. 篮球队员5V5分组战力差最小

热门文章

  1. 学3d游戏建模要用到什么软件?一般用哪个软件?
  2. linux双显卡配置_linux双显卡配置 linux网络配置
  3. 关于NetCore+饿了么开放平台+奇门+聚石塔对接的解释说明
  4. 微信H5页面分享案例模版
  5. 第六章 北京奥林匹克公园三维场景网络发布应用
  6. ElementUI之el-pagination样式修改(小三角、“前往”、页码数)
  7. android 触摸屏部分失灵,触摸屏失灵修复小技巧
  8. EtherCAT从站调试测试
  9. python对excel筛选提取文本中数字_Python,从Excel列中提取数字并作为outpu写入
  10. solidity msg.sender.transfer发送给谁