VUE学习笔记 -- 页面传值
1. 父页面向子页面传值
在父组件中引用的子组件处<xxx :aaa="a"/>
在子组件中接收 props:['aaa']
父页面:Father.vue
<template><div><h1>这是父页面</h1><Son :num="a" :obj="user"/></div>
</template><script>
import Son from "@/views/log/template/Son";export default {name: "Father",components: {Son,},data(){return{a:100,user:{name:'张三',age:18,general: '男'}}}
}
</script><style scoped></style>
子页面:Son.vue
<template><div><h1>这是子页面</h1>{{num}}=======================================================<p v-for="(item,index) in obj" :key="index">{{item}}</p></div>
</template><script>
export default {props:['num','obj'],name: "Son"
}
</script><style scoped></style>
效果
vue中大小写不敏感,驼峰可以改成-隔开userName user-name
vue提供了一个props入口,也是父子组件之间唯一的传值方式,父组件通过v-bind自定义属性传入值,子组件通过props接受对应的参数
props接受的参数可以是数组,也可以是对象
props:[]
props:{ a:Number,b:String,c:String }
如果props是一个对象,那么这个对象的key是自定义传入参数属性,value是希望传入的参数类型
参数可以配置
props:{
a:{
type:Object,
required: true,
defult: ()=>{return {a:100}}, // 默认参数
validator: function(value){return value > 50}
}
}
2. 子组件修改父组件的参数
子组件不能直接对父组件传过来的值进行修改,只能传出一个自定义事件,父组件通过调用这个自定义事件后,然后在外部修改值
子组件 this.$emit("自定义的父组件的方法名称add")
在父组件的<xxx @add="sumNum" :aaa='a'/>
父页面
<template><div>{{a}}<h1>这是父页面</h1><p>上面是父组件</p><p>下面是子组件</p><p></p><Son :num="a" @add="sumNum"/></div>
</template><script>
import Son from "@/views/log/template/Son";export default {name: "Father",components: {Son,},data(){return{a:100}},methods:{sumNum(){this.a++}}
}
</script><style scoped></style>
子页面
<template><div><h1>这是子页面</h1>{{num}}<button @click="clickMethod">按我加一</button></div>
</template><script>
export default {props:['num'],name: "Son",methods:{clickMethod(){this.$emit("add")}}
}
</script><style scoped></style>
效果
$emit方法是vue封装的,用来向父组件返回对应的自定义事件,父组件通过在子组件身上设置对应的自定义事件后设置事件名称
@add自定义事件是子组件通过$emit传出来的自定义事件,父组件通过这个事件设置事件方法sumNum,然后修改自己的值,从而实现子组件修改父组件的值
这么做的目就是为了让数据可观察性更强,可维护性更高
3. 页面跳转传值
>>localStorage
原来页面:
localStorage.setItem("dataInfo", JSON.stringify(dataInfo)) // 对象
localStorage.setItem("aaa", aaa) // 非对象
要跳转的页面:
let dataInfo= JSON.parse(localStorage.getItem('dataInfo'))
let aaa = localStorage.getItem('aaa')
也可以使用removeItem、clear删除localStorage中的值
注意:永久有效,大小只有5M
>>sessionStorage
与localStorage用法相同,
只是生命周期为当前窗口或标签页,一旦窗口或标签页被永久关闭了,那么所有通过sessionStorage存储的数据也就被清空了。但刷新不会。
VUE学习笔记 -- 页面传值相关推荐
- 【Vue】学习笔记-组件传值的数据累加器
[Vue]学习笔记-组件传值的数据累加器 前言 父级组件 购物车组件 计数器组件 常见错误总结 前言 组件传值的数据累加器可以分为三个部分 App.vue为父级组件 Carts.vue表示购物车 Co ...
- vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值?
vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 文章目录 vue学习笔记-03-浅谈组件-概念,入门,如何用props给组件传值? 什么是组件? 为什么要使用组件? 如何使用 ...
- Vue学习笔记(五)—— 状态管理Vuex
介绍 Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式.它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化.Vuex 也集成到 Vue 的官方调试 ...
- day4 vue 学习笔记 组件 生命周期 数据共享 数组常用方法
系列文章目录 day1学习vue2笔记 vue指令 day2 学习vue2 笔记 过滤器 侦听器 计算属性 axios day3 vue2 学习笔记 vue组件 day4 vue 学习笔记 组件 生命 ...
- Vue学习笔记(三)Vue2三种slot插槽的概念与运用 | ES6 对象的解构赋值 | 基于Vue2使用axios发送请求实现GitHub案例 | 浏览器跨域问题与解决
文章目录 一.参考资料 二.运行环境 三.Vue2插槽 3.1 默认插槽 3.2 具名插槽 3.3 作用域插槽 ES6解构赋值概念 & 作用域插槽的解构赋值 3.4 动态插槽名 四.GitHu ...
- Vue学习笔记01——Vue开发基础
一.Vue实例配置选项 选项 说明 data Vue实例数据对象 methods 定义Vue中的方法 components 定义子组件 computed 计算属性 filters 过滤器 el 唯一根 ...
- Vue学习笔记---------Vue2
Vue学习笔记---------Vue2 1. Hello,world! 插值语法: 用 {{ xxx }} 插入一个值 ,该值在data中自定义内容. <body><div id= ...
- Vue学习笔记入门篇——数据及DOM
本文为转载,原文:Vue学习笔记入门篇--数据及DOM 数据 data 类型 Object | Function 详细 Vue 实例的数据对象.Vue 将会递归将 data 的属性转换为 getter ...
- vue学习笔记-02-前端的发展历史浅谈mmvm设计理念
vue学习笔记-02-前端的发展历史浅谈mmvm设计理念 文章目录 1. MVVM模式的实现者 2.第一个vue程序 3.什么是mvvm? 4.为什么要用mvvm? 5.mvvm的组成部分 7.MVV ...
最新文章
- 计算机三级网络技术查漏补缺
- 2019-06-07 Java学习日记之CSS
- java io重定向,java中的标准重定向标准IO_java标准IO_java构建器_课课家
- 大规模中文自然语言处理语料(百科,问答、新闻,翻译)
- java逻辑判断_阿里JAVA开发强制要求的10条条件控制及逻辑判断的规范,切记
- Linux -- sudoers (简单:转)
- Cursor finalized without prior close()
- 交换机端口镜像配置大全【汇集 22个各种品牌交换机】
- 数据结构-01-图解后缀表达式值计算方式
- 二元最佳前缀码_贪心-最优前缀码
- 《云边协同关键技术态势研究报告》丨附下载
- 毕设答辩遇到的小问题
- ubuntu 安装ATI驱动
- 吴晓华当选河北省衡水市市长
- Neural Feature Search for RGB-Infrared Person Re-Identification
- 2021年总结:前路有光,初心莫忘
- Android SO逆向-C++虚函数表解析
- egg extend ts_KPL五周T队排名,“天王级”战队只有两个,TS被踢出队列
- matlab dpm目标检测,车辆目标检测
- 记录oracle的一些操作