当前位置: 首页 > Web前端 > HTML5

没有DOM操作的日子我是怎么熬过来的(完结篇)

时间:2023-04-05 00:35:39 HTML5

前言写完完结章的那些日子,Vue版本稳定在2.5.10。弄清楚Vue的脉络之后,我就作为一个经历过无数坑的人,说说我在MVVM时代遇到的事情。接下来,正文从这里开始~很多学习Vue的童鞋灯下都有误区。比如看各种Vue入门视频教程,浏览各种Vue学习笔记的技术博客,逛各种叫Vue技术交流的大群。...殊不知你们都是骑驴找马绕道。其实通往MVVM时代最直的路就是看官方文档,简单粗暴但有效。读一遍不明白,再多读几遍。书读百遍,见其义,是此也。你按照官方文档,然后用vue-cli脚手架搭好环境,找个iview之类的UI组件库直接启动,多练自然就来了。如果你在公司项目中遇到无法解决的问题,请直接请贵公司的前端老大吃个火锅,喝三杯酒。大哥,再趁着工作的机会问一下,那你的Question还是Question吗?噗~接下来分几个部分梳理一下我的vue进阶之路:VueDevtools有句老话,工欲善其事,必先利其器。我们在开发Vue项目的时候,强烈推荐在你的Chrome上安装VueDevtools,它是一个古老的调试和审查Vue应用的神器。别问我怎么FQ安装这个插件,我也是借了Lantern的梯子,在Chrome网上商店搜索了对应的扩展。如果你是伸手党,欢迎加入我的前端圈,那里有你想要的安装器。从上图中我们可以看到,组件的prop属性、computed属性、vue的getter属性等,以及Vuex中触发的mutation、state的当前值等,都被直观的展示出来了。为什么要在HTML中监听事件您可能已经注意到,这种监听事件的方式违反了长期以来的关注点分离传统。不过不用担心,因为所有Vue.js的事件处理方法和表达式都与当前视图的ViewModel严格绑定,不会造成任何维护困难。事实上,使用v-on有几个好处:一眼就能找到JavaScript代码中相应的方法。因为您不必在JavaScript中手动绑定事件,所以您的ViewModel代码可以是非常纯的逻辑,与DOM完全解耦,并且更易于测试。当ViewModel被销毁时,所有事件处理程序都会自动删除。您不必担心如何自己清洁它们。如何理解组件槽对于一个灵活的组件来说,可更换的组件是非常重要的。Vue提供了一个叫做slot的概念,它使用slot标签作为内容槽的占位符。俗话说,Talkischeapshowyourcode。快贴上我的代码~定义代码:1使用代码:12345

Thisisheader

67891011

Contentbody.

1213
14151617
Footer
18192021摒弃vue-resource,拥抱axios前端开发不可避免的涉及前后端交互。Vue2.0出来后,游大师在台上高举双臂呐喊,宣布停止vue-resource的更新,推荐大家拥抱新的axios。说是api变化,其实都是ES6的promise对象的实现。说白了就是变相放弃vue-resource。说自然选择是轻巧紧凑的更恰当。为了响应领导的号召,我毅然掉进了axios的圈套。将大象放入冰箱需要多少步?第一步安装:npminstallaxios--save-dev第二步引入:1importVuefrom'vue'23importaxiosfrom'axios'45//引入axios后,修改原型链为解决axios无法使用问题67Vue.prototype.$axios=axios;第三步,使用:俗话说,不会交互的前端不是好的全栈。我直接上代码~话说axios撩妹(请求数据)是一流的技术,没人反对,你看,我可以get()请求,post()请求,类ajax形式发送请求,当请求成功后,会执行.then,否则会执行.catch。接着是webpack编译,跑一个例子,在Devtools中F12打开Network,然后查看XHR,发现请求状态码StatusCode:200OK(excited),然后点击Response可以看到响应json数据。OK,握手结束。当然,如果你看到公司有人在电脑屏幕上嘲笑网络,你应该能猜到他刚刚完成了一个完美的请求。从他那猥琐的笑容中,可以隐约感觉到,这人是在晋级全栈的路上YY,哈哈~。亲爱的游大师,您总是以套路取人心~Vue组件化实践带来的思考近两年,组件化在前端圈子里大行其道,给开发者带来的好处是显而易见的。可以使用嵌套组件树完全创建用户界面。描述提高了代码的复用性,无需复制重复DOM结构。前端可以这么漂亮。在Vue中,每一个封装好的组件都可以看作是一个ViewModel。如果你在一个简单的SPA项目中,你可以直接使用Vue.component定义一个全局组件。现在,大部分公司级的项目都会引入工程管理,使用包管理工具来管理,比如npm或者yarn。所以Vue不适合在复杂的项目中使用Vue.component来定义一个组件。这里需要使用单文件组件,也可以使用Webpack或者Browserify等构建工具。组件的划分一般分为两部分:页面区域:header,footer,sidebar...功能模块:select,pagination...Vue虽然针对组件样式实现了scoped,但这也有局限性。如果A组件包含B组件,A的作用域css不应尝试定义B组件内部元素的样式,这是一种糟糕的体验。因此,要解决css命名污染,CSSModules似乎是一个很好的解决方案。之前的项目中使用了lodash,在数据处理上非常方便,但是这次新的组件开发中并没有引入,所以在开发过程中遇到数据处理的时候总会想到lodash的方式。其实js原生支持forEach、map等很多方便的方法,用forin来遍历对象。Lodash只是一种用于封装的语法糖。对于lodash中比较常用和好用的方法,比如_.find()等,也是原生实现的。效用。所以建议使用原生操作,尽量避免引用第三方库,最大限度的加深基础知识。另外要分享的一点是添加动态模板的方法。先看需求:服务端返回

html字符串,需要在页面点击图片时弹出预览框。我最初的想法是通过在html字符串上拼接click方法,调用弹窗组件,通过click事件获取其src预览。导致无法重新编译拼接好的html,使点击事件生效。来看看我最终的解决方案:通过事件代理。动态模板父元素的绑定方法@click="imageProxy($event)"1imageProxyy(evt){23if(evt.target.nodeName==='IMG'){45evt.stopPropagation();67this.showPicView=true;89//evt.target.currentSrc后续处理1011}1213}Postscript马上就要到年底了,很多人的小心脏又开始躁动了,加薪,跳槽,升职,等等各种不安分的小因素像虫子一样抓挠着你的大脑。借用吐槽的话,如果是2年以下工作经验的朋友,希望能说几句。1、尽量留在各个领域的Top公司。公司业务的成长,将带您一起成长、一起腾飞,您可享受此溢价;2、如果已经在Top公司,尽量不要太早出来,至少三年以上,一定要抗住3、尽量在细分领域或全职岗位上有一定的深度和知名度。最后还是那句话,前三年靠技术,以后靠综合能力。本系列文章,TheEnd(终稿)。声明欢迎转载,转载请注明出处和作者,并保留声明。作者:润图青年来源:http://www.cnblogs.com/runnin...除特别注明外,本博客文章均为原创,转载请注明出处。未经作者同意,必须保留此声明,并在文章页面显着位置给出原文链接,否则保留追究法律责任的权利。想更加了解我吗?欢迎关注我的微信公众号:润图大叔