vue传参页面刷新数据丢失问题】的更多相关文章

在做vue的时候,经常会遇到组件之间数据的传递问题,通过params或者query传参,但是,当页面刷新的时候,数据会丢失,找不到数据.今天经过总结,解决了这个问题.通过了一下几种情况进行传值: 通过路由params传参 通过路由query传参 通过vuex 1.通过params传参 先在路由path里那个组件需要传递参数,定义一个参数,用于组件传递,params刷新页面数据会丢失. path: "/chatView/:user" //这里值用:加参数的写法,user即为参数,注意一定…
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$router.push({ name:"admin", //这里的params是一个对象,id是属性名,item.id是值(可以从当前组件或者Vue实例上直接取) params:{id:item.id} }) //这个组件对应的路由配置 { //组件路径 path: '/admin', //…
最近项目中涉及到跨页面传参数和后台进行数据交互,看到需求之后第一反应就是用路由传参来解决:Vue中给我们提供了三种路由传参方式,下面我们一个一个的来看一下: 方法一:params传参: this.$router.push({ name:"admin", //这里的params是一个对象,id是属性名,item.id是值(可以从当前组件或者Vue实例上直接取) params:{id:item.id} }) //这个组件对应的路由配置 { //组件路径 path: '/admin', //…
项目功能需要,要从列表页跳转到第三方提供的URL上(这里第三方页面我是通过iframe引入在详情页,目的是点击返回时可以通过keepAlive让列表页不刷新,如果不通过iframe直接跳第三方链接,那么返回必然会重新拉取数据),一路百度,刚开始使用 1 this.$router.push({name:'list', params:{id: id}}) 在详情页获取参数: 1 this.$route.params.id 试了一下,可以拿到数据,很开心,本以为这样就结束了,然后刷新了下页面,发现页面…
在页面跳转中,我通过路由传参,结果发现页面参数丢失了.路径返回了根目录.... 1. 先说下路由传参的几种方式吧? 比如:<div v-for="item in items" @click="get(item.id)"> 传参方式1: 1) get:function(id){ this.$router.push({ path: `/describe/${id}`, }) } 2) 相应路由配置:{ path: '/describe/:id', name:…
也算是踩到坑了,但不是我踩到的,不过还是得说下这个问题,很严重,对于小白和初学者是比较有帮助的,如果使用到路由传参,请选择你想要的传参方式params或者query 1.query this.$router.push({ path: 'newApply', query: { type: item.key, typeDesc: item.value } }) 2.params this.$router.push({ name: 'newApply', params: { type: item.ke…
参考: https://blog.csdn.net/aliven1/article/details/80743470          https://blog.csdn.net/liang377122210/article/details/78880438          https://blog.csdn.net/goodaxuan/article/details/82113123 main.js文件中: var store = new Vuex.Store({ state: { user…
npm install vuex 在项目scr目录下新建store文件夹,在store文件夹下新建index.js文件. import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const state={ accountInfo:{ } } const mutations={ initUser(state,payload){ state.accountInfo=Object.assign(state.accountInfo,p…
一.页面刷新时,如何保持原有vuex中的state信息 页面刷新后,原有的 vuex 中的 state 会发生改变,如果在页面刷新之前,可以将 state 信息保存,页面重新加载时,再将该值赋给 state,那么该问题即可解决. 1.localstorage 可以使用 localstorage 来保存信息. [在某组件中添加如下钩子函数.比如 App.vue中] created() { //在页面加载时读取localStorage里的状态信息 if (localStorage.getItem("…
在vue项目中用vuex来做全局的状态管理, 发现当刷新网页后,保存在vuex实例store里的数据会丢失. 原因: 因为store里的数据是保存在运行内存中的,当页面刷新时,页面会重新加载vue实例,store里面的数据就会被重新赋值初始化 解决思路: 将state的数据保存在localstorage.sessionstorage或cookie中(三者的区别),这样即可保证页面刷新数据不丢失且易于读取. localStorage: localStorage的生命周期是永久的,关闭页面或浏览器之…
将需要保存在vuex中的数据同时保存在sessionStorage中即可: import Vue from 'vue'; import Vuex from 'vuex'; Vue.use(Vuex); const state = { count: 0, }; const mutations = { increaseCount(state, num) { state.count = state.count + num; sessionStorage.setItem('count', JSON.st…
//query传参,使用name跳转   this.$router.push({       name:'second',       query: {         queryId:'20180822',         queryName: 'query'       }  })  //query传参,使用path跳转   this.$router.push({      path:'second',      query: {        queryId:'20180822',   …
一,在 created中 注册 页面刷新和关闭事件 created() {  window.addEventListener('beforeunload', e => this.test(e)) }   二,事件,将你的逻辑方法加进去 methods: {  test(e) {   console.log('刷新或关闭')   // ...  } } 三,卸载注册的事件 destroyed() {  window.removeEventListener('beforeunload', e =>…
vue子传父用$emit实现 1.文件目录结构 2.parent父组件内容 <template> <div class="wrap"> <div>我是Father组件</div> <children @func="speak" ></children> <div>{{msg}}</div> </div> </template> <script…
<template> <ul> <li v-for="(value,key,index) in list" :key="index"> {{value}} </li> <button @click="back">back</button> </ul> </template> <script> export default{ data(){…
<template> <ul> <li v-for="item in list" :key="item.id"> <button @click="goDetail(item.id)"> {{item.name}} </button> </li> </ul> </template> <script> export default { data…
if(typeof(this.$route.query.result)=='string'){ //刷新时走这 }else{ //正常路由跳转过来后就把数据塞到 localStorage let obj = JSON.stringify(this.$route.query); //转化为JSON字符串 localStorage.setItem("prizeResult", obj); //数据存storage,防止刷新丢失 } 去localStorage取 let result = J…
这个是子组件啦 ,写type的意思是swiperDate传过来的数据类型是数组,default就是表示不传默认返回的[ ],空数组. 这种就是表示传的数据类型是number,不传默认是0.…
方法一: router/index.js { path: '/src/views/activitiesDetails', name: activitiesDetails, component: activitiesDetails, meta: { title: '精选活动' } }, index.vue detalis(id){ this.$router.push({ path: '/src/views/activitiesDetails', query: { id: id } }) }, 获取…
常见场景:点击列表详情,跳转到详情内页,传递id参数获取详情数据. 我们先来看看路由跳转的几种方式: 1.通过params方式传参 通过$route.push的path携带参数方式 // 路由配置 { path: '/detail/:id', //若id后面加?代表这个参数是可选的,即使不传id也不会导致页面无法访问 name: 'detail', component: Detail } // 列表中跳转 this.$router.push({ path:`/detail/${id}` }) /…
vue传参方法一 1,路由配置 { path: '/describe/:id', name: 'Describe', component: Describe } 2,使用方法 // 直接调用$router.push 实现携带参数的跳转 this.$router.push({// 这个id是一个变量,随便是什么值都可以 path: /describe/${id}`, }) 3,获取方法(在describe页面) $route.params.id 使用以上方法可以拿到上个页面传过来的id值 vue传…
微信小程序开发:学习笔记[8]——页面跳转及传参 页面跳转 一个小程序拥有多个页面,我们可以通过wx.navigateTo推入一个新的页面.在首页使用2次wx.navigateTo后,页面层级会有三层,我们把这样的一个页面层级称为页面栈. 后续为了表述方便,我们采用这样的方式进行描述页面栈:[ pageA, pageB, pageC ],其中pageA在最底下,pageC在最顶上,也就是用户所看到的界面,需要注意在本书编写的时候,小程序宿主环境限制了这个页面栈的最大层级为10层 ,也就是当页面栈…
vue传参方法一 1,路由配置 { path: '/describe/:id', name: 'Describe', component: Describe } 2,使用方法 // 直接调用$router.push 实现携带参数的跳转 this.$router.push({ // 这个id是一个变量,随便是什么值都可以 path: /describe/${id}`, }) 3,获取方法(在describe页面) $route.params.id 使用以上方法可以拿到上个页面传过来的id值 vue…
在mpvue编写的小程序项目中,页面跳转间我希望通过编程式导航传递些参数 传参页面代码: this.$router.push({path:'/pages/login/changePassword/main',query:{phone:this.phoneNumber,code:this.verificationCode}}) 接参页面代码: created () { this.phoneNumber = this.$route.query.phone this.verificationCode…
vue  通过 name 和 params 进行调整页面传参刷新参数丢失问题 router.js: export default new Router({ routes: [ { path: '/', redirect: '/main', },{ path: '/main', name: 'Main', component: ()=> import('@/views/Main'), children: [ { //path: '/testPage', //这种方式 不配置参数名, 页面刷新会丢失…
今天,算是真正认识了params传参,为什么说params传参引起了血案? 起因是这样的,我正在做一个登陆的模块,公司想根据url不同的参数来区分是什么类型的会议, 于是后端推荐我用params传参的方式来实现这一设计,于是我毫不犹豫的在longin的路由上加上了params参数: path: "/:order", name: "index", component: () => import(/* webpackChunkName: "about&q…
问题:在最近的项目中,我通过传递不同的参数,复用同一组件进行渲染,然而意外出现一个bug,就是当我重新刷新该页面时,会新增一个tab 原来的: 刷新页面后: 查阅资料后,发现该现象是由于通过params进行传递的参数引起的,params进行传参后再次刷新页面,参数丢失,导致fullpath不一致,从而新增了页面(而我使用的d2admin基于element-ui第三方框架) 解决方案:将params方式传参改为使用query传参,这样参数就不会因为刷新而丢失 参考: https://juejin.…
https://blog.csdn.net/zhouzuoluo/article/details/81259298(copy) js** this.$router.push({ name: 'Flow', params: { id:data }})//跳转传参数 //接参 console.log(this.$route.params) 页面** 在父路由组件上使用router-link进行路由导航,传参用<router-link to="/one/login/001">的形…
没有系统学习过vue,以前使用路由传参都是直接this.$router.push({name:'main',params:{'id': 123}})的,没有在路由定义中配置参数,如下: router:[ { path:'/main', name:'main', component:Main }] // 从index.vue,携带id=123跳到main.vue this.$router.push({name:'main',params:{'id':123}} 所以一旦页面刷新就会丢失路由传过来的…
页面之间的跳转传参,正常前端js里写 window.location.href="xxxxx?id=1" 就可以了: 但是vue不一样 需要操作的是路由history,需要用到 VueRouter, 示例: 常用的场景是:列表页点击"查看"按钮,跳转到详情页. 在列表页(list.vue)按钮点击事件里写上 detail(row) { this.$router.push({ path: "detail", query: { id: row.id…