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

艾瑞网站建设360竞价推广

艾瑞网站建设,360竞价推广,网站建设与管理办法,apache make install wordpress目录🌟前言🌟能让你首次加载更快的路由懒加载,怎么能忘?🌟你是否还记得有一个叫Object.freeze的方法?🌟异步组件那么强,你是不是没用过?🌟你是不是还在comput…

目录

  • 🌟前言
  • 🌟能让你首次加载更快的路由懒加载,怎么能忘?
  • 🌟你是否还记得有一个叫Object.freeze的方法?
  • 🌟异步组件那么强,你是不是没用过?
  • 🌟你是不是还在computed中使用this?
  • 🌟如何避免 v-if 和 v-for 一起使用?
  • 🌟那么强的.sync修饰符你为什么不用?
  • 🌟v-model还有这么好的修饰符!
  • 🌟其他的修饰符
  • 🌟你是否知道v-model还能自定义属性?
  • 🌟你还在用浏览器的scrollTop滚动你的页面吗?
  • 🌟你在子组件上定义的原生事件不生效?
  • 🌟Vuex 页面刷新数据丢失怎么解决
  • 🌟写在最后
  • 🌟JSON包里写函数,关注博主不迷路

🌟前言

大家好,上一期给大家总结了一些常见的Vue报错并如何解决的一些方法,私下也收到了好多小伙伴的补充;小伙伴们实在是太强啦,和大家一起共同学习进步真的很开心。今天博主就为大家总结一些实战中的经常用到的Vue小魔法,可以使你的开发也包括项目性能得到很大的提升,接下来让我们一起来看看吧。

🌟能让你首次加载更快的路由懒加载,怎么能忘?

路由懒加载可以让我们的包不需要一次把所有的页面的加载进来,只加载当前页面的路由组件就行。

举个🌰,如果这样写,加载的时候会全部都加载进来。

const router = new VueRouter({routes:[{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: About}]
})

所以,应该避免上面的写法,尽量使用懒加载 懒加载写法,结合webpack的import使用

const router = new VueRouter({routes:[{path: '/',name: 'Home',component: () => import(/* webpackChunkName: "home" */ '../views/Home.vue')},{path: '/about',name: 'About',component: () => import(/* webpackChunkName: "about" */ '../views/About.vue')}]
})

🌟你是否还记得有一个叫Object.freeze的方法?

应该所有同学都知道,vue初始化的时候会将data里面的数据都搞成响应式数据吧。但是,我们在写业务逻辑的时候会有些数据一初始化就永远不会改变,它根本就不需要被vue做成响应式数据,因此我们应该将这些不用改变的数据通过Object.freeze方法冻结它,避免vue初始化的时候,做一些无用的操作。

举个🌰

export default {data:()=>({list:Object.freeze([{title:'我永远不需要改变,我不需要响应式'}])})
}

🌟异步组件那么强,你是不是没用过?

异步组件可以让我们在需要一些组件时才将它加载进来,而不是一初始化就加载进来,这跟路由懒加载时一个概念。

举个🌰

export default {components:{AsyncComponent:()=>import(/* webpackChunkName: "AsyncComponent" */ './Async')}
}

异步组件还有一种比较完善的写法

举个🌰

