首页 > 其他分享 >vue-props配置

vue-props配置

时间:2024-11-07 14:41:14浏览次数:4  
标签:vue name age 配置 msg Student props 组件

原文链接:vue-props配置 – 每天进步一点点

1.props作用

props主要用于组件实例对象之间传递参数,比如我们前面创建的student组件,我们在组件中让他显示一些信息,比如下面这样:

Student组件如下:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 <template>   <div>     <h1>{{ msg }}</h1>     <h2>姓名:{{name}}</h2>     <h2>年龄:{{age}}</h2>   </div> </template>   <script> export default {   name: "Student",   data() {     return {       msg: "我是学生组件",       name:'张三',       age:'12',     };   }, }; </script>

然后我们在APP组件中引用就能显示上面的图

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <Student></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {         Student   },   data() {     return {       msg:'欢迎'     }   },   } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

问题是,如果我每次使用Student组件,他显示的名字都是张三,这在实际开发中肯定不合适,在实际开发中,我们一般需要将姓名年龄等作为参数传入到组件中,然后显示出具体的实例化对象后的内容。

那么就需要用到我们今天介绍的props属性

我们把App.vue改造成下面这样:

我们在Student组件中通过 name=’张三’这种形式传值,然后在Student组件中接收数据

通过这样的配置,就能显示不同的信息了

2.props的形式

props配置项有几种形式,第一种就是上面数组形式:

1 props:['name','age']

这种形式的问题很简单,就是默认传递数据是原值,一般不能修改,比如我们想把传的年龄加2,如果写成{{age+2}} ,那么输出的就是字符串,而不是表达式,为了解决这个小问题,可以在调用的时候,加入冒号,比如下面这样:

APP.vue

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 <template>   <div id="app">     <img alt="Vue logo" src="./assets/logo.png">     <Student name='张三' :age='15'></Student>     <Student name='李四' age='11'></Student>   </div> </template>   <script>   import Student from './components/Student'   export default {   name: 'App',   components: {     Student   },   data() {     return {       msg:'欢迎'     }   }, } </script>   <style> #app {   font-family: Avenir, Helvetica, Arial, sans-serif;   -webkit-font-smoothing: antialiased;   -moz-osx-font-smoothing: grayscale;   text-align: center;   color: #2c3e50;   margin-top: 60px; } </style>

