xml地图|网站地图|网站标签 [设为首页] [加入收藏]

关于本新手使用vue后的一些反思,前端开发之走

2019-10-23 05:18栏目:Web前端
TAG:

本人是一个刚毕业半年多的前端小白,进公司工作的时候,由于公司的前端技术还没定下来,所以在做项目的时候我是自由发挥。由于vue具有上手快,开发效率高的特点,所以,我在做项目时候,便选择了vue作为技术栈,由于是第一次使用bootstrap加jQuery以外的技术栈,所以以下是在完成项目的过程中,对vue使用方面认识不到或不足的反思。

Vue.js作为目前最热门最具前景的前端框架之一,其提供了一种帮助我们快速构建并开发前端项目的新的思维模式。本文旨在帮助大家认识Vue.js,了解Vue.js的开发流程,并进一步理解如何通过Vue.js来构建一个中大型的前端项目,同时做好相应的部署与优化工作。

1.首先,新手使用vue最常见的失误,就是DOM操作,而vue的双向数据绑定,恰恰让我们其实不需要进行繁琐的DOM操作,我们只需要关心数据层面就可以了。想想自己最开始获取input还是用什么document.getElementById('id').value这种,就觉得自己很傻,明明只需要v-model绑定data就好了,唉~

文章将以PPT图片附加文字介绍的形式展开,不会涉及知识点的具体代码,点到为止。有兴趣的同学可以查看相应的文档进行了解。

2.以为vue只能用于开发SPA。直到看到尤大神在知乎上回答的:不一定做个项目就非得cli一个全家桶,vue也不是为单页面而生的。我才知道,vue的运用方式,我仅仅知道冰山一角,如何能灵活根据自己的需求使用开发,还需自己日后的多多成长。

Vue.js简介

图片 1

Vue.js简介

从上图的介绍中我们不难发现Vue.js是一款轻量级的以数据驱动的前端JS框架,其和jQuery最大的不同点在于jQuery通过操作DOM来改变页面的显示,而Vue通过操作数据来实现页面的更新与展示。下面便是Vue数据驱动的概念模型:

图片 2

数据模型

Vue.js主要负责的是上图绿色正方体ViewModel的部分,其在View层(即DOM层)与Model层(即JS逻辑层)之间通过ViewModel绑定了DOM Listeners与Data Bingings两个相当于监听器的东西。

当View层的视图发生改变时,Vue会通过DOM Listeners来监听并改变Model层的数据。相反,当Model层的数据发生改变时,其也会通过Data Bingings来监听并改变View层的展示。这样便实现了一个双向数据绑定的功能,也是Vue.js数据驱动的原理所在。

3.组件化思想。起初一开始,觉得别人的UI框架都写好了,就直接拿来用。当然这么做并没有什么问题。但是,当我发现我每个页面几乎都有几段相同的代码,或者都需要用到这个UI框架的组件,比如面包屑,比如导航菜单,那我干嘛不把这么UI框架做成单独的组件呢?

Vue实例

图片 3

Vue实例

在一个html文件中,我们直接可以通过script标签引入Vue.js,然后就可以在页面里写Vue.js代码了。上图中我们通过new Vue()构建了一个Vue的实例,在实例中,可以包含挂在元素(el),数据(data),模板(template),方法(methods)与生命周期钩子(created等)等选项。不同的实例选项拥有不同的功能,如:

(1)el表明我们的Vue需要操作哪一个元素下的区域,'#demo'表示操作id为demo的元素下区域。
(2)data表示Vue 实例的数据对象,data 的属性能够响应数据的变化。
(3)created表示实例生命周期中创建完成的那一步,当实例已经创建完成之后将调用其方法。

4.路由懒加载。当我的项目打包后,运行,初次加载慢的飞起。这让我很头疼,这样光有开发速度有什么用,用户体验肯定是不好的。我查了下打包后的dist文件夹,我去,好几兆。所以,难道要我重新选择其他技术栈再开发一次。当然是不可能了。在网上查了资料后,终于知道了路由懒加载这个方法。使用路由懒加载后,webpack会把原来很大的js分解成多个体积较小的js,当我们运行加载行,它会按需加载,这样初次加载过长的问题便解决了。

