网站首页 > 教程文章 正文
今天学习一个vue3中非常常见的技巧,props,可以从父组件向子组件传递数据。教程使用文章数据类型来做演示
基本使用
首先在使用ts的接口约束下数据类型,在types中新建一个article.ts的文件
export interface Article {
id:number;
title: string;
content: string;
}
export type Articles = Array<Article>
定义了Article的数据,里面有id,title,content。又定义了一个Articles的类型,它是一个Article类型的数组。
父组件Article.vue的代码,父组件中引用子组件ArticleList,并且把定义的articles数据通过名为articles传递给子组件。注意前面需要加上:不然会默认为字符串。
<template>
<ArticleList :articles="articles"/>
</template>
<script lang="ts" setup name="Article">
import { reactive } from 'vue';
import { Articles} from '../types/article';
import ArticleList from './ArticleList.vue'
let articles = reactive<Articles>([
{id:1,title:"标题1",content:"内容1"},
{id:2,title:"标题2",content:"内容2"},
{id:3,title:"标题3",content:"内容3"}
])
</script>
<style>
</style>
子组件的代码,关键地方下面两行代码,导入defineProps。通过这个接收到articles.这样在子组件的模版中就可直接使用了。
import {defineProps} from "vue"
let props = defineProps(['articles'])
<template>
<div class="content">
<ul>
<li v-for="item in articles">
{{ item.title }}--{{item.content}}
</li>
</ul>
</div>
</template>
<script lang="ts" setup name="Article">
import {defineProps} from "vue"
let props = defineProps(['articles'])
</script>
<style>
</style>
代码运行效果如下:
这个就是一个简单的通过props传递数据了。
注意事项
- props 是单向数据流。父组件可以传递数据到子组件,但子组件不能直接修改 props。如果需要基于 props 的值计算新值,应该使用计算属性或 watch 监听器。
- 如果需要修改从父组件传入的 props,通常建议通过事件向父组件发送信号,由父组件来修改并重新传递数据。
- Vue 3 鼓励使用 TypeScript,这可以让你在定义 props 时获得更好的类型检查和自动补全功能。
猜你喜欢
- 2025-10-13 Vue el-element ui 清空表格选中记录
- 2025-10-13 Vue3基础难点总结_vue3 从入门到实战 进阶式掌握完整知识体系
- 2025-10-13 Vue深入组件:组件事件详解1_组件使用vuex
- 2025-10-13 分享 15 个 Vue3 全家桶开发的避坑经验
- 2025-10-13 vue 3 学习笔记 (八)——provide 和 inject 用法及原理
- 2025-10-13 vue-element-admin 增删改查(五)_vue element admin 登录修改
- 2025-10-13 微信小程序双向数据绑定,父子传参
- 2025-10-13 Vue3 中有哪些值得深究的知识点?_vue常用知识点
- 2025-10-13 Vue3常用的6种组件通信方式,你一定都用过!
- 2025-10-13 面试官:来说说vue3是怎么处理内置的v-for、v-model等指令?
- 最近发表
- 标签列表
-
- location.href (44)
- document.ready (36)
- git checkout -b (34)
- 跃点数 (35)
- 阿里云镜像地址 (33)
- qt qmessagebox (36)
- mybatis plus page (35)
- vue @scroll (38)
- 堆栈区别 (33)
- 什么是容器 (33)
- sha1 md5 (33)
- navicat导出数据 (34)
- 阿里云acp考试 (33)
- 阿里云 nacos (34)
- redhat官网下载镜像 (36)
- srs服务器 (33)
- pico开发者 (33)
- https的端口号 (34)
- vscode更改主题 (35)
- 阿里云资源池 (34)
- os.path.join (33)
- redis aof rdb 区别 (33)
- 302跳转 (33)
- http method (35)
- js array splice (33)