好家伙,

1.组件的props

props是组件的自定义属性,在封装通用组件的时候,合理的使用props可以极大的提高组件的复用性

来假设一下,如果我们需要两个组件分别显示不同的值

目录结构如下:

HelloWorld.vue中,

  <div>

   <h2>我的init值为{{ init }}</h2>

  </div>
</template> <script>
export default {
//props指向一个数组,
//允许使用者通过自定义属性,为当前的组件指定初始值
//定义属性的名字,是封装这自定义的(只要合法即可)
props:['init'],
}
</script> <style> </style>

Left.vue中,

<template>
<div>
<h1>我是Left组件</h1>
<HelloWorld init="5"/> </div>
</template>

Right.vue中,

<template>
<div>
<h1>我是Right组件</h1>
<HelloWorld init="10"/>
</div>
</template>

App.vue中

<template>
<div id="app"> <Left/>
<Right/> </div>
</template> <script> import Left from './components/Left.vue'
import Right from './components/Left.vue'
export default {
name: 'App',
components: { Left,
Right
}
}
</script>

对了,main.js中还需要对HelloWorld组件进行全局注册

import HelloWorld from './components/HelloWorld.vue'

Vue.component('HelloWorld',HelloWorld)

效果如下:

2.对props使用v-bind

若我们将前面的

<HelloWorld init="10">

改为

<HelloWorld :init="10"/>

那么这里的init中的10就是数字10

可进行计算处理的数字10

而原先的"10"是字符串

(下图可见两者区别)

 

3.props的值是只读的

vue规定:组件中封装的自定义属性是只读的,程序员不能直接修改props的值,否则会直接报错

 
 

4.实践

好了,现在我们来实现一个经典点击自增一按钮

(太TM经典了)

<template>
<div> <h2>我的init值为{{ count }}</h2>
<button @click="count += 1">加一</button>

</div>
</template> <script>
export default {
props:['init'],

 //count可读可写,所以使用count来进行自增操作
data(){
return{
count:this.init
}
},
}
</script>

效果如下:

上面是字符字符类型的init

下面是数值类型的init

5.props的default默认值

改为对象形式的props

props:{

    //自定义属性A:{/*配置选项*/}
//自定义属性B:{/*配置选项*/}
//自定义属性C:{/*配置选项*/}
init:{
//若果外界使用Count组件的时候,没有传递init属性,则默认值生效
default:10
}
},

当未对init的值进行设定时,默认为10

6.props的type值类型

在声明自定义属性时,可以通过type来定义属性的值类型.示例代码如下:

props:{

    init:{
//若果外界使用Count组件的时候,没有传递init属性,则默认值生效
default: 10, //init值的类型必须是Number数字
type:Number, }
},

7.props的required必填项

required校验你是否传值

若未传值,则报错,(即使有默认值的存在)

props:{

    init:{
//若果外界使用Count组件的时候,没有传递init属性,则默认值生效
default: 10, //init值的类型必须是Number数字
type:Number, //必须项校验
required:true }
},

That's all

第七十二篇:Vue组件的props的更多相关文章

  1. 前端(二十二)—— vue组件:局部组件、全局组件、父组件数据传到子组件、子组件数据传到父组件、父子组件实现todoList

    Vue组件 一.组件介绍 每一个组件都是一个vue实例 每个组件均具有自身的模板template,根组件的模板就是挂载点,根组件也可以显式书写模板,会替换掉挂载点 每个组件模板只能拥有一个根标签 子组 ...

  2. 第三十二篇:vue的响应式原理

    好家伙 什么是响应式?比较官方的回答: Vue.js 的核心包括一套"响应式系统". "响应式",是指当数据改变后,Vue 会通知到使用该数据的代码. 例如,视 ...

  3. Spring Cloud第十二篇 | 消息总线Bus

    ​ ​本文是Spring Cloud专栏的第十二篇文章,了解前十一篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring ...

  4. Python开发【第二十二篇】:Web框架之Django【进阶】

    Python开发[第二十二篇]:Web框架之Django[进阶]   猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...

  5. 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探

    SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...

  6. Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)

    第十二篇(书中 5.1节 内容) 昨天把 第4章完成了. 今天来看第5章. 接下来是 5.1节 的内容. 总结一下 5.1节 的重点: 1.如何制作一个公用按钮皮肤. 跟着做: 重点1:如何制作一个公 ...

  7. TNFE-Weekly[第七十二周已更新]

    前端行业发展飞速,新技术如雨后春笋般快速出现,尤其是各种小程序陆续推出,相关的信息.文章也铺天盖地的遍布在各处,我们有时候会困惑,不知道哪些信息对于自己是有价值的,那么TNFE-腾讯新闻前端团队启动了 ...

  8. vue第十二单元(vue中过渡效果的实现)

    第十二单元(vue中过渡效果的实现) #课程目标 熟练掌握transition组件的用法 熟练使用transition组件做过渡特效 熟练使用transition组件做动画特效 了解使用transit ...

  9. 13. 第十二篇 二进制安装kubelet

    文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...

