第七十二篇:Vue组件的props
好家伙,
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的更多相关文章
- 前端(二十二)—— vue组件:局部组件、全局组件、父组件数据传到子组件、子组件数据传到父组件、父子组件实现todoList
Vue组件 一.组件介绍 每一个组件都是一个vue实例 每个组件均具有自身的模板template,根组件的模板就是挂载点,根组件也可以显式书写模板,会替换掉挂载点 每个组件模板只能拥有一个根标签 子组 ...
- 第三十二篇:vue的响应式原理
好家伙 什么是响应式?比较官方的回答: Vue.js 的核心包括一套"响应式系统". "响应式",是指当数据改变后,Vue 会通知到使用该数据的代码. 例如,视 ...
- Spring Cloud第十二篇 | 消息总线Bus
本文是Spring Cloud专栏的第十二篇文章,了解前十一篇文章内容有助于更好的理解本文: Spring Cloud第一篇 | Spring Cloud前言及其常用组件介绍概览 Spring ...
- Python开发【第二十二篇】:Web框架之Django【进阶】
Python开发[第二十二篇]:Web框架之Django[进阶] 猛击这里:http://www.cnblogs.com/wupeiqi/articles/5246483.html 博客园 首页 ...
- 跟我学SpringCloud | 第十二篇:Spring Cloud Gateway初探
SpringCloud系列教程 | 第十二篇:Spring Cloud Gateway初探 Springboot: 2.1.6.RELEASE SpringCloud: Greenwich.SR1 如 ...
- Egret入门学习日记 --- 第十二篇(书中 5.1节 内容)
第十二篇(书中 5.1节 内容) 昨天把 第4章完成了. 今天来看第5章. 接下来是 5.1节 的内容. 总结一下 5.1节 的重点: 1.如何制作一个公用按钮皮肤. 跟着做: 重点1:如何制作一个公 ...
- TNFE-Weekly[第七十二周已更新]
前端行业发展飞速,新技术如雨后春笋般快速出现,尤其是各种小程序陆续推出,相关的信息.文章也铺天盖地的遍布在各处,我们有时候会困惑,不知道哪些信息对于自己是有价值的,那么TNFE-腾讯新闻前端团队启动了 ...
- vue第十二单元(vue中过渡效果的实现)
第十二单元(vue中过渡效果的实现) #课程目标 熟练掌握transition组件的用法 熟练使用transition组件做过渡特效 熟练使用transition组件做动画特效 了解使用transit ...
- 13. 第十二篇 二进制安装kubelet
文章转载自:https://mp.weixin.qq.com/s?__biz=MzI1MDgwNzQ1MQ==&mid=2247483842&idx=1&sn=1ef1cb06 ...
随机推荐
- ssh隧道连接的方式连接数据库
最好用xshell做隧道连接,其他工具没接触过过 1.先新建一个会话 2.点进刚刚建好的连接,右击属性 3.点进隧道,添加,输入映射到本地的配置 4.完成之后用数据库连接工具连接即可 参考连接: ht ...
- C# 读写文件从用户态切到内核态,到底是个什么流程?
一:背景 1. 一个很好奇的问题 我们在学习 C# 的过程中,总会听到一个词叫做 内核态 ,比如说用 C# 读写文件,会涉及到代码从 用户态 到 内核态 的切换,用 HttpClient 获取远端的数 ...
- 一款超级好用的3Dmax模型插件 支持模型多格式批量转换
对于模型设计师来说模型格式转换是最常见的事,但是每一款建模软件所支持的格式各有不同,模型互导操作太麻烦 为了解决这个难题,老子云平台研发了一款基于3dmax软件的模型格式转换插件,支持多种模型格式想换 ...
- 一次 MySQL 误操作导致的事故,「高可用」都顶不住了!
这是悟空的第 152 篇原创文章 官网:www.passjava.cn 你好,我是悟空. 上次我们项目不是把 MySQL 高可用部署好了么,MySQL 双主模式 + Keepalived,来保证高可用 ...
- RPA应用场景-账套建立
所涉人工数量5操作频率 不定时 场景流程 1.客户按照项目开设专项财务管理,每个项目需要在初期建立自己的账套: 2.运营专员通过邮件发送账套建立申请: 3.根据申请进入金蝶运维后台,依据规则完成账套建 ...
- sql-DDL-操作数据库与表
1. 操作数据库:CRUD oracle应该是没有操作数据库的SQL oracl创建数据库通过数据库提供的工具来新建数据库 windows版oracle新建数据库 C(Create):创建 creat ...
- sql-DCL用户及权限管理及其他常用命令-mysql
查看系统信息 SHOW PROCESSLIST -- 显示哪些线程正在运行 SHOW VARIABLES -- 显示系统变量信息 SELECT now(), user(), version(); -- ...
- SQL语句的整理
mysql语句的整理 1.SQL DML 和 DDL 可以把 SQL 分为两个部分:数据操作语言 (DML) 和 数据定义语言 (DDL). SQL (结构化查询语言)是用于执行查询的语法.但是 SQ ...
- [ARC087D] Squirrel Migration 补题记录
题目链接 简要题意: 给你一个\(N\)个节点的树,求一个\(1\cdots N\)的排列\((p_1,p_2,\cdots p_N)\) ,使得\(\sum dist(i,p_i)\)最大. 求这样 ...
- 如何编写测试团队通用的Jmeter脚本
平时学习.工作过程中,编写的一些jmeter脚本,相信大多数都遇到过这个问题.那就是:如果换一台电脑运行,文件路径不一样,会导致运行失败. 前不久,自己就真真切切遇到过一回,A同学写了个脚本用于压测, ...