首页 > 其他分享 >Vue之props

Vue之props

时间:2022-12-26 22:22:55浏览次数:28  
标签:Vue String Student props 默认值 data name

  props配置项

1. 功能:让组件接收外部传过来的数据 2. 传递数据:```<Demo name="xxx"/>``` 3. 接收数据:     1. 第一种方式(只接收):```props:['name'] ```     2. 第二种方式(限制类型):```props:{name:String}```     3. 第三种方式(限制类型、限制必要性、指定默认值):         ```js         props:{          name:{          type:String, //类型          required:true, //必要性          default:'老王' //默认值          }         }         ```     > 备注:props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。

Student.vue

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{myAge+1}}</h2>
        <button @click="updateAge">尝试修改收到的年龄</button>
    </div>
</template>

<script>
    export default {
        name:'Student',
        data() {
            console.log(this)
            return {
                msg:'我是一个学生',
                myAge:this.age// 真要修改数据的话,可以在data中再做一个属性,更改data中的数据
            }
        },
        methods: {
            updateAge(){
                this.myAge++
            }
        },
        //简单声明接收
        // props:['name','age','sex'] 

        //接收的同时对数据进行类型限制
        /* props:{
            name:String,
            age:Number,
            sex:String
        } */ 
        //接收的同时对数据:进行类型限制+默认值的指定+必要性的限制
        props:{
            name:{
                type:String, //name的类型是字符串
                required:true, //name是必要的
            },
            age:{
                type:Number,
                default:99 //默认值
            },
            sex:{
                type:String,
                required:true
            }
        }
    }
</script>

 

App.vue

<template>
    <div>
        <!-- 在自定义的props值前面加:表示冒号内部是一个表达式,执行完这个表达式之后再将数据拿到Student组件中
        比如这样写:age="18+1"  结果是age="19" 因为age前有冒号:,所以双引号内部是一个表达式
        这样的话 age="18+1"  结果是age="18+1"  双引号内部就是一个简单的字符串,不是表达式 -->
        <Student name="李四" sex="女" :age="18+1"/>
    </div>
</template>

<script>
    import Student from './components/Student'

    export default {
        name:'App',
        components:{Student}
    }
</script>

 

标签:Vue,String,Student,props,默认值,data,name
From: https://www.cnblogs.com/anjingdian/p/17007048.html

相关文章

  • Vue之ref
    ref属性1.被用来给元素或子组件注册引用信息(id的替代者)2.应用在html标签上获取的是真实DOM元素,应用在组件标签上是组件实例对象(vc)3.使用方式:  1.打标识:```<h1......
  • 小记Vue动态修改表头的方法
    背景:列表A:初始列名称列表对象B:{name1:newName1;name2:newName2}对象B记录了一部分需要修改的列名称。根据列表A使用v-for动态渲染......
  • 记录--vue.config.js 的完整配置(超详细)!
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助前段时间,对部门的个别项目进行Vue3.0+ts框架的迁移,刚开始研究的时候也是踩坑特别多,尤其我们的项目还有些......
  • Vue2.00.WebPack
    本次系统学习以黑码教程为主,后期随笔中不特殊说明均为黑马教程内容01.对webpack的了解a.webpack是前端项目工程化的具体解决方案;b.主要功能:1.提......
  • VueX基础篇
    1.VueX是什么:“Vuex是一个专为Vue.js应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。”......
  • 关于优化前端vue项目的思考
    背景:前端项目 125M启动时间5-10分钟F12会出现崩溃原因:打包出来的css样式文件体积过大解决办法:1.启动太久,将vue-cli升级到版本5,能优化不少的时间2.vue.conf......
  • vue 多项目nginx部署---二级目录
    vue多项目部署---二级目录新项目:同一域名下部署多个vue项目,根目录vue项目不需要按下面的方式进行打包部署https://www.bitedit.com/下面三个项目以二级目录部署htt......
  • Flask+Vue 用户登录
    后端开发环境Flask2.2.2Flask-Cors3.0.10Flask-HTTPAuth4.5.0Flask-RESTful0.3.9itsdangerous2.0.1代码目录结构D:.│......
  • el-radio-group初始化默认值后点击无法切换问题/vue中设置表单对象属性页面不同步问题
     <el-radio-groupv-model="ruleForm.type"><el-radio:label="1">方案一</el-radio><el-radio:label="2">方案二</el-radio></el-radio-group>原初始......
  • 快速创建Vue项目
    step1:初始化项目vueinitwebpackteststep2:安装[email protected]注意:需要进入项目目录;安装router的版本......