1.什么是 props 

props 用于组件的传值,他的工作就是为了接受外面传过来的数据,是一个配置项,与data、el、ref 是一个级别的。

2.props 的使用

--1 先准备子组件 Text1.vue ,一个父组件 app.vue ,在 App.vue 中导入两个子组件

--2 在 App.vue 中 导入 text1.vue 组件

--3 在父组件中子组件标签里传数据给子组件

<template><div><text1 name= "张胜男" brith="2002" age="20"></text1></div>
</template>

--4  在子组件定义 props 对象,里面包含三个数据,在 template标签 中 div标签 里面使用此数据

 3.props 属性

    --1 props 数据有类型之分

我们先来看一下输出的结果,生日和年龄看似是数字类型,实际上是字符串类型,通过 Vue 调试工具可以看到是字符串类型。


在这种情况下:实现生日 +1 的功能,会怎样呢,会不会报错?

<template><div><text1 name= "张胜男" brith="2002 + 1" age="20"></text1></div>
</template>


可以看到并没有报错,但生日这项并没有像我们预期的一样是 2003,所有应该怎样操作?

--- 我们可以 在 brith 前面加一个 ' :' 符号冒号,再看看结果:

<template><div><text1 name= "张胜男" :brith="2002 + 1" age="20"></text1></div>
</template>

可以看见现在结果是我们想要的 2003。

同理我们把年龄前面加上冒号,为了确保正确在Vue控制台也可看见结果如下:


为了防止操作失误传错数据(虽然不影响显示,但是影响字符串拼接、数字计算)

我们就需要限制一下数据的类型。代码演示:

props: {"name": String,"brith": Number,"age": Number},

    --2 props 数据不可更改

如何实现年龄更改呢?

<button @click="changeAge">修改年龄</button>methods: {changeAge() {this.age = 88}},


--- 可以看见,年龄虽然可以修改,但是有个警告!

--- 解决方案:我们需要使用一个中间值 temp 接收传来的 props 数据,然后对 temp 更改即可。

  data() {return {temp: this.age}},methods: {changeAge() {this.temp = 88}},

注意:原来的年龄插值是 {{ age }},但是使用此方法, 年龄插值就需要改变为 {{ temp }}

     -- props 设置必传数据(数值不可为空),和属性默认值

用对象的方法定义单个数据:

props: {'name': {type: String,default: '刘德华',required: true},'brith': {type: Number},'age': {type: Number}},

如果在 App.vue 中不传数据,那结果会怎样?

解析:我们设置了 default: ' 刘德华 ',那么属性 name 就会取 ' 刘德华 '。

如果我们去掉 default 那一项,留下 required: true, 结果会怎样?

结果是会有警告:

Vue中的 props 属性相关推荐

  1. vue中的props对象

    vue中的props对象 1.props对象的定义 props其实是properties的缩写,props对象是用来定义属性的.props对象可以接受数组形式的参数又或者是对象形式的参数. 数组形式 ...

  2. [vue] vue中data的属性可以和methods中的方法同名吗?为什么

    [vue] vue中data的属性可以和methods中的方法同名吗?为什么 源码 中的 initData() 方法 if (methods && hasOwn(methods, ke ...

  3. Vue 中的 ref 属性详解

    Vue 中的 ref 属性详解 我们先来读一下vue的官方文档 我们来分析官方文档 首先ref的引用是相当于一个DOM节点(如果是子组件则指向的是其实例),而且是一个string类型的值. 通俗的将就 ...

  4. vue - 深入理解vue中的scoped属性

    文章目录 1,前言 2,scoped原理 3,父子组件使用scoped的不同情况 4,第一种:父组件未添加scoped,子组件未添加scoped 5,第二种:父组件未添加scoped,子组件添加sco ...

  5. vue中的ref属性

    vue中的ref属性   使用vue开发时经常会用到ref属性,ref属性有什么作用呢?我刚开始用的时候发现这个属性有点鸡肋,总是感觉可有可无,但是随着不断的使用vue,慢慢地发现它的作用还是挺重要的 ...

  6. vue 组件,props 属性 ,Vue 生命周期

    本文涉及3个内容: 1.vue  组件: 目录结构: 源码分析如下: <div id="container"><h3>爱吃什么水果? app 实例</ ...

  7. vue中的props

    StuProps.vue: <template><div class="props-container"><h1>我叫:{{name}}< ...

  8. VS创建props属性表并在新项目中导入props属性表

    创建props属性表过程见配置PCL的一个例子:VS2019配置PCL 上面一篇执行完现在生成了pclX64.props 创建一个新的项目: 创建好了之后,复制进来两个文件,那个pcd模板文件见上面那 ...

  9. Vue中的computed属性

    1.前言 本篇是Vue中最常用到的API之一computed属性,转载信息如下: 作者:gunelark 链接:https://www.cnblogs.com/gunelark/p/8492468.h ...

最新文章

  1. 脑植入芯片实现脑机交互,脑神经链会如星链般放大马斯克的光环吗
  2. Java中return结束循环,Java中break、continue、return在for循环中的使用
  3. 在RHEL 6.5上安装grid报错libcap.so.1
  4. Python 实现斐波那契数列
  5. 你的电脑已经成为肉鸡的六种现象
  6. 修改 VC 生成的 EXE 文件的图标
  7. python3.7 获取网络时间
  8. 电容式触摸按键原理调研总结
  9. html灯箱效果代码,WordPress纯代码实现图片灯箱lightbox效果
  10. 苹果手机打电话没有声音怎么回事_微信打电话没有声音
  11. 从零开始了解推荐系统全貌
  12. python从TXT导入两列数据绘图 直线多点等分坐标可视化
  13. ggsurvplot_combine R语言 一张图内画多条生存曲线
  14. 2069: [POI2004]ZAW
  15. php,ajax -->Uncaught SyntaxError: Unexpected end of JSON input at JSON.parse (<anonymous>)
  16. HTML .CSS实现购物车(cart)
  17. Spring Boot整合Freemarker
  18. 多闪遭起诉:头条与腾讯社交战争升级背后的难隐之痛
  19. 模板、皮肤、主题的定义
  20. 禁忌殿堂:大脑植入电极的是非功过

热门文章

  1. 华为OD机试题-java-华为机试题及答案
  2. 【Ambari】设置yarn队列资源为绝对值[memory=10240,vcores=12,yarn.io/gpu=4]
  3. 2023年中职网络安全竞赛——CMS网站渗透解析
  4. 北京国家会计学院副教授王亚星:智能会计和价值财务有力支撑企业高质量发展
  5. android第三方手势,Android手势---GestureDetector
  6. druid连接超时时间20分钟引起的血案
  7. 基于stm32硬件IIC的oled显示
  8. 【研究生学术英语读写教程翻译 中国科学院大学Unit8】
  9. 苹果+保时捷?新一轮“造车”潮,这些企业都在等什么
  10. java 失去焦点_Java并没有失去它的魔力