Vue常用指令

图片 4

Vue常用指令

在Vue项目的开发中,我们使用的最多的应该就属Vue的指令了。通过Vue提供的常用指令,我们可以淋漓尽致地发挥Vue数据驱动的强大功能。以下便是图中常用指令的简单介绍:

(1)v-text: 用于更新绑定元素中的内容,类似于jQuery的text()方法
(2)v-html: 用于更新绑定元素中的html内容,类似于jQuery的html()方法
(3)v-if: 用于根据表达式的值的真假条件渲染元素,如果上图P3为false则不会渲染P标签
(4)v-show: 用于根据表达式的值的真假条件�显示隐藏元素,切换元素的 display CSS 属性
(5)v-for: 用于遍历数据渲染元素或模板,如图中P6为[1,2,3]则会渲染3个P标签,内容依次为1,2,3
(6)v-on: 用于在元素上绑定事件,图中在P标签上绑定了showP3的点击事件

关于更多的Vue指令可以查看Vue2.0文档,地址:https://vuefe.cn/api/#指令

5.webpack。用到了vue全家桶,便少不了webpack。并不是,你npm run build,就可以安心睡觉去。就比如我在使用video.js时就需要在webpack里面配置(这个搞了我很久,头皮发麻)。webpack是个强大的东西,可以基于webpack做很多的事,比如,引入其他插件,把单页面改成多页面配置,给文件夹配置路径方便书写等等。但,不得不说,这个东西很难学,而且官网说实话对我而言写的并不通俗易懂,那些个插件说明文档就更别提了,能看懂的不到一半。当然也可能是我太菜。要想成长,webpack是我今后必须攻下的难点。

Vue.js技术栈

图片 5

Vue.js技术栈

以上我们讲到可以直接在一个html页面里通过引入Vue.js来直接写Vue代码,但是这样的方式并不常用。因为如果我们的项目比较大,项目中会存在很多页面,一旦每个页面都引入一个Vue.js或者声明一个Vue实例,这样非常不利于后期的维护和代码的公用,也会存在实例名冲突的情况,所以我们需要用到Vue提供的技术栈来构建强大的前端项目。

除了Vue.js我们还需要用到:

(1)vue-cli:Vue的脚手架工具,用于自动生成Vue项目的目录及文件。
(2)vue-router: Vue提供的前端路由工具,利用其我们实现页面的路由控制,局部刷新及按需加载,构建单页应用,实现前后端分离。
(3)vuex:Vue提供的状态管理工具,用于同一管理我们项目中各种数据的交互和重用,存储我们需要用到数据对象。
(4)ES6:Javascript的新版本,ECMAScript6的简称。利用ES6我们可以简化我们的JS代码,同时利用其提供的强大功能来快速实现JS逻辑。
(5)NPM:node.js的包管理工具,用于同一管理我们前端项目中需要用到的包、插件、工具、命令等,便于开发和维护。
(6)webpack:一款强大的文件打包工具,可以将我们的前端项目文件同一打包压缩至js中,并且可以通过vue-loader等加载器实现语法转化与加载。
(7)Babel:一款将ES6代码转化为浏览器兼容的ES5代码的插件

利用以上等技术,我们便可以开始构建我们的Vue项目了。

6.最后一个,无关于vue,那便是,遇到问题,先想一想,上网查阅资料,资料看不懂了,再去问别人。这点其实在职场很重要,因为大家都有自己的工作,谁也没有时间和义务去帮你,所以能自己解决的尽量自己解决。

�构建大型应用

图片 6

�构建大型应用

在构建我们的中大型Vue项目中,我们主要介绍如何利用vue-cli来自动生成我们项目的前端目录及文件,了解Vue中一切皆组件的概念及父子组件的通信问题,讲解在Vue项目中我们如何使用第三方插件,最后利用webpack来打包及部署我们的项目。

版权声明:本文由必发88手机在线官网发布于Web前端,转载请注明出处:关于本新手使用vue后的一些反思,前端开发之走