vue中如何缓存一些页面】的更多相关文章

在vue中,有时候我们只想缓存页面中的一些组件或页面,这个时候怎么办呢,我们就需要用判断来加载keep-alive. 例如: // router.js { path: "/driving_licence", component: () => DrivingLicence, meta: { isShowFooter: true, title: "驾照查分" } }, { name: "ticket", path: "/ticket&…
目录 1.Vue 无法检测实例被创建时不存在于 data 中的 属性 2. Vue 无法检测'对象属性'的添加或移除 3.Vue 不能检测利用数组索引直接修改一个数组项 4.Vue 不能监测直接修改数组长度的变化 5.在异步更新执行之前操作 DOM 数据不会变化 6.循环嵌套层级太深,视图不更新? 7.路由参数变化时,页面不更新(数据不更新) 8.使用keep-alive之后数据无法实时更新问题 1.Vue 无法检测实例被创建时不存在于 data 中的 属性 原因: 由于 Vue 会在初始化实例…
  v-for不能进行双向数据绑定,页面渲染完成后,再次更改v-for遍历的数据,js里面打印的数据看到数据值已经更改,但是页面的数据就是没有渲染,这是为什么呢? vue中v-for和angularjs中的ng-repeat不用 ,它对页面只进行一次渲染.后续如果需要更改数据且显示在页面上就需要想想其他办法啦~~~ 经过多次踩坑发现如下解决办法: 1.将vue引入当前页面,如下图所示: 2.使用Vue.set方法来对数据进行更改及渲染,如下图所示:…
