首页 > 其他分享 >Vue props配置

Vue props配置

时间:2022-11-17 11:23:47浏览次数:48  
标签:Vue name age 配置 sex props msg data

1、props配置项

props的作用是让组件接收外部传过来的数据(接收参数)

2、组件传参

向组件Student传入参数:name,sex,age

<!-- 第一种方式:直接写参数名=xxx ,传入的是字符串形式-->
<Student name="李四" sex="女" age="18"/>

<!-- 第二种方式 动态绑定的方式传入v-bind:xxx,简写形式为:xxx。动态绑定的方式会将引号里的内容按表达式来解析后再传参-->
<Student :name="李四" :sex="女" :age="18"/>

3、组件接收参数

第一种方式(直接接收,常用)

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{age}}</h2>
    </div>
</template>

<script>
    export default {
        name:'Student',
        data() {
            console.log(this)
            return {
                msg:'我在上幼儿园大班',
            }
        },//简单声明接收,接收的是字符串,比如age传入的是数字,接收后的也是字符串,要计算需要进行转换
        props:['name','age','sex'] 
    }
</script>

 第二种方式(限制参数类型)

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{age}}</h2>
    </div>
</template>

<script>
    export default {
        name:'Student',
        data() {return {
                msg:'我在上幼儿园大班'
            }
        },

        //接收的同时对数据进行类型限制。注意,虽然有限制,但是传参后页面依然会显示,只是控制台会报错
        props:{
            name:String,
            age:Number,
            sex:String
        }
    }
</script>

 

第三种方式(限制类型、限制必要性、指定默认值)

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>学生性别:{{sex}}</h2>
        <h2>学生年龄:{{age}}</h2>
    </div>
</template>

<script>
    export default {
        name:'Student',
        data() {return {
                msg:'我在上幼儿园大班'
            }
        },

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

 

 

4、props注意点

  • props是只读的,Vue底层会监测你对props的修改,如果进行了修改,就会发出警告,若业务需求确实需要修改,那么请复制props的内容到data中一份,然后去修改data中的数据。
  • props和data中声明的属性名不能重复
  • props声明的属性名不能为一些关键字,如key,ref
<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() {return {
                msg:'我在上幼儿园大班',
                myAge:this.age //将props属性复制到data中进行修改操作。props上的属性会优先被放到vc上,所以这里是可以直接读的
            }
        },
        methods: {
            updateAge(){
                this.myAge++
            }
        },
        //简单声明接收
        props:['name','age','sex']
    }
</script>

 

标签:Vue,name,age,配置,sex,props,msg,data
From: https://www.cnblogs.com/weslie/p/16898787.html

相关文章

  • office:操作系统当前配置不能运行应用程序
    ​ ​编辑 1、将你修改的注册表默认安装位置修改成原来目录​编辑 2.打开控制面板/卸载程序,找到office右击更改/联机修复 ​编辑 ​编辑 修复完即可使用 ......
  • vue纯前端导入excel,获取excel的表格数据渲染el-table并纯前端分页实现方法
    因为项目开发的过程中不是所有的表格数据由后台处理返回,因为有些数据不需要在数据库落地,只做前端页面展示并且获取表格的数据上传即可,所以需要前端纯处理excel的数据。第......
  • flask 基础配置
    1.flask基础配置 1.1配置静态文件与模板目录 #设置静态文件static_url_path='c',template_folder='t'app=Flask(__name__,static_url_path='c',templ......
  • HP服务器RAID配置
    目录DL380G7(DL580G7)DL388G9公司服务器硬盘空间不够了(HP的服务器),购买了10块硬盘,由于之前没有做过RAID,感觉很高大上的样子,就请教了HP的技术人员,技术人员发了两份文档,分......
  • Vue ref属性
    ref属性1.被用来给元素或子组件注册引用信息(id的替代者)2.应用在html标签上获取的是真实DOM元素,应用在组件标签上是组件实例对象(vc)3.使用方式:  1.打标识:<h1re......
  • SQL Server 高可用(always on)配置指南之数据库侦听器及高可用
    1.简介1、参考SQLServer高可用(alwayson)配置指南之域(AD)环境搭建  ​​https://blog.51cto.com/waringid/5851856​​完成域控服务器(DomainControl,以下简称DC)2、......
  • Containerd 如何配置 Proxy?
    前言在某些airgap场景中,往往需要离线或使用代理(Proxy),例如:需要通过Proxypull容器镜像:DockerHub:​​docker.io​​Quay:​​quay.io​​GCR:​​gcr.io​​G......
  • Containerd 如何配置 Proxy?
    前言在某些airgap场景中,往往需要离线或使用代理(Proxy),例如:需要通过Proxypull容器镜像:DockerHub:docker.ioQuay:quay.ioGCR:gcr.ioGitHub镜像库:ghcr......
  • vue3的<setup script>中使用異步函數
    由於vue3的setup一般情況下不允許為async,如果要將setup變成async,則要引入異步組件 <Suspense> <template#default> <SwitchMaintenanceUpdate/> </template> </S......
  • Vue 中 filter 过滤器的使用
    一、Filter过滤器,将数据进行添油加醋的操作。过滤器分为两种:1、组件内的过滤器(组件内有效)2、全过滤器(所以组件共享)使用前首先注册过滤器,然后再使用。全局过......