Vue基础学习之---通过 Prop 向子组件传递数据

深藏阁楼爱情的钟 2022-05-18 02:08 306阅读 0赞

一、Prop 的大小写 (camelCase vs kebab-case)

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

  1. Vue.component('blog-post', {
  2. // 在 JavaScript 中是 camelCase 的
  3. props: ['postTitle'],
  4. template: '<h3>{
  5. { postTitle }}</h3>'
  6. })
  7. <!-- HTML 中是 kebab-case -->
  8. <blog-post post-title="hello!"></blog-post>

重申一次,如果你使用字符串模板,那么这个限制就不存在了。

Prop 类型

到这里,我们只看到了以字符串数组形式列出的 prop:

  1. props: ['title', 'likes', 'isPublished', 'commentIds', 'author']

但是,通常你希望每个 prop 都有指定的值类型。这时,你可以以对象形式列出 prop,这些属性的名称和值分别是 prop 各自的名称和类型:

  1. props: {
  2. title: String,
  3. likes: Number,
  4. isPublished: Boolean,
  5. commentIds: Array,
  6. author: Object
  7. }

这不仅为你的组件提供了文档,还会在它们遇到错误的类型时从浏览器的 JavaScript 控制台提示用户。你会在这个页面接下来的部分看到类型检查和其它 prop 验证。但是,通常你希望每个 prop 都有指定的值类型。这时,你可以以对象形式列出 prop,这些属性的名称和值分别是 prop 各自的名称和类型:

发表评论

表情:
评论列表 (有 0 条评论,306人围观)

还没有评论,来说两句吧...

相关阅读

    相关 VUE组件组件传递数据

      在使用VUE开发的时候,有时候,我们需要通过父组件像子组件传递数据或者为了防止每个子组件都会有请求数据事件的发生,从而导致代码冗余,所以,我们可以把同一个模块下的所有子组