A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

本帖最后由 武汉分校-小舞 于 2017-8-8 10:48 编辑

【前端学科技术分享】武汉校区独家分享:vue.js

更多学习资源请关注微信公众号
“黑马程序员武汉中心”

vue 的一些语法和 Angular 的很相似,vue 的指令以 v-开始,而 angular 以 ng-开始(例如 v-if vs ng-if),数据绑定的方式也是一样的两个{}。这是由于 vue 早期的灵感来自于angular,对 angular 的研究对我学习 vue.js 的框架能起到很好的引导作用。
1)简介:
Vue.js是由尤雨溪大神开发的一套用于构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,有易于上手,便于与第三方库或既有项目整合的优点。
  vue 的核心为数据驱动和组件化。vue 通过 MVVM 的数据绑定实现自动同步,原理如下图:

  关于组件化:界面上各个部分分别对应着 ViewModel Tree 的各个分支,如下图:

2)与 angular 的不同点:
双向数据绑定的机制不同:angular 主要是利用脏检测,而 vue 利用的是依赖收集机制。

   在 angular 中,当 watcher 越来越多时会变得越来越慢,这是由于作用域内的每一次变化,watcher 的所有值都会重新计算。并且,如果一些 watcher 触发另一个更新,脏检查循环(digest cycle)可能要运行多次,这样无形之中会消耗很大的性能。

   而 vue 依赖收集机制的实现类似 Knockout,精确到每一个属性,做到了避免大量的循环检查,比脏检测效率高很多,性能也不受限于 watcher 的数量。引入的包大小的方面,angular 明显比 vue 大,vue 的包 18kb,无外部依赖,更适合移动端的开发。

3)使用:
在学习阶段,我主要是直接引入vue.js 文件来熟悉 vue 的基本使用,练习官网文档上的 demo 来加深自己对相应步骤和一些指令的了解,有以下几点

可以总结:
1.new 一个 vue 对象的时候可以设置它的属性,最主要的三个属性为:data、methods,watch。
2.data 代表 vue 对象的数据,methods 代表 vue 对象的方法,watch 设置了对象监听的方法。
3.vue 对象里的设置通过 html 指令进行关联。
4.注册组件首先定义一个组件,利用 vue.extend 的方法,传入对象{template:””,paramArrributes:[‘msg’]},再调用 component 全局注册该组件。之后就可以当做一段 html 标
签来使用了。
5.重要的指令包括 v-text(渲染数据),v-if(控制显示),v-on(绑定事件),v-for(循环渲染),v-bind(属性绑定),v-model(表单控件绑定)等等。

除了对基础的学习外,我还总结了如何搭建项目主体:

利用官方脚手架(vue-cli)搭建项目主体:npm install -g vue-cli(全局安装),vue init webpack Vue-Project(开始搭建,同时配置文件信息),npm install (下载依赖),npm run dev(启动项目),之后就可以在 src 目录下的 app.vue 中进行开发。由于 npm 的服务器在国外,所以访问下载文件时较慢,可以使用淘宝镜像(服务器在国内)替代 npm 安装相应的依赖包。

4)小结:

对于一个框架的学习,不能仅仅停留在表面的死记硬背,更应该在于理解和活学活用。学习时从背景,框架性能,简单原理,以及与相同功能框架的优缺点对比等方面入手,可以让自己对该框架的大概脉络有一定的了解,学习效率才会更高。

57 个回复

倒序浏览
紫薯布丁。。
回复 使用道具 举报
11111111111111111111
回复 使用道具 举报
最近想学vue.js
回复 使用道具 举报
对于一个框架的学习,不能仅仅停留在表面的死记硬背,更应该在于理解和活学活用。学习时从背景,框架性能,简单原理,以及与相同功能框架的优缺点对比等方面入手,可以让自己对该框架的大概脉络有一定的了解,学习效率才会更高
回复 使用道具 举报
感谢分享
回复 使用道具 举报
秦城 初级黑马 2017-8-11 13:33:57
7#
学习一下
回复 使用道具 举报
hcyccc 初级黑马 2017-8-16 19:33:52
8#
黑马7期前来参观
回复 使用道具 举报
万分感谢 很实用
回复 使用道具 举报
wolflj 来自手机 中级黑马 2017-9-6 15:30:57
10#
6666666666666666666666666666
回复 使用道具 举报
666666666666666666666666
回复 使用道具 举报
233333333
回复 使用道具 举报
学习。。学习
回复 使用道具 举报
魏聪 初级黑马 2017-10-23 16:20:58
14#
回复 使用道具 举报
GUOJM 初级黑马 2017-10-24 10:55:36
15#
谢谢大佬
回复 使用道具 举报
回复 使用道具 举报
newu 黑马帝 2017-10-25 13:38:40
17#
谢谢大佬,真是难得给力的帖子啊
回复 使用道具 举报
123……123123
回复 使用道具 举报
kzzier 初级黑马 2017-11-15 11:50:31
19#
666666666666666666
回复 使用道具 举报
万分感谢 很实用
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 加入黑马