Vue中组件化编码使用、实现组件之间的参数传递(实战练习二)

简介: 这篇文章介绍了Vue中组件化编码的实现和组件间参数传递的方法,通过实战练习展示了从App.vue向TheList.vue和TheItem.vue传递数据的流程和代码示例。

上一章节实现的是静态页面的设计、这一章节实现将数据抽取出来、通过组件间参数的传递来实现
上一章节链接地址:https://blog.csdn.net/weixin_43304253/article/details/126218585

文章目录

  • 1、组件之间是怎样实现参数传递的?(基本的传递方式)
    • 1.1、思路流程
    • 1.2 、代码流程(有点简陋)
    • 1.3 代码(这里只给出主要部分代码、详细代码请看上一章节)
      • 1.3.1 App.vuepp.vue(省略了样式)
      • 1.3.2 TheList.vue (省略了样式)
      • 1.3.3 TheItem.vue(省略了样式)
    • 1.4 、实现的效果

1、组件之间是怎样实现参数传递的?(基本的传递方式)

1.1、思路流程

1、将数据从App.vue中传入TheList.vue组件中。

  • 2、在TheList.vue组件中、通过遍历的形式遍历数组对象、每次遍历出来的对象作为参数传入TheItem.vue组件中
  • 3、TheItem.vue接收到传来的参数就可以展示对象中的属性

1.2 、代码流程(有点简陋)

在这里插入图片描述

1.3 代码(这里只给出主要部分代码、详细代码请看上一章节)

1.3.1 App.vuepp.vue(省略了样式)

<template>
  <div id="root">
    <div class="todo-container">
      <div class="todo-wrap">
        <TheHeader />
        <TheList  :todos="todos" />
        <TheFooter />
      </div>
    </div>
  </div>
</template>

<script>
import TheHeader from "./components/TheHeader";
import TheList from "./components/TheList";
import TheFooter from "./components/TheFooter.vue";

export default {
  name: "App",
  components: { TheHeader, TheList, TheFooter },
  data() {
    return {
      //由于todos是MyHeader组件和MyFooter组件都在使用,所以放在App中(状态提升)
      todos: [
        { id: "001", title: "吃饭", done: true },
        { id: "002", title: "睡觉", done: false },
        { id: "003", title: "打豆豆", done: true },
      ],
    };
  },
  methods: {},
};
</script>

1.3.2 TheList.vue (省略了样式)

<template>
  <ul class="todo-main">
    <TheItem v-for="todoObj in todos" :key="todoObj.id" :todo="todoObj" />
  </ul>
</template>

<script>
import TheItem from "./TheItem";

export default {
  name: "TheList",
  components: { TheItem },
  //声明接收App传递过来的数据,其中todos是自己用的
  props: ["todos"],
};
</script>

1.3.3 TheItem.vue(省略了样式)

<template>

    <li>
      <label>
        <input type="checkbox" />
        <span>{
  
  {todo.title}}</span>
      </label>
      <button>删除</button>
    </li>

</template>

<script>
export default {
  name: "MyItem",
          //声明接收todo、checkTodo、deleteTodo
        props:['todo'],
  data() {},

  methods: {},
};
</script>

1.4 、实现的效果

在这里插入图片描述

相关文章
|
1天前
|
JavaScript 算法 前端开发
vue学习(1)
vue学习(1)
187 62
|
1天前
|
JavaScript
vue学习(3)模板语法
vue学习(3)模板语法
23 10
|
1天前
|
存储 JavaScript 前端开发
vue学习(2)
vue学习(2)
108 44
|
1天前
|
JavaScript
vue键盘事件
vue学习(11)键盘事件
|
JavaScript 前端开发 API
Vue核心思想:数据驱动、组件化
传统的前端数据交互是用Ajax从服务端获取数据,然后操作DOM来改变视图;或者前端交互要改变数据时,又要再来一次上述步骤,而手动操作DOM是一个繁琐的过程且易出错。
3324 0
|
6天前
|
JavaScript
vue中使用@scroll不生效的问题
vue中使用@scroll不生效的问题
|
13天前
|
JavaScript 开发者
[译] 监听第三方 Vue 组件的生命周期钩子
[译] 监听第三方 Vue 组件的生命周期钩子
|
13天前
|
JavaScript 前端开发
[译] 复用 Vue 组件的 6 层手段
[译] 复用 Vue 组件的 6 层手段
|
14天前
|
JavaScript API
vue 批量自动引入并注册组件或路由
vue 批量自动引入并注册组件或路由
|
5天前
|
数据采集 JavaScript 搜索推荐
我们一起聊聊如何对Vue项目进行搜索引擎优化
【9月更文挑战第4天】Vue 项目的搜索引擎优化(SEO)较为复杂,因其内容默认由 JavaScript 渲染,部分搜索引擎难以索引。为提升 SEO 效果,可采用服务器端渲染(SSR)或预渲染,使用 Nuxt.js 或 Vue Server Renderer 实现 SSR,或利用 Prerender SPA Plugin 预渲染静态 HTML。此外,动态管理 Meta 标签、优化静态内容与 Sitemap、懒加载、图片优化、提升页面速度、设置正确的路由模式、使用结构化数据及构建良好外链均有益于 SEO。
40 11