当前位置:首页 > 技术分析 > 正文内容

vue3新手入门(7)非常实用vue3技巧props父组件向子组件传递数据

ruisui881个月前 (03-23)技术分析6

今天学习一个vue3中非常常见的技巧,props,可以从父组件向子组件传递数据。教程使用文章数据类型来做演示

基本使用

首先在使用ts的接口约束下数据类型,在types中新建一个article.ts的文件

export interface Article {
   id:number;
  title: string;
  content: string;
}
export type Articles = Array

定义了Article的数据,里面有id,title,content。又定义了一个Articles的类型,它是一个Article类型的数组。

父组件Article.vue的代码,父组件中引用子组件ArticleList,并且把定义的articles数据通过名为articles传递给子组件。注意前面需要加上:不然会默认为字符串。


<script lang="ts" setup name="Article">
    import { reactive } from 'vue';
    import { Articles} from '../types/article';
    import ArticleList from './ArticleList.vue'
    let articles = reactive([
    {id:1,title:"标题1",content:"内容1"},
    {id:2,title:"标题2",content:"内容2"},
    {id:3,title:"标题3",content:"内容3"}
    ])
</script>

子组件的代码,关键地方下面两行代码,导入defineProps。通过这个接收到articles.这样在子组件的模版中就可直接使用了。

import {defineProps} from "vue"
let props = defineProps(['articles'])


<script lang="ts" setup name="Article">
import {defineProps} from "vue"
let props = defineProps(['articles'])
</script>

代码运行效果如下:

父组件传递子组件数据运行效果

这个就是一个简单的通过props传递数据了。

注意事项

  • props 是单向数据流。父组件可以传递数据到子组件,但子组件不能直接修改 props。如果需要基于 props 的值计算新值,应该使用计算属性或 watch 监听器。
  • 如果需要修改从父组件传入的 props,通常建议通过事件向父组件发送信号,由父组件来修改并重新传递数据。
  • Vue 3 鼓励使用 TypeScript,这可以让你在定义 props 时获得更好的类型检查和自动补全功能。

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/2954.html

分享给朋友:

“vue3新手入门(7)非常实用vue3技巧props父组件向子组件传递数据” 的相关文章

如何在 Linux 发行版中安装微信和 QQ?

很多人因为工作沟通的原因需要用到微信和 QQ,那么如何在 Linux 发行版中安装微信和 QQ 呢?以下是一些尝试的解决方法。QQ上一个版本的 QQ Linux 版还是在2009年,而在现在,基于 NT 架构的全新 QQ Linux版已经被正式推出,为所有用户提供下载。新版本提供了deb、rpm、A...

js中数组filter方法的使用和实现

定义filter() 方法创建一个新数组, 其包含通过所提供函数实现的测试的所有元素。语法var newArray = arr.filter(callback(element[, index[, selfArr]])[, thisArg])参数callback循环数组每个元素时调用的回调函数。回调函...

22《Vue 入门教程》VueRouter 路由嵌套

1. 前言本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。2. 配置嵌套路由实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层...

uni-app基于vue开发小程序与标准vue开发新增点

1、路由跳转传参uni.navigateTo({ url: `/pages/transition/spreadTextAction?t=${this.options.t}&rt=${this.options.rt}&l=${this.options.l}`});uni.navigateBack({...

推荐一个Java微服务商业级Sass开源电商小程序(开源,企业级项目)

使用Java微服务开发,SpringBoot2框架、MyBatis-plus持久层框架、Redis作为缓存、MySql8作为数据库。 前端vuejs作为开发语言,使用uniapp编码,同时支持微信小程序、安卓App、苹果App。 支持集群部署,单机部署。 unimall 针对中小商户、企业和个人消...

微信将研发“应用号”体系 或成为App大杂烩应用

Akiha发表于 2016-01-11 18:11微信正在探讨一种新的公众号形态,即在现有的订阅号、服务号之外,再研发新的“应用号”体系。让用户不必去装各种 App,在微信里就能实现各种服务、功能;关注后,“应用号”平时不向用户发送消息,需要时,用户再去点开“应用号”等。目前,微信钱包内已有的服务,...