We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
大家好,这里是@IT·平头哥联盟,我是首席甩锅官——老金,今天给大家分享的,一些日常中神秘而又简单的vue的实用小技巧,以及我在我司项目中实用vue的总结和坑,跟大家一起分享,希望能给其他攻城狮带来些许便利,如有理解错误,请纠正。
首席甩锅官
mounted(){ setTimeout( function () { //setInterval同理 console.log(this); //此时this指向Window对象 },1000) ; }
//箭头函数访问this实例因为箭头函数本身没有绑定this setTimeout(() => { console. log(this);}, 500) ; //使用变量访问this实例let self=this; },1000); setTimeout (function () { console. log(self);//使用self变量访问this实例 }, 1000) ;
created() { this.intervalid = setInterval(() => { this.layerError = ""; this.Timer = null; }, 100000); } beforeDestroy( ){ //我通常是把setInterval( )定时器赋值给this实例,然后就可以像下面这么暂停。 clearInterval(this.intervalid); }
//在路由组件中:mounted(){}, beforeRouteLeave (to, from, next) { if(用户已经输入信息){ //出现弹窗提醒保存草稿,或者自动后台为其保存 }else{ next(true);//用户离开 } }
<template> <el-progress type="circle" :percentage=“0" @click=“stopProgress”></elprogress> </template> <script> export default { methods:{ stopProgress() { console.log('停止') } } } </script>
<template> <el-progress type="circle" :percentage=“0" @click.native=“stopProgress”></el-progress> </template> <script> export default { methods:{ stopProgress() { console.log('停止') } } } </script>
<template> <el-progress type="circle" :percentage="O" ref="progress"></el-progress></template> <script> this.$refs.progress //组件对象实例, 可以手动调用组件的内置方法和属性 this.$refs.progress.$el //组件 对象的最外层dom元素 </script>
在样式中设置完scoped在浏览器解析为如下图这样,a是个div,a div里面包含一个组件里面解析完了div的样式名字为b,想在父组件影响到子组件的默认样式。
解决方法:
<style scoped> .a >>> .b { /* ... */ } </style> //有些像Sass之类的预处理器无法正确解析>>>。这种情况下你可以使用/deep/操作符取而代之- - - -这是一个>>>的别名,同样可以正常工作。 <style scoped lang=“scss”> .a /deep/ .b { /* ... */ } </style>
data() { return { arr: [1,2,3], obj:{ a: 1, b: 2 } }; }, // 数组更新视图不更新 this.arr[0] = 'OBKoro1'; this.arr.length = 1; console.log(arr);// ['OBKoro1']; // 数据更新,对象视图不更新 this.obj.c = 'OBKoro1'; delete this.obj.a; console.log(obj); // {b:2,c:'OBKoro1'}
<!-- 在双花括号中 --> <div>{{ message | DateFormat }}</div> //展示正确时间 <!-- 在'v-bind'中 --> <div v-bind:id="rawId | formatId"></div> Demo:一个日期过滤器返回yyyy- MM-ddhh:mm:ss的样式 引入一个提前写好日期格式化的js import dayjs from 'dayjs' export default { data() { return { //时间毫秒 message:18324798324789 } }, filters: { //传入进行日期格式化 DateFormat(value) { return dayjs(value).format("YYYY-MM-DD HH:mm:ss") } } }
watch: { obj: { handler(val, oldVal) { console.log('属性变化触发这个回调',val, oldVal); }, deep: true // 监测这个对象中每一个属性的变化 }, step: { // 属性 //watch handler(val, oldVal) { console.log("默认触发一次", val, oldVal); }, immediate: true // 默认触发一次 } }
欢迎大家一起探讨 ~~
作者:老金 - 首席甩锅官 链接:https://honeybadger8.github.io/blog/ 交流群:912594095,公众号:honeyBadger8 本文原创,著作权归作者所有。商业转载请联系@IT·平头哥联盟获得授权,非商业转载请注明链接及出处。
作者:老金 - 首席甩锅官
链接:https://honeybadger8.github.io/blog/
交流群:912594095,公众号:honeyBadger8
honeyBadger8
本文原创,著作权归作者所有。商业转载请联系@IT·平头哥联盟获得授权,非商业转载请注明链接及出处。
@IT·平头哥联盟
The text was updated successfully, but these errors were encountered:
No branches or pull requests
前言
大家好,这里是@IT·平头哥联盟,我是
首席甩锅官
——老金,今天给大家分享的,一些日常中神秘而又简单的vue的实用小技巧,以及我在我司项目中实用vue的总结和坑,跟大家一起分享,希望能给其他攻城狮带来些许便利,如有理解错误,请纠正。技巧/坑点
1.setTimeout/ setInterval
setInterval路由跳转继续运行并没有销毁
2.Vue路由拦截浏览器后退实现草稿保存类似需求
3.自定义组件添加click等事件不生效
4.手动操控自定义组件
5.深度作用选择器
在样式中设置完scoped在浏览器解析为如下图这样,a是个div,a div里面包含一个组件里面解析完了div的样式名字为b,想在父组件影响到子组件的默认样式。
解决方法:
6.Vue数组/对象更新视图不更新
7.Vue Filters过滤器的使用
8.Vue深度watch与watch立即触发回调
欢迎大家一起探讨 ~~
The text was updated successfully, but these errors were encountered: