Vue.js中使用道具方法demo

 更新时间:2022年12月13日 15:48:04   作者:Jovie  
这篇文章主要为大家介绍了Vue.js中使用道具方法demo,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

正文

在SPA中使用组件的局限性之一是你不能直接将数据从一个组件传递给另一个。基于组件的应用程序背后的想法是,每个组件都被封装起来,并拥有它所需要的所有数据,以便工作;但有时,我们确实需要一个不同组件之间的沟通渠道。

这就是Vue.js道具的作用--它们允许你将任何类型的数据从父组件传递给子组件。与React的props工作方式类似,这可以通过在子组件上设置prop属性,并从父组件中传入所需的数据来实现。这个过程实际上是非常简单的,但如果你以前没有使用过Vue.js,还是会有点困惑的。

在这篇文章中,我们将看看如何在Vue.js中使用props,以及使用它们的一些好处。让我们开始吧!

什么是Vue.js中的props?

Props是你可以在一个子组件上设置的属性,以便以从上到下的方式传递数据。在Vue项目中,props是单向的:它们只从父组件向子组件发送数据。这意味着父组件负责设置道具,而子组件只负责接收道具。

道具也是反应式的:当父组件更新一个道具时,它也会自动在子组件上更新。这可能非常有用,因为它意味着你不必担心让两个组件保持同步--它们总是自动更新。

那么,你为什么要使用props呢?

如果你已经使用过任何其他基于组件的框架,如Angular或React,你可能已经理解了父子沟通的需要。然而,如果你对这个概念不是很熟悉的话,有几个原因可以说明你为什么要在Vue.js中使用props。

  • 道具允许你保持你的组件的模块化和可重复使用。
  • 它们使你在应用程序的不同部分之间分享数据变得容易。
  • 在Vue.js中,props是一种将反应式数据从父组件传递到子组件的简单方法,有效地同步了它们。

如何在Vue.js中使用props?

我们已经说服了你对props的需求吗?让我们开始使用它们吧在第一个例子中,我们将看看如何使用传统的Options API来设置props,这也是大多数生产项目中仍在使用的。在文章的后面,我们将看到如何用新的、闪亮的Composition API完成同样的过程。

在Vue.js中使用道具其实很简单:你只需要在子组件上设置道具属性,并将你想要接收的数据以字符串的形式传入。

例如,假设我们有一个叫做App的父组件,它渲染了一个叫做Child的子组件。我们想把一条信息从App 传给Child,这样Child 就可以显示它。为了做到这一点,我们首先要在Child上设置 "消息 "道具,然后我们可以通过使用handlebars语法在我们的HTML中输出它。

<!-- This is our child component -->
<script>
  export default {
    props: ['message']
  }
</script>
<template>
  <p>This is my message: {{message}}</p>
</template>

然后,我们在App 组件中使用v-bind属性,添加实际的道具。作为缩写,我们可以直接使用": "符号。

<!-- This is our parent component -->
<template>
  <ChildComponent :message="message" />
</template>
<script>
  export default {
    data() {
      return {
        message: "Hello World"
      }
    }
  }
</script>

这将直接把信息从App传达给Child,有效地输出以下文本。

This is my message: Hello World

如果我们想传递多个道具,过程非常相似:我们只需要在子组件中把它们设置成一个数组,像这样。

<!-- This is our child component -->
<script>
  export default {
    props: ['message', 'name']
  }
</script>
<template>
  <p>{{message}}, {{name}}</p>
</template>
<!-- This is our parent component -->
<template>
  <ChildComponent :message="message" :name="name" />
</template>
<script>
  export default {
    data() {
      return {
        message: "Welcome",
        name: "Alex"
      }
    }
  }
</script>

这将输出以下结果。

Welcome, Alex

这就是它的全部内容了!使用Options API设置道具是非常简单和直接的。

在Vue中使用props与Composition API

现在让我们看看同样的过程在Composition API中是怎样的。你会很快注意到,HTML方面的东西是完全一样的;我们只需要重写我们的JS代码,以适应基于组合的项目中的新的做事方式。

因此,我们的子组件最终会是这样的。

<!-- This is our child component -->
<script setup>
  defineProps(['message', 'name'])
</script>
<template>
  <p>{{message}}, {{name}}</p>
</template>
<!-- This is our parent component -->
<template>
  <ChildComponent :message="message" :name="name" />
</template>
<script setup>
import { ref } from "vue";
const message = ref("Welcome");
const name = ref("Alex");
</script>

在Vue.js项目中使用道具的最终想法

正如你所看到的,props是在Vue.js应用程序的不同部分之间共享数据的一种非常简单而强大的方式。如果你还不相信它们的有用性,我们鼓励你花点时间自己去试验一下。

我们希望这篇文章能帮助你了解道具在Vue.js中的工作原理,更多关于Vue.js道具使用的资料请关注脚本之家其它相关文章!

相关文章

  • Vue源码学习记录之手写vm.$mount方法

    Vue源码学习记录之手写vm.$mount方法

    在我们开发中,经常要用到Vue.extend创建出Vue的子类来构造函数,通过new 得到子类的实例,然后通过$mount挂载到节点,今天通过本文给大家讲解手写vm.$mount方法 ,感兴趣的朋友一起看看吧
    2022-11-11
  • Vue中Router路由两种模式hash与history详解

    Vue中Router路由两种模式hash与history详解

    这篇文章主要介绍了Vue中Router路由的两种模式,分别对hash模式与history模式作了简要分析,有需要的朋友可以借鉴参考下,希望能够有所帮助
    2021-09-09
  • 解决vue scoped html样式无效的问题

    解决vue scoped html样式无效的问题

    这篇文章主要介绍了解决vue scoped html样式无效的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • VUE3函数的声明和使用举例

    VUE3函数的声明和使用举例

    这篇文章主要给大家介绍了关于VUE3函数的声明和使用的相关资料, Vue3是一种流行的JavaScript框架,它允许开发人员构建现代化的Web应用程序,需要的朋友可以参考下
    2023-07-07
  • 利用Vue Native构建移动应用的全过程记录

    利用Vue Native构建移动应用的全过程记录

    VueNative是一个使用JavaScript构建跨平台原生移动应用程序的框架m这篇文章主要给大家介绍了关于如何利用Vue Native构建移动应用的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2021-08-08
  • vue中倒计时组件的实例代码

    vue中倒计时组件的实例代码

    这篇文章主要介绍了vue中倒计时组件的实例代码,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • 详解vue-cli中配置sass

    详解vue-cli中配置sass

    本篇文章主要介绍了详解vue-cli中配置sass ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-06-06
  • 关于vue中对window.openner的使用指南

    关于vue中对window.openner的使用指南

    opener属性是一个可读可写的属性,可返回对创建该窗口的Window对象的引用,下面这篇文章主要给大家介绍了关于vue中对window.openner使用的相关资料,需要的朋友可以参考下
    2022-11-11
  • 详解新手使用vue-router传参时注意事项

    详解新手使用vue-router传参时注意事项

    这篇文章主要介绍了详解新手使用vue-router传参时注意事项,详细的介绍了几种常见错误,需要的朋友们下面随着小编来一起学习学习吧
    2019-06-06
  • Vue如何下载本地静态资源static文件夹

    Vue如何下载本地静态资源static文件夹

    这篇文章主要介绍了Vue如何下载本地静态资源static文件夹,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-09-09

最新评论