Student.vue

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 <template>   <div>     <h1>{{ msg }}</h1>     <h2>姓名:{{name}}</h2>     <h2>年龄:{{age+1}}</h2>   </div> </template>   <script> export default {   name: "Student",   data() {     return {       msg: "我是学生组件",     };   },   //props   //方式1:   props:['name','age'] }; </script>

效果如下:

第二种

1 2 3 4 props:{   name:String,   age:Number, }

这种方式可以写成对象类型,这种方式可以提示类型,如果传的类型不一致就会报错。

第三种

1 2 3 4 5 6 7 8 9 10 props:{     name:{       type:String,  //类型       required:true, //表示是否必须的     },     age:{       type:number,       default:50, //如果没传时的默认值     }   }
3.修改参数的值

vue并不希望我们去直接修改参数的值,但是我们可以间接去修改。比如下面这样:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 <template>   <div>     <h1>{{ msg }}</h1>     <h2>姓名:{{myName}}</h2>     <h2>年龄:{{age+1}}</h2>   </div> </template>   <script> export default {   name: "Student",   data() {     return {       msg: "我是学生组件",       myName:this.name     };   },   //props   //方式1:   // props:['name','age']   //方式2   props:{     name:{       type:String,  //类型       required:true, //表示是否必须的     },     age:{       type:Number,       default:50, //如果没传时的默认值     }   }   }; </script>

我们在data中通过myName接收了传过来的参数,有了myName后,就可以随便修改了。

 

标签:vue,name,age,配置,msg,Student,props,组件
From: https://www.cnblogs.com/longkui-site/p/18532232

相关文章

  • 使用 vscode 简单配置 ESP32 连接 Wi-Fi 每日定时发送 HTTP 和 HTTPS 请求
    最新博客文章链接文字更新时间:2024/11/07由于学校校园网,如果长时间不重新登陆的话,网速会下降,所以想弄个能定时发送HTTP请求的东西。由于不想给路由器刷系统,也麻烦。就开始考虑使用局域网内的服务器,不过由于服务器没有Wi-Fi模块,也不想搞USB无线wifi网卡,就想着干脆用单......
  • gantt-elastic(vue甘特图)
    安装gantt-elastic与gantt-elastic-headernpminstall--savegantt-elasticnpminstall--savegantt-elastic-header//项目里面没有安装dayjs的话还需要安装一下,因为他官网的例子用到了npminstalldayjs--save//项目里面安了less-loader可能会报错//less-loader版......
  • zabbix前台界面配置
    点击下一步如上异常错误解决方法代码如下,安装缺失的软包,并修改php.ini对应参数的值即可yuminstallphp-mbstringphp-bcmathphp-gdphp72w-xml-yyuminstallgdgd-devel-y修改配置文件sed-i'/post_max_size/s/8/16/g;/max_execution_time/s/30/300......
  • 基于SpringBoot+Vue的网上超市设计与实现
    前言网络技术和计算机技术发展至今,已经拥有了深厚的理论基础,并在现实中进行了充分运用,尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代,所以对于信息的宣传和管理就很关键。因此超市商品销售信息的管理计算机化,系统化是必要的。设计开发网上超......
  • 基于springboot+vue的毕业生实习与就业管理系统的设计与实现
    前言使用旧方法对毕业生实习与就业管理系统的信息进行系统化管理已经不再让人们信赖了,把现在的网络信息技术运用在毕业生实习与就业管理系统的管理上面可以解决许多信息管理上面的难题,比如处理数据时间很长,数据存在错误不能及时纠正等问题。这次开发的毕业生实习与就业管理......
  • ssm066农家乐信息平台的设计与实现+vue(论文+源码)_kaic
    毕业设计(论文)题目:农家乐信息平台的设计与实现      摘 要互联网发展至今,无论是其理论还是技术都已经成熟,而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播,搭配信息管理工具可以很好地为人们提供服务。针对农家乐信息管理混乱,出错率高,信息安......
  • 前端Vue自定义个性化三级联动自定义简洁中国省市区picker选择器
    一、 前端组件概述前端组件开发在现代前端开发中占据着至关重要的地位。随着互联网的快速发展,前端应用的规模和复杂性不断增加,传统的开发方式已经难以满足需求。前端组件开发应运而生,成为提高开发效率、代码可维护性和可复用性的关键手段。二、 组件化的重要性通过将复......
  • 基于SpringBoot + Vue的在线考试系统(角色:学生、教师、管理员)
    文章目录前言一、详细操作演示视频二、具体实现截图三、技术栈1.前端-Vue.js2.后端-SpringBoot3.数据库-MySQL4.系统架构-B/S四、系统测试1.系统测试概述2.系统功能测试3.系统测试结论五、项目代码参考六、数据库代码参考七、项目论文示例结语前言......
  • (开题报告)django+vue天天鲜超市线上购物系统源码+论文
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表开题报告内容选题背景关于线上购物系统的研究,现有研究主要以综合性大型电商平台为主,专门针对天天鲜超市这种特定场景下的线上购物系统的研究较少。在国内外,线上......
  • oracle11g启动过程中加载配置文件
    oracle指定配置文件启动,要是不指定配置文件启动的话默认找的参数文件顺序如下:在oracle11g中oracle启动过程中默认会加载相应的配置文件来启动oracle服务。检查参数文件有两个,一个是spfile<ORACLE_SID>.ora文件,另一个是inti<ORACLE_SID>.ora文件。oracle软件服务安装完成后......