Vue -- props配置项

news/2025/2/22 0:39:41

文章目录


props_3">1 组件props

为了提高组件的复用性,在封装 vue 组件时需要遵守如下的原则:

组件的 DOM 结构、Style 样式要尽量复用
组件中要展示的数据,尽量由组件的使用者提供

为了方便使用者为组件提供要展示的数据,vue 组件提供了 props 的概念。

props组件的自定义属性,组件的使用者可以通过 props 把数据传递到子组件内部,供子组件内部进行使用。

props 的作用:
组件通过 props 向子组件传递要展示的数据。

props 的好处:
提高了组件的复用性。

props_18">2 在组件中声明 props

在封装 vue 组件时,可以把动态的数据项声明为 props 自定义属性。自定义属性可以在当前组件的模板结构中被直接使用。示例代码如下:

<template>
  <div>
    <h3>标题:{{title}}</h3>
    <h5>作者:{{author}}</h5>
    <h6>发布时间:{{pubTime}}</h6>
  </div>
</template>

<script>
export default {
  name: 'MyArticle',
  // 外界可以传递指定的数据,到当前的组件
  props: ['title', 'author', 'pubTime']
}
</script>

组件向子组件传值,可以直接传值,也可以使用动态属性绑定。

可以使用 v-bind 属性绑定的形式,为组件动态绑定 props 的值。

<template>
  <div>
    <h1>这是 App.vue组件</h1>
    <hr />
    <my-article :title="info.title" :author="'post by ' + info.author" pub-time="1989"></my-article>
  </div>
</template>

<script>
import MyArticle from './Article.vue'

export default {
  name: 'MyApp',
  data() {
    return {
      info: {
        title: 'abc',
        author: '123',
      },
    }
  },
  components: {
    MyArticle,
  },
}
</script>

props_74">3 无法使用未声明的 props

如果父组件给子组件传递了未声明的 props 属性,则这些属性会被忽略,无法被子组件使用,示例代码如下:

<template>
  <div>
    <h3>标题:{{title}}</h3>
    <h5>作者:{{author}}</h5>
    <h6>发布时间:{{pubTime}}</h6>
  </div>
</template>

<script>
export default {
  name: 'MyArticle',
  // 外界可以传递指定的数据,到当前的组件
  props: ['title', 'author']
}
</script>

<template>
  <div>
    <h1>这是 App.vue组件</h1>
    <hr />
    <my-article :title="info.title" :author="'post by ' + info.author" pub-time="1989"></my-article>
  </div>
</template>

<script>
import MyArticle from './Article.vue'

export default {
  name: 'MyApp',
  data() {
    return {
      info: {
        title: 'abc',
        author: '123',
      },
    }
  },
  components: {
    MyArticle,
  },
}
</script>

在子组件中不存在pubTime。

props__126">4 props 的大小写命名

组件中如果使用“camelCase (驼峰命名法)”声明了 props 属性的名称,则有两种方式为其绑定属性的值:

<template>
  <div>
    <h6>发布时间:{{pubTime}}</h6>
  </div>
</template>

<script>
export default {
  name: 'MyArticle',
  // 外界可以传递指定的数据,到当前的组件
  props: ['pubTime']
}
</script>

<template>
  <div>
    <h1>这是 App.vue组件</h1>
    <hr />
    <my-article pub-time="1989"></my-article>
    <my-article pubTime="1989"></my-article>
  </div>
</template>

<script>
import MyArticle from './Article.vue'

export default {
  name: 'MyApp',
  data() {
    return {
      info: {
        title: 'abc',
        author: '123',
      },
    }
  },
  components: {
    MyArticle,
  },
}
</script>


http://www.niftyadmin.cn/n/563831.html

相关文章

怎么做网站?个人和企业如何做网站,看完就会

现在个人和企业都想拥有自己的一个博客、网站&#xff0c;可以宣传自己、公司业务&#xff0c;是当今互联网社会必须的。其实制作一个网站并不是非常困难&#xff0c;只要您能认真看完我们这个做网站的教程&#xff0c;我相信你一定能做出一个自己想要的网站&#xff0c;那我们…

B树[概念]

文章目录1 B-Tree2 BTree1 B-Tree B-Tree&#xff0c;B树是一种多叉路衡查找树&#xff0c;相对于二叉树&#xff0c;B树每个节点可以有多个分支&#xff0c;即多叉。以一颗最大度数&#xff08;max-degree&#xff09;为5(5阶)的b-tree为例&#xff0c;那这个B树每个节点最多…

Vue----Class 与 Style 绑定

文章目录Class 与 Style 绑定1 动态绑定 HTML 的 class2 以数组语法绑定 HTML 的 class3 以对象语法绑定 HTML 的 class4 以对象语法绑定内联的 styleClass 与 Style 绑定 在实际开发中经常会遇到动态操作元素样式的需求。因此&#xff0c;vue 允许开发者通过 v-bind 属性绑定…

小程序----组件

文章目录1 小程序中组件的分类2 常用的视图容器类组件2.1 view 组件的基本使用2.2 scroll-view 组件的基本使用2.3 swiper 和 swiper-item 组件的基本使用2 常用的基础内容组件2.1 text 组件的基本使用2.2 rich-text 组件的基本使用3 其它常用组件3.1 button 按钮的基本使用3.2…

小程序----API

文章目录1 小程序 API 概述2 小程序 API 的 3 大分类1 小程序 API 概述 小程序中的 API 是由宿主环境提供的&#xff0c;通过这些丰富的小程序 API&#xff0c;开发者可以方便的调用微信提供的能力&#xff0c;例如&#xff1a;获取用户信息、本地存储、支付功能等。 2 小程序…

小程序----数据绑定

文章目录1 数据绑定的基本原则2 在 data 中定义页面的数据3 Mustache 语法的格式&#xff08;插值表达式&#xff09;3.1 Mustache 语法的应用场景3.2 动态绑定内容3.3 动态绑定属性3.4 三元运算3.5 算数运算1 数据绑定的基本原则 在 data 中定义数据在 WXML 中使用数据 2 在 d…

小程序----事件绑定

文章目录1 事件1.1 小程序中常用的事件1.2 事件对象的属性列表1.2.1 target 和 currentTarget 的区别1.3 bindtap 的语法格式1.4 在事件处理函数中为 data 中的数据赋值1.5 事件传参1.6 bindinput 的语法格式1 事件 事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染…

C#自学记录_序

C#自学记录自我介绍些这些的目的学习工具学习方法自我介绍 简单来说 野生码农一枚&#xff0c;对编程有一点的兴趣&#xff0c;完全0基础自学。 些这些的目的 发现自己最近懒了&#xff0c;就像说记录下自己的学习轨迹。通过些博客的方式试试看能不能对抗懒癌。 总之我这一辈…