浅谈vue传值

vue组件之前的传值可以分为三类:

1,父传子

父传子的用法:

在子组件中需要用到父组件的值,需要在子组件中定义props选项,props:[‘字符串名1‘,‘字符串名2‘],props中的数据和data中的数据用法一样,

使用子组件时,通过动态绑定自定义属性获取父组件的值例如:<component-a :字符串名1="父组件data中的数据" :字符串名2="父组件data中的数据"></component-a>

在子组件中使用数据,可以在template中用插值表达式使用{{字符串名1}}

2,子传父

首先 在子组件中有有一个数据data中定义 cont:100;

然后在子组件的methods中写一个方法fn1(),在这个方法中用创建一个自定义事件this.$emit(自定义事件名,this.cont);

把这个自定义事件绑定在子组件的开始标签位置(父组件中使用子组件<child-a @自定义事件=‘父组件methods中的方法fn2‘);

触发子组件中的fn1(),比如点击某一个按钮去触发

在父组件方法fn2中可以获得到 子组件的数据svg就是子组件cont的值  fn2(svg){  console.log(svg); this.data中的数据 = svg }

在父组件中可以用插值表达式来使用{{data中的接收了svg的数据}}

注意:这里讲的是传了一个数字,也可以传数组和对象,$emit自定义事件,是vue给我们提供的写法

3,兄弟组件之间的通信

情景:在父组件中有并列的两个子组件child-a和child-b

前置条件->js绑定+触发事件

绑定事件 this.$on(事件名,函数(接收的形参){})

触发事件 this.$emit(事件名,数据)

在child-a中:点击按钮触发方法->在方法中写触发事件vm.$emit(事件名,要传的数据)

在child-b中:绑定事件vm.$on(事件名,(接收的参数)=>{})

注意:在两个组件中,需要用共同的vm实例对象,传值才管用,所以这里可以单独写一个js文件

js文件中的代码:  import  Vue form ‘vue‘;

const vm = new Vue();

导出 export default vm;

在两个需要传值的组件中import引入这个文件 : import vm from "./busevent.js";

原文地址:https://www.cnblogs.com/webjl/p/10301643.html

时间: 2024-09-29 12:01:19

浅谈vue传值的相关文章

浅谈VUE传值问题,父传子,子传父,兄弟传兄弟。。。

首先我们先定义3个页面,一个主页面,两个子页面 例:myForm 和 myTabel 是定义的两个子页面 第一步:在主页面引入 import myForm from "@/MyForm"; import myTabel from "@/MyTable"; 第二步:在 components 注册  (注册完必须进行第三步.不然会报错) components: {     myForm,     myTabel, } 第三步:插入 <myForm></

【Vue】浅谈Vue不同场景下组件间的数据交流

浅谈Vue不同场景下组件间的数据“交流” Vue的官方文档可以说是很详细了.在我看来,它和react等其他框架文档一样,讲述的方式的更多的是“方法论”,而不是“场景论”,这也就导致了:我们在阅读完文档许多遍后,写起代码还是不免感到有许多困惑,因为我们不知道其中一些知识点的运用场景.这就是我写这篇文章的目的,探讨不同场景下组件间的数据“交流”的Vue实现 父子组件间的数据交流 父子组件间的数据交流可分为两种: 1.父组件传递数据给子组件 2.子组件传递数据给父组件 父组件传递数据给子组件——pro

浅谈Vue响应式(数组变异方法)

很多初使用Vue的同学会发现,在改变数组的值的时候,值确实是改变了,但是视图却无动于衷,果然是因为数组太高冷了吗? 查看官方文档才发现,不是女神太高冷,而是你没用对方法. 看来想让女神自己动,关键得用对方法.虽然在官方文档中已经给出了方法,但是在下实在好奇的紧,想要解锁更多姿势的话,那就必须先要深入女神的心,于是乎才有了去探索Vue响应式原理的想法.(如果你愿意一层一层地剥开我的心.你会发现,你会讶异-- 沉迷于鬼哭狼嚎 无法自拔QAQ). 前排提示,Vue的响应式原理主要是使用了ES5的Obj

浅谈Vue项目优化

前几天看到大家说 vue 项目越大越难优化,带来很多痛苦,这是避免不了的,问题终究要解决,框架的性能是没有问题的,各大测试网站都有相关数据.下面进入正题 转自https://blog.csdn.net/qq_33834489/article/details/79144762 基础优化 所谓的基础优化是任何 web 项目都要做的,并且是问题的根源.HTML,CSS,JS 是第一步要优化的点 分别对应到 .vue 文件内的,<template>,<style>,<script&g

浅谈Vue的生命周期模型

Vue实例从创建到销毁的过程,就是生命周期.Vue的生命周期包括:开始创建.初始化数据.编译模板.挂载Dom.渲染→更新→渲染.卸载等一系列过程. 在Vue的整个生命周期中,提供了一系列的事件,可以注册JavaScript方法,达到控制整个过程的目的,在这些javascript方法中的this直接指向的是vue的实例. 在Vue的整个生命周期中,实例可以调用一些生命周期钩子,这提供了执行自定义逻辑的机会. Vue提供的生命周期钩子如下:① beforeCreate在实例初始化之后,数据观测(da

浅谈vue.js

在使用vue.js前,首先得安装vue.js. 对于vue.js的安装,有以下几种方法: 1.通过官网下载: Vue.js 官网下载地址:http://vuejs.org/guide/installation.html 2.使用CDN方法: 以下推荐国外比较稳定的两个 CDN,个人建议下载到本地. BootCDN(国内) : https://cdn.bootcss.com/vue/2.2.2/vue.min.js unpkg:https://unpkg.com/vue/dist/vue.js,

[原]浅谈vue过渡动画,简单易懂

在vue中什么是动画 开始先啰嗦一下,动画的解释(自我理解??) 在一个标签里面的类容,我们视觉看到它,这时候,这个标签以什么形式出现,中间变化了什么,并且以什么形式消失,是有一个过渡的存在的方式,我叫做动画 (不是那种干出,干消失哈??,大神原谅我粗糙的说辞\(^o^)/~) 闲言碎语不多讲,上干货了 在vue中,提供给我们一个很好写过渡动画的内置组件transition 基本用法就是给我们需要动画的标签外面嵌套transition标签,并且给上属性,起码name不要忘了 <transitio

浅谈Vue模板的那些事儿

接触过vue的童鞋都知道,组件的模板一般都是在template选项内定义的,如 1 Vue.component('child-component', { 2 3 template: '<h3>我是闰土大叔</h3>' 4 5 }) 这个用法都是老生常谈了,今天来聊聊Vue的内联模板.看过vue文档的同学都知道,Vue提供了一个内联模板的功能,在使用组件时,给组件标签使用inline-template特性,组件就会把它的内容当做模板,而不是把它当成内容分发,这样做的好处是,让模板更灵

浅谈Vue.use

我们先来看一个简单的事例首先我使用官方脚手架新建一个项目vue init webpack vue-demo然后我创建两个文件index.js plugins.js.我将这两个文件放置在src/classes/vue-use目录下 接下来对这两个文件进行编写 // 文件: src/classes/vue-use/plugins.js const Plugin1 = { install(a, b, c) { console.log('Plugin1 第一个参数:', a); console.log(