Vue——props配置
文章目录
- 需求
- props配置
- props配置简单接收——数组形式
- props配置接收——对象形式
- props配置接收——对象形式2
- props配置分析
- props的优先级
需求
一个展示学生信息的组件
Student.vue:
<template><!-- 组件的结构,相当于非单文件中的 template配置--><div class="demo"><h2>名字:{{name}}</h2><h2>年龄:{{ age }}</h2></div>
</template>
<script>
// 组件交互的代码(数据、方法),相当于非单文件中的出了template的配置
export default {name:'StudentVue',data() {return {name: "yang",age: 18,};},
}</script>
<style>/* 组建的样式 */
.demo{background: green;
}
</style>
APP.VUE:
<template><div><Student/></div>
</template>
<script>
//引入组件
import Student from './components/Student'
export default {name: 'App',components: {Student},data() {return {msg:"欢迎!!!"}},}
</script><style>
</style>
输出:
需求:学生页面的数据是动态传入的,而不是写死的——引入props配置
props配置
App.vue传入数据的时候通标签的属性传入,
Student.vue中通过 props配置进行引入。
- 注意: 传递的属性名要和props配置的接收的名字要一致。
props配置简单接收——数组形式
props: ['属性名','属性名']
app.vue;
<template><div><Student name='张三' age="20"/></div>
</template>
<script>
//引入组件
import Student from './components/Student'
export default {name: 'App',components: {Student},data() {return {msg:"欢迎!!!"}},}
</script><style>
</style>
student.vue
<template><!-- 组件的结构,相当于非单文件中的 template配置--><div class="demo"><h2>名字:{{name}}</h2><h2>年龄:{{ age }}</h2></div>
</template>
<script>
// 组件交互的代码(数据、方法),相当于非单文件中的出了template的配置
export default {name:'StudentVue',props: ['name','age']
}</script>
<style>/* 组建的样式 */
.demo{background: green;
}
</style>
props配置接收——对象形式
可以对接收参数的数据格式进行限制:
props: {name: String,age:Number}
props配置接收——对象形式2
可以对接收参数的数据格式进行限制,同时可以限制属性是否是必需的,也可以设置默认值
props: {name: {type: String,required:true,},age: {type: Number,default:99},}
props配置分析
- 通过props配置接受的属性最终配置在组建的实例对象上(vc)
- 传入数据的时候通标签的属性传入,即
属性="值"
,所以默认情况下传过去的属性值都是字符串,如果想要传过去number值,可以靠v-bind
实现
<Student name='张三' :age="20"/>
:age="20"
会将 "20"解析成js表达式,表达式的结果就是number类型的20,所以传过去的值就是number类型的18. - propos可以对传入的属性值的类型进行限制
- propos传过来的属性不能修改
props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。
若要修改props传过来的属性,需要这样写:
<template><!-- 组件的结构,相当于非单文件中的 template配置--><div class="demo"><h2>名字:{{name}}</h2><h2>年龄:{{ myAge }}</h2><button @click="addAge">点击年龄修改</button></div>
</template>
<script>// 组件交互的代码(数据、方法),相当于非单文件中的出了template的配置
export default {name:'StudentVue',data() {console.log(this)return {myAge:this.age}},props: {name: {type: String,required:true,},age: {type: Number,default:99},},methods: {addAge() {this.myAge++}}
}</script>
<style>/* 组建的样式 */
.demo{background: green;
}
</style>
props的优先级
props的优先级比较高,高于data(){}
配置
Vue——props配置相关推荐
- vue props配置对象
要点: 先创建一个Student子组件 并且之前说过,当写重复的组件,它们的数据不是同步的,因为extend 进行了一个new Vue Component()构造函数 每次应用组件标签生成的都是一个新 ...
- vue 组件 props配置
props 配置 用于接收外部传入的属性 props 是只读的 若强行修改控制台会报错 <template><div><StudentTest name='李四' sex ...
- vue路由router的props配置
vue路由router的props配置 前置知识:vue-router3路由配置和使用,适配vue2,vue-router代码模版 路由props配置的作用:让路由组件更方便的接收到参数 ⚠️ 当不使 ...
- 【Vue2.0】—props 配置(十三)
[Vue2.0]-props 配置(十三) <template><div class="demo"><h1>{{ msg}}</h1> ...
- Vue学习记录8,vue脚手架配置代理的两种方式,Github搜索案例,vue-resource,三种插槽,Vuex及搭建Vuex环境,getter和四个map方法的使用, 模块化+命名空间
目录 vue脚手架配置代理 方法一 方法二 Github搜索案例 UserList.vue UserSearch.vue 效果图 vue-resource 插槽 默认插槽 具名插槽 作用域插槽 Vue ...
- vuejs中路由的传参以及路由props配置
虽互不曾谋面,但希望能和您成为笔尖下的朋友 以读书,技术,生活为主,偶尔撒点鸡汤 不作,不敷衍,意在真诚吐露,用心分享 点击左上方,可关注本刊 标星公众号(ID:itclanCoder) 如果不知道如 ...
- Vue复习知识点(理解MVVM模式、Vue实例配置的各选项、Vue的各种内置指令....)
Vue复习知识点 一.理解MVVM模式 VVM是一种设计模式,它将应用程序分为三个部分:模型(Model).视图(View)和视图模型(ViewModel).它的主要目的是将应用程序的界面逻辑与业务逻 ...
- vue——props的两种常用方法
vue--props的两种常用方法 1.实现父-->子的通信 举例如下: 父组件 parent.vue <children :channel="object1"> ...
- 使用Jenkins持续集成Vue项目配置Sonar任务
title: 使用Jenkins持续集成Vue项目配置Sonar任务 tags: jenkins Vue.js Sonar categories: ci date: 2017-12-05 22:09: ...
最新文章
- 零起点学算法03——超简单模仿算术题
- 比特币的闪电网络正在创建自己的黑客阵营
- python能参加奥赛吗-家长们注意了!关于信息学奥赛(NOIP),你需要知道这些...
- 学python需要什么文化基础-数据分析需要掌握那些基础知识?
- 理解这几张图,你就是js小牛了
- php7.2获取年份的格式,7.7.2 获取zval的值及类型
- 零压力学python_《零压力学Python》 之 第一章知识点归纳
- Markdown简介和基本语法
- python选择题题目_Python接口测试题(持续更新中)
- 黑客攻防技术宝典Web实战篇第2版—第7章 攻击会话管理
- ORACLE使用中的常见 实用的问题
- Linux关闭java命令,Linux系统关闭或重新启动主机的命令详解
- python常见的控制流结构有_【Python】控制流语句、函数、模块、数据结构
- 你先说什么事,我再决定有没有空
- html 播放360全景图,讯网360全景展示产品-html5全景图-flash全景展示-360度全景图制作...
- Maximo 人员- 应用程序导入,公共操作怎么配置,求大神指点,万分感谢
- idea 使用markdown总结
- ACM-音频编解码器管理器
- java compare 和equals,java-在此示例中compareTo和equals方法如何工作?
- 如何封禁大量恶意 IP