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

boyanx5个月前技术教程19

今天学习一个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里面网上大多数的方案都是通过HTML5来实现。需要自已写后端接口,chrome规定每个域名的TCP链接不能超过5个,这就决定了通过HTML5来实现的方案速度有上限。不向客户端那么灵活。代码:ht...

Vue前端开发——组件篇(vue组件实现原理)

业务开发的过程中,经常会进行一些组件化的开发,组件常处理的一般有以下几种全局组件局部组件动态组件递归组件全局组件一般很多地方都会用到的一些功能我们一般封装成全局组件去使用,常规的建立一个全局组件的方法...

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

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

vue3+electron开发桌面软件(5)——系统级右键实现文件上传

# 系列文章目录1. vue3+electron开发桌面软件入门与实战(0)——创建electron应用2. vue3+electron开发桌面软件入门与实战(1)——创建electron+vue3主...

Vue2的16种传参通信方式(vue传参三种方式)

前言先直入主题列出有哪些传参方式,下面再通过事例一一讲解。props(父传子)$emit与v-on (子传父)EventBus (兄弟传参).sync与update: (父子双向)v-model (父...

Vue3.0权限管理实现流程【实践】(vue权限管理如何实现)

作者:lxcan转发链接:https://segmentfault.com/a/1190000022431839一、整体思路后端返回用户权限,前端根据用户权限处理得到左侧菜单;所有路由在前端定义好,根...

发表评论    

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