Vue传参一箩筐(页面、组件)

Vue是一款流行的前端框架,组件和页面之间传递数据是很常见的需求。本篇文章就来分享一些Vue传参的实践经验。

传递基础数据类型

在组件中使用props

使用props属性可以从父组件向子组件传递数据。在子组件的<script>标签中定义一个对象,对象的key就是数据的属性名,value就是数据的默认值:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  props: {
    message: {
      type: String,
      default: "Hello World"
    }
  }
}
</script>

在父组件中把message属性赋上数据即可进行传递:

<template>
  <child message="Hi there!"></child>
</template>

<script>
import Child from "./Child.vue"

export default {
  components: {
    Child
  }
}
</script>

这样就可以把数据传递到Child组件中并显示出来了。

在页面中传递数据

在Vue页面中传递数据比在组件中简单,直接使用data属性即可:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  data() {
    return {
      message: "Hello World"
    }
  }
}
</script>

在Vue页面中也可以很方便地通过计算属性和方法来传递数据,这里就不再赘述。

传递复杂数据类型

在组件中使用prop类型定义问题

在组件中传递复杂数据类型时,定义props时必须指定数据类型,否则Vue会抛出警告。props可以定义多个属性,这样就可以传递复杂数据类型了。

<template>
  <div>
    {{ message }}
    <ul>
      <li v-for="(item, index) in items" :key="index">{{ item }}</li>
    </ul>
  </div>
</template>

<script>
export default {
  props: {
    message: {
      type: String,
      default: "Hello World"
    },
    items: {
      type: Array,
      default: function() {
        return []
      }
    }
  }
}
</script>

父组件中的传递方式也需要相应地更改:

<template>
  <child :message="msg" :items="list"></child>
</template>

<script>
import Child from "./Child.vue"

export default {
  components: {
    Child
  },
  data() {
    return {
      msg: "Hi there!",
      list: ["item1", "item2", "item3"]
    }
  }
}
</script>

在组件中使用类似于 Vuex 的 store

当组件之间需要共享数据时,可以使用类似于 Vuex 的 store。在store中定义数据后,可以通过组件中的computed属性获取store中的数据。

// store.js
import Vue from "vue"
import Vuex from "vuex"

Vue.use(Vuex)

export default new Vuex.Store({
  state: {
    message: "Hello Vuex"
  }
})

// Child.vue
<template>
  <div>{{ message }}</div>
</template>

<script>
import { mapState } from "vuex"

export default {
  computed: mapState([
    "message"
  ])
}
</script>

// App.vue
<template>
  <child></child>
</template>

<script>
import Child from "./Child.vue"
import store from "./store"

export default {
  components: {
    Child
  },
  store
}
</script>

在这个示例中,store中的statemessage属性被映射到了Child组件的message属性中。

以上便是Vue传参的基本攻略,希望对你有所帮助。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Vue传参一箩筐(页面、组件) - Python技术站

(0)
上一篇 2023年5月27日
下一篇 2023年5月27日

相关文章

  • vue实现目录树结构

    下面是 Vue 实现目录树结构的攻略。 使用 ElementUI 的 Tree 如果你的 Vue 项目已经引入了 ElementUI,可以直接使用它提供的 ElTree 组件。该组件支持异步加载数据,自定义节点内容等功能,使用起来十分便捷。 代码示例 <template> <el-tree :data="treeData&quot…

    Vue 2023年5月29日
    00
  • vue项目开发中setTimeout等定时器的管理问题

    在Vue项目开发中,使用setTimeout等定时器能够帮助我们实现一些延迟执行的功能,但是也会带来一些问题,比如内存泄漏、多次调用等。所以需要合理地管理setTimeout等定时器。 以下是关于Vue项目开发中setTimeout等定时器的管理过程: 生成定时器管理器 首先,我们需要生成一个定时器管理器,用于管理setTimeout等定时器的执行。 cla…

    Vue 2023年5月29日
    00
  • vue事件监听函数on中的this指针域使用

    当在Vue组件中定义事件监听函数on时,this指针的使用是一个经常来引起困扰的问题。在Vue中,this指向的上下文会在函数被触发时发生变化,这取决于一些因素,包括函数是否使用了箭头函数、函数是如何被触发的以及我们如何向它传参。 下面是一些在Vue事件监听函数中正确使用this指针的方法: 1. 使用箭头函数 箭头函数的一个重要特征是它不绑定this指向,…

    Vue 2023年5月28日
    00
  • 一篇文章带你搞懂VUE基础知识

    一篇文章带你搞懂VUE基础知识攻略 简介 Vue.js 是一个轻量级的渐进式 JavaScript 框架,用于构建交互式的前端用户界面。本文的目的是通过简单易懂的方式,帮助初学者快速了解 Vue.js 的基础知识。 前置知识 HTML 基础知识 JavaScript 基础知识 安装 Vue.js 可以通过 CDN 直接引入,也可以通过 NPM 安装。 CDN…

    Vue 2023年5月27日
    00
  • vue+elementUI配置表格的列显示与隐藏

    下面是关于“vue+elementUI配置表格的列显示与隐藏”的完整攻略。 步骤一:安装必要的依赖 首先,需要安装element-ui和vue-resize组件依赖,可以使用npm安装,具体命令如下: npm install element-ui vue-resize –save 其中,element-ui用于构建表格组件,vue-resize用于监听窗口…

    Vue 2023年5月28日
    00
  • vue中对虚拟dom的理解知识点总结

    下面是关于“Vue中对虚拟DOM的理解知识点总结”的详细攻略。 什么是虚拟DOM 虚拟DOM是JavaScript对象,它是由Vue框架所提供的一种机制,可以在浏览器的内存中构建一个虚拟的DOM树,通过Diff算法找出需要更新的地方,再将这些更新应用到真正的DOM上,从而最大限度地减少Dom操作对性能的影响。 虚拟DOM相当于是对真实DOM的一层抽象,它可以…

    Vue 2023年5月28日
    00
  • vue快速入门基础知识教程

    以下是“vue快速入门基础知识教程”的完整攻略: 一、Vue.js是什么 Vue.js是一款轻量级、渐进式的JavaScript框架。它易于上手,具有更加简洁灵活的API,能够更加方便的实现前端页面的数据双向绑定、组件化开发、模块化开发等功能。 二、Vue.js的核心概念 数据双向绑定 Vue.js通过数据双向绑定,能够实现页面数据的实时更新。当Vue实例中…

    Vue 2023年5月27日
    00
  • 深入理解Vue的插件机制与install详细

    深入理解 Vue 的插件机制与 install 详解 Vue.js 是一款高效、灵活的前端开发框架,它的插件机制能够帮助我们非常方便地将第三方库集成进 Vue 项目中,无需手动编写各种组件或指令等。 在这篇文章中,我们将深入理解 Vue 的插件机制,学习如何使用 Vue 的 install 方法扩展 Vue.js 的功能。 插件机制 Vue.js 的插件机制…

    Vue 2023年5月28日
    00
合作推广
合作推广
分享本页
返回顶部