当前位置: 首页 > news >正文

asp与java做网站效果西安优化网站公司

asp与java做网站效果,西安优化网站公司,公司网站设计很好的,四平网站建设前言 在开发过程中,有时候会遇到这么一种情况: 1.切换页面页面没有更新 2.通过动态的赋值,但是dom没有及时更新,能够获取到动态赋的值,但是无法获取到双向绑定的dom节点, 这就需要我们手动进行强制刷新组件,下面这篇文章主要给大家介绍了关于vue组件强制刷新的方案…

前言 

在开发过程中,有时候会遇到这么一种情况:
1.切换页面页面没有更新
2.通过动态的赋值,但是dom没有及时更新,能够获取到动态赋的值,但是无法获取到双向绑定的dom节点,
这就需要我们手动进行强制刷新组件,下面这篇文章主要给大家介绍了关于vue组件强制刷新的方案,需要的朋友可以参考下 

  1. 刷新整个页面(最low的,可以借助router机制)
  2. 使用v-if标记(比较low的)
  3. provide和inject实现页面刷新
  4. 使用内置的forceUpdate方法(较好的)
  5. 使用key-changing优化组件(最好的)

location.reload();
this.$rotuer.go(0);

存在问题:

1.强制刷新页面,出现短暂的空白闪烁。

2.h5页面在安卓机方法不兼容。

  • this.$rotuer.go(0) 安卓、ios都不支持、pc支持
  • location.reload() 安卓不支持 、 ios支持、pc支持

一、强制全局刷新方法1- location.reload()

重新载入当前文档:location.reload();

定义和用法:

reload()方法用于刷新当前文档。

reload() 方法类似于你浏览器上的刷新页面按钮F5。

案例:

 点击修改按钮后,重新加载页面,让修改后的结果显示出来。

onSubmit() {...update(...).then(response => {if (response.success) {this.$message({message: response.msg,type: response.success});}setTimeout(() => {this.listLoading = false}, 1.5 * 1000)})location.reload()},

PS:如果使用getList()来刷新页面,有可能有时不会有刷新的效果。而用location.reload()方法是肯定会刷新的。

二、强制全局刷新方法2- this.$router.go(0)

经常使用vue的小伙伴看到这个应该很熟悉吧,我们经常用它来实现前进后退,但别忘了它还可以实现自身页面刷新

this.$router.go(0)

 对于以上两种方法,虽然都可以实现页面刷新,但页面会刷的白一下,给用户的体验非常不好。利用provide/inject组合方式是我目前觉得最好用的方法,而且可以实现局部刷新。下面我们就来详细介绍其用法

三、强制全局刷新方法3- this.$forceUpdate();

<template><div>xxx</div><el-button @click="refresh()">强制刷新</el-button>
</template>
<script>
export default {data() {return {}},methods: {refresh() {// forceUpdate只会强制更新页面,不会更新现有的计算属性。this.$forceUpdate();}}
}
</script>

四、强制局部刷新方法- provide inject和v-if

vue局部刷新

通过设置isReload来解决不刷新问题,原理就是通过 v-if 控制组件容器的出现与消失, 达到重新渲染的效果 , 从而实现我们的目的。

(1)、在父组件Layout.vue的子组件Content.vue 中定义全局方法reload()

注意:provide 和 inject 绑定并不是可响应的。这是刻意为之的。然而,如果你传入了一个可监听的对象,那么其对象的 property 还是可响应的。 

<template><section class="app-main"><transition name="fade-transform" mode="out-in"><router-view v-if="isReload1"/></transition></section>
</template><script>
export default {name: 'AppMain',data() {return {isReload1: true}},// 祖先组件向其所有子孙后代注入一个依赖,不论组件层次有多深,并在起上下游关系成立的时间里始终生效。provide() {return {reload1: this.reload1,};},methods: {reload1() {this.isReload1 = false;this.$nextTick(() => {this.isReload1 = true;});},}}
</script><style scoped>
.app-main {/*58 = navbar  */min-height: calc(100vh - 58px);position: relative;overflow: hidden;
}
</style>

在需要引入的子组件中引入

inject: ["reload1"]

然后在子组件调用此方法:

<template>
<div class="page"><button @click="reloadFun">刷新</button>
</div>
</template><script>
import Vue from 'vue';export default {inject:['reload'], // 使用 inject 注入 reload 变量 data(){return{}},methods: {reloadFun(){this.reload();  // 直接使用}},}
</script>

 这种方法比第一种方法的用户体验好一些。

五、使用 v-if

<template><div v-if="show">xxx</div><el-button @click="refresh()">强制刷新</el-button>
</template>
<script>
export default {data() {return {show: true}},methods: {refresh() {this.show = false;// this.$nextTick可实现在DOM 状态更新后,执行传入的方法。this.$nextTick(() => {this.show = true;});}}
}
</script>

六、使用key-changing优化组件

原理很简单,vue使用key标记组件身份,当key改变时就是释放原始组件,重新加载新的组件。 

<template><div :key="key>xxx</div><el-button @click="refresh()">强制刷新</el-button>
</template>
<script>
export default {data() {return {key: 1}},methods: {refresh() {this.key++;  // 或者 this.key= new Date().getTime();}}
}
</script>

http://www.hkea.cn/news/411956/

相关文章:

  • 网站推广服务合同简述网络营销的主要方法
  • 信息门户网站是什么成人计算机培训机构哪个最好
  • 网站建设公司 中企动力公司东莞商城网站建设
  • b2c的电子商务网站自己想做个网站怎么做
  • 京东pc网站用什么做的如何注册网站怎么注册
  • 长沙商城网站制作seo线下培训课程
  • web网站开发公司网站制作优化排名
  • 这么做3d网站企业邮箱网页版
  • 瑞安网站建设公司关键词排名网络推广
  • 南京学做网站友情链接检查工具
  • 参考文献网站开发百度重庆营销中心
  • 如何做微信ppt模板下载网站企业网页设计公司
  • 做b2b网站百度点击快速排名
  • 网站怎么做移动图片不显示不出来吗芭嘞seo
  • 旅游网站建设服务器ip域名解析
  • 企业网站建设三个原则百度指数资讯指数是指什么
  • 房地产集团网站建设方案软文文案案例
  • 阜蒙县建设学校网站是什么北京seo编辑
  • 珠海建设局网站十大经典事件营销案例分析
  • 创建网站开发公司互联网推广引流是做什么的
  • 万盛集团网站建设seo网站推广全程实例
  • 做教育的网站需要资质吗网站怎么开发
  • 微网站怎么做滚动中国万网域名注册官网
  • 个人如何免费建网站seo在线优化工具 si
  • 双线主机可以做彩票网站吗网络推广合作协议
  • 做外贸的b2b网站域名批量查询系统
  • 建设网站需要哪些职位网站建设策划书
  • 苏州网站建设哪里好网站点击排名优化
  • 网站建设收费标准策划百度推广关键词越多越好吗
  • 网站怎么做更新吗如何建立网页