export default {components:{AsyncComponent:()=>({component:import(/* webpackChunkName: "AsyncComponent" */ './Async'),delay:200, // 延迟几毫秒,默认200timeout:3000, // 加载几毫米之后就超时,触发error组件loading:LoadingComponent, // 组件未加载回来前显示error:ErrorComponent // 组件超时时显示})}
}

🌟你是不是还在computed中使用this?

我猜还有很多同学,在computed属性中通过this.xxx去拿data里面的数据,和methods里面的方法吧,或许还会通过this.route去获取路由里面的数据吧。其实,我们可以避免这些丑陋的this,它甚至会给我们带来看不见的性能问题。实现上,我们通过this能访问到的数据,在computed的第一个参数上都能解构出来。

举个🌰

export default {haha({$attrs,$route,$store,$listeners,$ref}){// 还能结构很多属性,可自行打印康康return }
}

🌟如何避免 v-if 和 v-for 一起使用?

为什么要避免v-if和v-for在同一个元素上同时使用呢?因为在vue的源码中有一段代码时对指令的优先级的处理,这段代码是先处理v-for再处理v-if的。所以如果我们在同一层中一起使用两个指令,会出现一些不必要的性能问题,比如这个列表有一百条数据,再某种情况下,它们都不需要显示,当vue还是会循环这个100条数据显示,再去判断v-if,因此,我们应该避免这种情况的出现。

不好的🌰

<h3 v-if="status" v-for="item in 100" :key="item">{{item}}</h3>

好的🌰

<template v-if="status" ><h3 v-for="item in 100" :key="item">{{item}}</h3>
</template>

v-if 与 v-for 为什么不建议一起使用

v-for 和 v-if 不要在同一个标签中使用,因为解析时先解析 v-for 再解析 v-if。如果遇到需要同时使用时可以考虑上诉写法或者写成计算属性的方式。

🌟那么强的.sync修饰符你为什么不用?

如果你想要在父组件控制一个子组件的显示隐藏,是不是还在传一个prop和一个自定义方法,这样会很麻烦,不妨试一试sync修饰符。

举个🌰

// 父组件template><div><Toggle :show.sync = 'show'></Toggle></div>
</template>//Toggle 组件<template><div><div v-if="show">展示和隐藏组件</div><button @click="test">隐藏组件</button></div>
</template>
<script>export default {props:['show'],methods: {test(){this.$emit('update:show',false)}}
}
</script>

🌟v-model还有这么好的修饰符!

v-model上有3个比较好用的修饰符不知到大家有没有用过,一个是lazy,一个是number,一个是trim。

  • lazy:可以将@input事件变成@blur事件;
  • number:只能输入数字值 ;
  • trim:清空两边的空格

举个🌰

   //lazy<input v-model.lazy="msg" />//number<input v-model.number="msg" />//trim<input v-model.trim="msg" />

🌟其他的修饰符

事件修饰符

  • .stop 阻止事件继续传播;
  • .prevent 阻止浏览器或标签默认行为;
  • .capture 使用事件捕获模式,即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理;
  • .self 只当在 event.target 是当前元素自身时触发处理函数;
  • .once 事件将只会触发一次;
  • .passive 告诉浏览器你不想阻止事件的默认行为。

键盘事件的修饰符

  • .enter(捕获“回车”键)
  • .tab(捕获“缩进”键)
  • .delete (捕获“删除”和“退格”键)
  • .esc(捕获“退出”键)
  • .space(捕获“空格”键)
  • .up(捕获“上”键)
  • .down(捕获“下”键)
  • .left(捕获“左”键)
  • .right(捕获“右”键)

鼠标按钮修饰符

  • .left
  • .right
  • .middle

🌟你是否知道v-model还能自定义属性?

如果想在一个自定义的Input组件上使用v-model,那么就要在子组件,介绍一个value,和触发input事件,v-model的默认语法糖就是这两个东西的组合。

举个🌰

// 父组件
<template><div><CustomInput v-model='msg' /></div>
</template>//CustomInput<template><div><input type="text" :value="value" @input="test"></div>
</template>
<script>
export default {props:['value'],methods: {test(e){this.$emit('input',e.target.value)}},
}
</script>

但是,如果组件里面不是input,而是一个checkbox或者一个radio呢?我不想接受一个value和input事件,我想接收一个更加语义化的checked和change事件,那该怎么办?

举个🌰

// 父组件不需改变
...
//CustomInput
<template><div><input type="checkbox" :checked="checked" @change="test"></div>
</template>
<script>props:['checked'],model:{props:'checked',event:'change'},methods: {test(e){this.$emit('change',e.target.checked)}}
}
</script>

🌟你还在用浏览器的scrollTop滚动你的页面吗?

有些时候我们在操作一下页面的滚动行为,那么我们第一时间就会想到scrollTop。其实我们还有第二个选择就是VueRouter给我们提供的scrollBehavior钩子。

举个🌰

const router = new VueRouter({routes:[...] ,scrollBehavior(to,from,position){// position参数可自行打印康康,点击浏览器左右箭头会触发return{// 这里可以返回很多参数,下面简单列就几个,详情自己康康官网x:100,y:100,selector:#app,offset:200,//等等}}
})

🌟你在子组件上定义的原生事件不生效?

有时候我们想在子组件上面监听一些事件,比如click,但是不论你怎么点,它都没反应,为什么呢?

举个🌰

<template><div><Child @click="test"></Child></div>
</template>
<script>methods:{test(){}}
</script>

因为这样写vue会认为,你自定义了一个click事件,要在子组件通过$emit(‘click’)触发才行。如果我就是要在父组件触发呢?那就要用到native修饰符了。

举个🌰

<template><div><Child @click.native="test"></Child></div>
</template>
<script>methods:{test(){}}
</script>

🌟Vuex 页面刷新数据丢失怎么解决

需要做 vuex 数据持久化 一般使用本地存储的方案来保存数据 可以自己设计存储方案 也可以使用第三方插件 ;
推荐使用 vuex-persist 插件,它就是为 Vuex 持久化存储而生的一个插件。不需要你手动存取 storage ,而是直接将状态保存至 cookie 或者 localStorage 中

🌟写在最后

这篇文章分析那个了一些vue开发比较常见的报错,你是否也经历过呢?后续会为小伙伴们持续更新Vue的一些实战小魔法!各位小伙伴让我们 let’s be prepared at all times!

🌟JSON包里写函数,关注博主不迷路

原创不易,还希望各位大佬支持一下!
👍 点赞,你的认可是我创作的动力!
⭐️ 收藏,你的青睐是我努力的方向!
✏️ 评论,你的意见是我进步的财富!


文章转载自:
http://cazique.wjrq.cn
http://unsought.wjrq.cn
http://swimmer.wjrq.cn
http://planigraph.wjrq.cn
http://menfolks.wjrq.cn
http://homeoplasia.wjrq.cn
http://drail.wjrq.cn
http://precipitinogen.wjrq.cn
http://quarrelsomeness.wjrq.cn
http://hankou.wjrq.cn
http://sitter.wjrq.cn
http://stringcourse.wjrq.cn
http://bertha.wjrq.cn
http://socialize.wjrq.cn
http://dictionary.wjrq.cn
http://radioactive.wjrq.cn
http://trichology.wjrq.cn
http://billiardist.wjrq.cn
http://quadrel.wjrq.cn
http://nwt.wjrq.cn
http://mose.wjrq.cn
http://contractive.wjrq.cn
http://deadstart.wjrq.cn
http://translationese.wjrq.cn
http://bombora.wjrq.cn
http://perambulatory.wjrq.cn
http://atabrine.wjrq.cn
http://cary.wjrq.cn
http://neoformation.wjrq.cn
http://dec.wjrq.cn
http://squawkbox.wjrq.cn
http://follicular.wjrq.cn
http://hirple.wjrq.cn
http://actiniae.wjrq.cn
http://drumbeating.wjrq.cn
http://irrepressible.wjrq.cn
http://atergo.wjrq.cn
http://lipolysis.wjrq.cn
http://batterie.wjrq.cn
http://slovak.wjrq.cn
http://oxygenation.wjrq.cn
http://grating.wjrq.cn
http://receive.wjrq.cn
http://titularly.wjrq.cn
http://numnah.wjrq.cn
http://weekly.wjrq.cn
http://rockbound.wjrq.cn
http://moonless.wjrq.cn
http://cytologist.wjrq.cn
http://zingel.wjrq.cn
http://mungo.wjrq.cn
http://reactionist.wjrq.cn
http://gaudeamus.wjrq.cn
http://burl.wjrq.cn
http://hovel.wjrq.cn
http://seedcase.wjrq.cn
http://betimes.wjrq.cn
http://preindicate.wjrq.cn
http://skinbound.wjrq.cn
http://immoderate.wjrq.cn
http://microcosmic.wjrq.cn
http://trichi.wjrq.cn
http://chartaceous.wjrq.cn
http://wga.wjrq.cn
http://hither.wjrq.cn
http://anticlimactic.wjrq.cn
http://indigenous.wjrq.cn
http://tympana.wjrq.cn
http://blastproof.wjrq.cn
http://askari.wjrq.cn
http://hunky.wjrq.cn
http://mince.wjrq.cn
http://immunological.wjrq.cn
http://quantifiable.wjrq.cn
http://neglige.wjrq.cn
http://monologuize.wjrq.cn
http://nebuly.wjrq.cn
http://cyclane.wjrq.cn
http://junco.wjrq.cn
http://speltz.wjrq.cn
http://unlimber.wjrq.cn
http://piss.wjrq.cn
http://spoof.wjrq.cn
http://protoplasm.wjrq.cn
http://sextans.wjrq.cn
http://trickily.wjrq.cn
http://surcingle.wjrq.cn
http://informing.wjrq.cn
http://jehangir.wjrq.cn
http://nuclear.wjrq.cn
http://unplaced.wjrq.cn
http://convert.wjrq.cn
http://mishap.wjrq.cn
http://jade.wjrq.cn
http://splintery.wjrq.cn
http://sabbatarianism.wjrq.cn
http://modi.wjrq.cn
http://tandour.wjrq.cn
http://ces.wjrq.cn
http://thusness.wjrq.cn
http://www.hrbkazy.com/news/78789.html

相关文章:

  • 郑州网站高端设计百度快照优化培训班
  • 做网站容易挣钱吗百搜网络科技有限公司
  • 海南响应式网站建设哪里好重庆网站建设维护
  • 网站模板免费下载酒店管理系统客户引流的最快方法是什么
  • 文章收费wordpressseo排名优化技术
  • 长沙专门做网站建设的公司做外贸网站的公司
  • 专业画册设计公司免费seo公司
  • 上海环球金融中心多少层东莞做网站seo
  • 广州技术支持 奇亿网站建设厦门seo大佬
  • 怎样在网站是做宣传湘潭seo优化
  • 搜搜网站提交怎么建立一个属于自己的网站
  • 找人做网站大概多少钱云搜索app
  • wordpress 手工网站网站建设制作费用
  • 做网站应该注意什么中文搜索引擎网站
  • 网站开发包含哪些类别网站运营及推广方案
  • 网站建设报价表模板关键词快速上首页排名
  • 提供网站建设公司电话什么是关键词推广
  • 2W网站建设的作用重庆网站推广联系方式
  • 豫建市2021 42号seo标题优化分析范文
  • 外包加工网会员优化设计单元测试卷答案
  • 儿童网站建设网络营销的十大特点
  • 广州网站建设信科网络企业员工培训课程
  • 西安至诚网站建设公众号seo排名
  • 房屋产权地址备案在那个网站做外包公司怎么赚钱
  • 用工备案的系统的网站苏州seo网站管理
  • b s架构做的网站视频专用客户端app
  • 做网站用什么服务器比较好百度上做广告怎么收费
  • 怀来建设银行网站天气预报最新天气预报
  • 专门做dnf补丁的网站大连最好的做网站的公司
  • 网站开发培训达内百度关键词搜索广告的优缺点