iis服务器助手广告广告
返回顶部
首页 > 资讯 > 前端开发 > JavaScript >Vue的Props实例配置详解
  • 906
分享到

Vue的Props实例配置详解

VuePropsVueProps配置VueProps设置 2022-11-13 19:11:33 906人浏览 薄情痞子
摘要

目录1、Prop 的大小写2、Prop 类型3、Prop验证4、传递静态|动态 Prop5、修改Prop数据适用于:父子组件通信。 如果父组件给子组件传递(函数)数据:本质是子组件给

适用于:父子组件通信。

  • 如果父组件给子组件传递(函数)数据:本质是子组件给父组件传递数据;
  • 如果父组件给子组件传递的(非函数)数据:本质就是父组件给子组件传递数据。

路由组件也可以传递 props数据。

1、Prop 的大小写

html 中的 属性名大小写不敏感,浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:

子组件接收数据:

Vue.component('blog-post', {
  // 在 javascript 中是 camelCase (驼峰命名法)
  props: ['postTitle'],
  template: '<h3>{{ postTitle }}</h3>'
})

父组件传数据:

<!-- 在 HTML 中是 kebab-case 短横线分隔命名 -->
<blog-post post-title="hello"></blog-post>

2、Prop 类型

子组件指定(限制)父组件传入的Prop的值的类型。当子组件接收到错误的类型时从浏览器的 JavaScript 控制台提示用户。

// 接收数据并对数据进行类型限制
props: {
  title: String,
  likes: Number,
  isPublished: Boolean,
  commentIds: Array,
  author: Object,
  callback: Function,
  contactsPromise: Promise // or any other constructor
}

不限制Prop类型是这样写:

// 简单的声明接收(不能声明不传过来的数据)
props: ['title', 'likes', 'isPublished', 'commentIds', 'author']

3、Prop验证

在子组件定制接收的 prop 的验证方式,可以为 props 中的值提供一个带有验证需求的对象。如果有一个需求未满足,则 Vue 会在浏览器控制台中警告。

  props: {
    // 基础的类型检查 (`null` 和 `undefined` 会通过任何类型验证)
    propA: Number,
    // 多个可能的类型
    propB: [String, Number],
    // 必填的字符串
    propC: {
      // propC的类型
      type: String,
      // 设置 propC 必须传递过来   
      required: true
    },
    // 带有默认值的数字
    propD: {
      type: Number,
      // propD可传可不传,不传则值默认为100
      default: 100
    },
    // 带有默认值的对象
    propE: {
      type: Object,
      // 对象或数组默认值必须从一个工厂函数获取
      default: function () {
        return { message: 'hello' }
      }
    },
    // 自定义验证函数
    propF: {
      validator: function (value) {
        // 这个值必须匹配下列字符串中的一个
        return ['success', 'warning', 'danger'].indexOf(value) !== -1
      }
    }
  }

4、传递静态|动态 Prop

传入一个字符串

传静态值:

<blog-post title="hello"></blog-post>

prop 通过 v-bind 动态赋值:

<!-- 动态赋予一个变量的值,该变量值post.title是字符串 -->
<blog-post v-bind:title="post.title"></blog-post>
<!-- 动态赋予一个复杂表达式的值 ,post.title和post.author值是字符串-->
<blog-post
  v-bind:title="post.title + ' and ' + post.author"
></blog-post>
......
data() {
	return {
		post: { title:"aaa", author:"bbb" },
	}
}

以上传入的值都是字符串类型的,但任何类型的值都可以传给 prop,如:

传入一个数字

<!-- 即便 `42` 是静态的,仍然需要 `v-bind` 来告诉 Vue -->
<!-- 这是一个 JavaScript 表达式而不是一个字符串。-->
<blog-post v-bind:likes="42"></blog-post>
<!-- 用一个变量进行动态赋值。-->
<blog-post v-bind:likes="post.likes"></blog-post>

传入一个布尔值