路由中: 页面中: 需要缓存的组件中: 因为是keep-alive  所以在初始化页面的时候 会走一次生命周期 当二次进入的时候就已经是缓存状态了 不会在走生命周期 于是它就有了自己的周期函数分别是 1.组件激活时调用--activated    2.组件销毁时调用--deactivated    (这两个钩子在服务器渲染期间不会被调用!!!!!!!!!!!) 以上已经完成了需求 缓存数据和位置 以下是keep-alive的属性一些使用 还可以直接用于组件上 官网中的实例就是用于组件的 具体看例…
创建一个组件时,数据类型是数组,在删除这个数组中的数据时,数组中的数据是对的,但页面渲染的数据却不对. 举例:(不一定复现) <ul> <li v-for="(item, index) in peoples" :key="index">{{item.name}} <span @click="del(index)">删除</span> </li> </ul> <scrip…
在使用vue.js框架的时候,有时候会希望在页面渲染完成之后,再执行函数方法来处理初始化相关的操作,如果只处理页面位置.宽或者高时,必须要在页面完全渲染之后才可以,页面没有加载完成之前,获取到的宽高不准确.使用过jquery的都知道,有个ready方法可以使用,但vue.js则需要结合watch和nextTick方法来使用. watch():用于观察Vue实例上的数据变动. nextTick:在下次 DOM 更新循环结束之后执行延迟回调. 注:其中 imgHeight 为 watch 的检测对象…
1. 在main.js入口文件中写入 //路由跳转后,页面回到顶部 router.afterEach(() => { document.body.scrollTop = 0; document.documentElement.scrollTop = 0; } 位置如下: 2. 还可以在实例router对象的时候设置 export default new Router({ mode: 'hash', // base: '/dist/', scrollBehavior: () => ({ y: 0…
原文:http://www.jb51.net/article/129270.htm main.js入口文件配合vue-router写这个 router.afterEach((to,from,next) => {  window.scrollTo(0,0); });…
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') module.exports = { build: { index: path.resolve(__dirname, 'dist/index.html'), assetsRoot: path.resolve(__dirname, 'dist'), assetsSubDirectory: 'stati…
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') module.exports = { build: { index: path.resolve(__dirname, 'dist/index.html'), assetsRoot: path.resolve(__dirname, 'dist'), assetsSubDirectory: 'stati…
当我们需要和后台分离部署的时候,必须配置config/index.js: 用vue-cli 自动构建的目录里面  (环境变量及其基本变量的配置) var path = require('path') module.exports = { build: { index: path.resolve(__dirname, 'dist/index.html'), assetsRoot: path.resolve(__dirname, 'dist'), assetsSubDirectory: 'stati…
Vue中的三种Watcher Vue可以说存在三种watcher,第一种是在定义data函数时定义数据的render watcher:第二种是computed watcher,是computed函数在自身内部维护的一个watcher,配合其内部的属性dirty开关来决定computed的值是需要重新计算还是直接复用之前的值:第三种就是whtcher api了,就是用户自定义的export导出对象的watch属性:当然实际上他们都是通过class Watcher类来实现的. 描述 Vue.js的数…
1.数据产生变化或者页面需要vue数据渲染完之后加载的东西 Vue.nextTick(function () { alert(123); }); 2 调用vue方法 --------------Vue中添加方法 /** * 将页面时间绑定类型格式化 * fmt 格式: 'yyyy-MM-dd hh:mm:ss'; */ Vue.filter('dataFormat', function (value,fmt) { var getDate = new Date(value); var o = {…
项目开发中在用户由分类页category进入detail需保存用户状态,查阅了Vue官网后,发现vue2.0提供了一个keep-alive组件. 上一篇讲了keep-alive的基本用法,现在说说遇到的坑. 先说项目中的配置   在App.vue中的设置   在router中增加配置meta      上面这个设置后发现问题了,从category进入detail页后,状态被保存了,返回的时候保存了用户状态,达到了预期效果 但问题在于但从category返回到index后,再由index进入cat…
prop: include: 字符串或正则表达式.只有匹配的组件会被缓存. exclude: 字符串或正则表达式.任何匹配的组件都不会被缓存. 在2.1.0版本Vue中 常见用法: // 组件 export default { name: 'test-keep-alive', data () { return { includedComponents: "test-keep-alive" } } } <keep-alive include="test-keep-aliv…
vue中强大的缓存机制之keep-alive 最近在用vue做项目,在切换页面时发现切换回原来的页面无法保存原来的状态. 如A页面需要ajax请求数据,然后切换到B页面做某些事情,再切换回A页面时,A页面又再请求数据,但是作为前端,性能优化时必须要考虑的,并且,vue构建的单页面应用,大多数情况下是不需要重新请求数据的,这时keep-alive就派上用场了. 第一部分:vue中内置的组件 在vue中,为了方便开发者更好的使用vue,减少不必要的代码量,作者内置了一些组件,主要有: compone…
vue中methods中的方法闭包缓存问题 问题背景 需求描述 在路由的导航栏中需要, 判断是否为第一次点击 需要一个标志位来记录是否点击过 现状: 这个标志位只在一个函数中用过.不希望存放全局 希望在这个methods中形成闭包, 用来缓存这个函数 做出如下尝试后, 发现可以实现. 当前问题: 不能在闭包调用时找到正确的this. 诡异点 测试使用时: 返回的this找到了window // 测试使用: <div id="app"> <button @click=&…
vue中前进刷新.后退缓存用户浏览数据和浏览位置的实践 2018年07月07日 11:58:40 大灰狼的小绵羊哥哥 阅读数:4492   vue中,我们所要实现的一个场景就是: 1.搜索页面==>到搜索结果页时,搜索结果页面要重新获取数据, 2.搜索结果页面==>点击进入详情页==>从详情页返回列表页时,要保存上次已经加载的数据和自动还原上次的浏览位置. 最近在项目中遇到这个问题,思考了几套方案,总是不太完善.百度搜到的方案也基本都只能满足一些很简单的需求.对于复杂一些的情况,还是有些…
每次使用返回是页面总是会刷新 导致了一些体验上的不愉快 现在 发现vue中的一个很方便的方法还可以用来优化性能就是: keep-alive缓存组件 <router-view v-if="!$route.meta.keepAlive"></router-view> <keep-alive> <router-view v-if="$route.meta.keepAlive"></router-view> <…
vue中的对象和数组的元素直接赋值修改时,是不能响应到view中去的 1.对象更新 this.a={title:'列表1’}; this.a.title='列表2’; <h1>{{a.title}}</h1> 虽然,a的数据已经被修改成功,但是页面并不能动态更新 需要使用,以下这种方式去更新 this.$set(a,'title','列表2'); //或者 Vue.set(a,'title','列表2'); 2.数组更新 同理: ,,,]; tihs.arr[]=; <spa…
一.模板渲染 <div id="J_render_app"> <ul v-if="items.length"> <li v-for="item in items">{{ item.name }}</li> </ul> <p v-else>No items found.</p> </div> var vrrapp = new Vue({ el:"…
vue中嵌套iframe,将要嵌套的文件放在static下面: <iframe src="../../../static/bear.html" width="300" height="300" frameborder="0" scrolling="auto"></iframe>   src可以使用相对路径,也可使用服务器根路径http:localhost:8088/…等: <i…
vue中嵌套iframe,将要嵌套的文件放在static下面.(要将打包文件整体放在statici里,我的文件名是canvas) src可以使用相对路径,也可使用服务器根路径http:localhost:8088/… <iframe src="../../static/canvas/无标题-1_HTML Canvas.html" width="1200" height="300" frameborder="0" scro…
vue中滚动页面,改变样式&&导航栏滚动时,样式透明度修改.vue <div class="commonHeader" v-bind:class="{ 'navActive': scrollFlag }"> <img src="@/images/home/icon_jdjr.png" v-bind:class="{ 'scrollFlag': scrollFlag }"> datascr…
一:vue中使用element-ui的使用, 二:课程的相关介绍, 三:vue绑定图片, 四:课程列表接口, 五:课程详情页面…
1.vue中数据接收成功,页面渲染失败.代码如下 经过查找资料修改代码为 或是 原因是: 由于 JavaScript 的限制, Vue 不能检测以下变动的数组: 当你利用索引直接设置一个项时,例如: vm.items[indexOfItem] = newValue 当你修改数组的长度时,例如: vm.items.length = newLength 但是可以通过set和push,splice操作数组…
在vue中实现页面刷新有不同的方法: 如:this.$router.go(0),location.reload()等,但是或多或少会存在问题,如页面会一闪等 所以建议使用[provide/inject]实现刷新 该方法t简单的来说就是在父组件中 1.设置provider 2.然后在子组件中通过inject调用   3.在需要执行的地方直接调用方法即可…
需求: 产品经理在列表页(几千个数据,n个page)点击某一项进去到详情页后,再返回到列表页发现页面回到了第一页,找不到之前的查看的是哪一条了,为了方便咋公司产品经理,返回列表页时需要记住之前的page页 解决思路: 在列表页点击某一条进入详情页的时候,触发当前页面的keep-alive缓存页面 解决步骤: 1. 设置路由 需要缓存的路由设置 keepAlive : true, 不需要缓存的路由设置 keepAlive: false router index.js [ { path: '/dm'…
vue中刷新页面的方法 1. 不能使用 this.$router.go(0) 或者 window.reload() 不起作用还特别恶心 这个才是有效果的刷新页面,只要照图敲,就能有效果 我们在 app.vue 中就是有 router-view  标签的组件 html 结构 js 的部分 如果别的组件用到了刷新页面的功能 js 部分 注入这个方法 使用这个方法…
一.背景 在vue项目中使用vue-router做页面跳转时,路由的方式有两种,一种是静态路由,另一种是动态路由.而要实现对路由的控制需要使用vuex和router全局守卫进行判断拦截(安全问题文章最后讨论) 二.使用场景 静态路由的使用场景:在我们使用静态路由实现页面跳转时,不管我们是否登录,当我们在地址栏修改地址后,页面会发生跳转并展示页面内容(数据并不会被展示出来),这样的问题显然是不能够被接受的: 动态路由的使用场景:动态路由无非就是从后端拿到了数据然后在加到router里面了.假如用户…