随机推荐

  1. Java基础-JVM篇

    1.1 .线程 ​ 这里所说的线程指程序执行过程中的一个线程实体.JVM 允许一个应用并发执行多个线程.Hotspot JVM 中的 Java 线程与原生操作系统线程有直接的映射关系.当线程本地存储. ...

  2. CesiumJS 2022^ 源码解读[6] - 三维模型(ModelExperimental)新架构

    目录 1. ModelExperimental 的缓存机制 1.1. 缓存池 ResourceCache 1.2. 缓存对象的键设计 ResourceCacheKey 2. 三维模型的加载与解析 2. ...

  3. NC19916 [CQOI2010]扑克牌

    NC19916 [CQOI2010]扑克牌 题目 题目描述 你有n种牌,第i种牌的数目为 \(c_i\) .另外有一种特殊的牌:joker,它的数目是m.你可以用每种牌各一张来组成一套牌,也可以用一张 ...

  4. SpringBoot启动代码和自动装配源码分析

    ​ 随着互联网的快速发展,各种组件层出不穷,需要框架集成的组件越来越多.每一种组件与Spring容器整合需要实现相关代码.SpringMVC框架配置由于太过于繁琐和依赖XML文件:为了方便快速集成第三 ...

  5. 研发效能生态完整图谱&DevOps工具选型必看

    本文主要梳理了研发效能领域完整的方向图谱以及主流工具,其中对少部分工具也做了一些点评.看了之后,大家可以对研发效能这个领域有个整体认识,同时研发效能落地的时候也有对应的工具(黑话叫抓手)可以选择. 我 ...

  6. HashMap中的哈希函数分析

    首先我们要知道,在理想情况下的哈希表中,哈希函数生成的哈希值是value在数组中的下标,其范围是分布于负无穷到正无穷的整个实整数轴的.而在现实情况下,是不可能存在这么大的一个数组的.接下来分析Hash ...

  7. 如何优雅的升级 Flink Job?

    Flink 作为有状态计算的流批一体分布式计算引擎,会在运行过程中保存很多的「状态」数据,并依赖这些数据完成任务的 Failover 以及任务的重启恢复. 那么,请思考一个问题:如果程序升级迭代调整了 ...

  8. 如何在Excel/WPS表格中批量查询顺丰快递信息?

    如何在Excel/WPS表格中批量查询顺丰快递信息? 上期我们讲了如何在Excel/WPS表格中批量查询快递信息(还不知道的小伙伴可以看这里:https://zhuanlan.zhihu.com/p/ ...

  9. python代码是如何执行的?

    ​ 解释运行程序 回忆上次内容 py 文件的程序是按照顺序 一行行挨排解释执行的 我们可以 python3 -m pdb hello.py 来对程序调试 调试的目的是去除 bug 别害怕 bug bu ...

  10. 浅谈 exgcd

    众所周知欧几里得算法是: \[\gcd(a,b)=\gcd(b,a\bmod \,b) \] 也叫辗转相除法. 拓展欧几里得算法(exgcd),可以用来找到形如 \(ax+by=\gcd(a,b)\) ...