<!-- 包含该 prop 没有值的情况在内,都意味着 `true`。-->
<blog-post is-published></blog-post>
<!-- 即便 `false` 是静态的,仍然需要 `v-bind` 来告诉 Vue -->
<!-- 这是一个 JavaScript 表达式而不是一个字符串。-->
<blog-post v-bind:is-published="false"></blog-post>
<!-- 用一个变量进行动态赋值。-->
<blog-post v-bind:is-published="post.isPublished"></blog-post>

传入一个数组

<!-- 即便数组是静态的,仍然需要 `v-bind` 来告诉 Vue -->
<!-- 这是一个 JavaScript 表达式而不是一个字符串。-->
<blog-post v-bind:comment-ids="[234, 266, 273]"></blog-post>
<!-- 用一个变量进行动态赋值。-->
<blog-post v-bind:comment-ids="post.commentIds"></blog-post>

传入一个对象

<!-- 即便对象是静态的,仍然需要 `v-bind` 来告诉 Vue -->
<!-- 这是一个 JavaScript 表达式而不是一个字符串。-->
<blog-post
  v-bind:author="{
    name: 'Veronica',
    company: 'Veridian Dynamics'
  }"
></blog-post>
<!-- 用一个变量进行动态赋值。-->
<blog-post v-bind:author="post.author"></blog-post>

传入一个对象的所有 property

<blog-post v-bind="post"></blog-post>
......
post: {
  id: 1,
  title: 'My Journey with Vue'
}

5、修改Prop数据

若想对接收的prop数据进行修改,则需要在data中重新定义,不能直接对prop修改,即this.postTitle = "hhh"会报错。

<h3>{{ postTitle }}</h3>
<h3>{{ myTitle }}</h3>
<button @click="xiu"></button>
......
  // 在 js 中是 camelCase 驼峰命名法 
  props: ['postTitle'],
      
  // 若想对接收的prop数据进行修改,则需要在data中重新定义,不能直接对prop修改,即this.postTitle = "hhh"会报错。
  ......
  data() {
	 return {
		myTitle: this.postTitle,
	}
  },
  methods: {
      xiu() {
          this.myTitle = "hhh";
      }
  }

注意:也可以不写:props: ['postTitle']来接收,因为this.$attrs中有 传来的数据postTitle ,可以直接使用。但是我们一般不这样写。因为不能限制类型,写着麻烦等。

当接收props: ['postTitle']时,this.$attrs中就不存在 传来的数据postTitle 了。

到此这篇关于Vue的Props实例配置详解的文章就介绍到这了,更多相关Vue Props内容请搜索编程网以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程网!

--结束END--

本文标题: Vue的Props实例配置详解

