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

boyanx1天前技术教程2

今天学习一个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 时获得更好的类型检查和自动补全功能。

相关文章

Vue进阶(幺伍肆):vue-resource(vue-resource.js)

前言vue-resource是Vue.js的一款插件,它可以通过XMLHttpRequest或JSONP发起请求并处理响应。也就是说,$.ajax能做的事情,vue-resource插件一样也能做到,...

Vue实现原理(图文讲解)(vue 实现原理)

本文章转自:乐字节文章主要讲解:Vue实现原理获取更多VUE相关资料及项目可以关注:B站 小王学Java1、Vue简介现在的大前端时代,是一个动荡纷争的时代,江湖中已经分成了很多门派,主要以Vue,R...

Vue3 流程图组件库 :Vue Flow(vuex流程图)

Vue Flow 是一个轻量级的 Vue 3 组件库,它允许开发者以简洁直观的方式创建动态流程图。本篇文章记录一下Vue Flow的基本用法安装npm add @vue-flow/core 流程图的构...

ElementPlusX + RuoyiAI:Vue3 首个 AI 开发模板开源了!

在 AI 技术飞速发展的今天,开发一款自己的 AI 应用成为了许多开发者的追求。然而,从零开始搭建一个完整的 AI 开发环境,往往需要耗费大量的时间和精力。为了帮助开发者快速进入 AI 开发领域,一个...

第二篇 前端框架Vue.js(vue前端框架技术)

前端三大核心是网页开发的基础,Vue则是基于它们构建的“生产力工具”。通俗理解就是HTML是化妆的工具如眉笔,CSS是化妆品如口红,JavaScript是化妆后的互动,而Vue就是化妆助手。有了化妆工...

vue发送请求是应该在mounted还是在created生命周期

一个经常会被问到的问题:为什么不在 created 里去发ajax?created 可是比 mounted 更早调用啊,更早调用意味着更早返回结果,那样性能不是更高?首先,一个组件的 created...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。