本文链接: https://www.lsjlt.com/news/170792.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Vue的Props实例配置详解
    目录1、Prop 的大小写2、Prop 类型3、Prop验证4、传递静态|动态 Prop5、修改Prop数据适用于:父子组件通信。 如果父组件给子组件传递(函数)数据:本质是子组件给...
    99+
    2022-11-13
    Vue Props Vue Props配置 Vue Props设置
  • Vue的props配置项详解
    简介 主要介绍props配置项的概念,使用等。 props的作用是用来接收父组件中传过来的数据。 编写步骤有两个: 子组件使用props配置项进行属性的接收。父组件使用子组件时以组件...
    99+
    2024-04-02
  • Vue之props配置详解
    <template> <div class="demo"> <h1>{{ msg}}</h1> <h2...
    99+
    2024-04-02
  • Vue组件如何设置Props实例详解
    目录属性类型属性默认值属性值验证Composition API 中设置属性总结在 Vue 中构建组件通常需要定义一些属性,以使组件可以更好复用,在这种情况下会使用 props 来自定...
    99+
    2024-04-02
  • 如何理解Vue中的props 配置
    如何理解Vue中的props 配置,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。<template>  <div cl...
    99+
    2023-06-25
  • React和Vue的props验证示例详解
    目录React中的props校验react中单一类型校验器设定属性类型和默认值设置必需属性react中组合类型校验器PropTypes.oneOfTypePropTypes.arra...
    99+
    2022-11-13
    Vue props验证 react props验证
  • 实例详解vue render函数中如何修改props
    Vue的render函数是一个很强大的工具,可以帮助我们更加自由地创建组件并渲染页面,并且在某些场景下render函数也可以帮我们提升一些性能。在一些情况下,我们希望在render函数中修改props,那么该怎么做呢?下面来一起看看。在我们...
    99+
    2023-05-14
  • react组件实例属性props实例详解
    目录react组件实例属性propspropsprops简单使用props批量操作props属性类型限制props属性限制的简写函数组件使用props补充:React之组件实例的三大...
    99+
    2023-01-30
    react组件实例属性props react props
  • Vue中babel.config.js配置示例详解
    目录1 概述2 Babel 的工作原理2.1 如何设置?2.2 @babel/core @babel/cli @babel/preset-env 到底做了哪些事情3 插件Polyfi...
    99+
    2023-02-01
    vue babel.config.js配置 babel.config.js
  • Vue路由组件通过props配置传参的实现
    目录一、基于params参数传递1、index.js(路由配置)2、Box_1.vue(父路由组件 - 发送参数) 3、Menu_1.vue(子路由组件 - 接收参数)二、...
    99+
    2024-04-02
  • vuejs路由的传参及路由props配置详解
    目录前言方式1-使用query方式命名路由方式2-路由的params参数query与params的区别路由的props配置路由配置的布尔模式路由配置的对象模式路由配置函数模式总结前言...
    99+
    2024-04-02
  • Vue-Router的routes配置详解
    目录介绍routes中对象属性path: stringcomponent : Component | () => import(组件)name: stringredirect:...
    99+
    2024-04-02
  • Nginx配置文件nginx.conf的基本配置实例详解
    目录前言1. Nginx配置样例2. Nginx负载均衡方式2.1 轮询2.2 权重2.3 Nginx解决集群共享session问题的方案3. Nginx动静分离(静态资源...
    99+
    2024-04-02
  • vue LogicFlow更多配置选项示例详解
    目录推荐几个好用的工具进入正题1. 设置主题 Theme:2. 设置网格 Gird:3. 设置对齐线 Snapline:4. 设置背景 Background:5. 设置键盘快捷键 K...
    99+
    2023-01-12
    vue LogicFlow配置选项 vue LogicFlow
  • Vue组件化(ref,props, mixin,.插件)详解
    目录1、ref属性2、props配置项props总结3、mixin混入3.1、局部混入3.2、全局混入mixin混入总结4、插件插件总结1、ref属性 被用来给元素或子组件注册引用信...
    99+
    2024-04-02
  • Kafka的监听地址配置实例详解
    有时我们会碰到网络是通畅的,但却连不上Kafka,特别是在多网卡环境或者云环境上很容易出现,这个其实和Kafka的监听配置有关系。本文介绍监听相关的配置,目前监听相关的参数主要有下面...
    99+
    2024-04-02
  • Vue子组件内的props对象参数配置方法
    目录一、简单数据类型1、布尔类型 Boolean正确写法 :2、数字类型 Number正确写法 :3、字符串类型 String正确写法 :二、复杂数据类型1、数组 Array错误写法...
    99+
    2024-04-02
  • Vue配置文件中的proxy配置方式详解
    1. 这里以axios发请求为例 axios.get("/abc/def"); axios.get("/abc/ghi"); axios.post("/abc/jkm"); axi...
    99+
    2024-04-02
  • vue px转rem配置详解
    目录方法一一、配置与安装步骤: 方法二方法三总结 方法一 一、配置与安装步骤: 1、在 Vue 项目的 src 文件夹下创建一个 config 文件夹: 2、在 config 文...
    99+
    2024-04-02
  • 详解Vue中$props、$attrs和$listeners的使用方法
    目录背景一、文档描述二、具体使用三、总结背景 现在我们来讨论一种情况,父组件与孙子组件怎么通信,我们有多少种解决方案? 我们使用VueX来进行数据管理,但是如果项目中多个组件共享状态...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作