Vue 学习笔记(一)


1、Vue.js介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。
所谓渐进式(Progressive),就是你可以一步一步、有阶段性的来使用Vue.js,不必一开始就使用所有的东西。

1.1 Vue特点

  1. 轻量级的框架(压缩后大小仅有17KB)
  2. 双向数据绑定 (MVVM模式)
  3. 指令
  4. 插件化
  5. 虚拟DOM(Virtual DOM)

1.2 MVVM模式简介

MVVM模式是由经典软件架构MVC衍生来的。 MVVM框架主要包含3个部分:Model、View和 Viewmodel。
Model:指的是数据部分,对应到前端相当于javascript对象
View:指的是视图部分,对应前端相当于dom
Viewmodel:就是连接视图与数据的中间件通讯 数据(Model)和视图(View)是不能直接通讯的,而是需要通过ViewModel来实现双方的通讯。当数据变化的时候,viewModel能够监听到这种变化,并及时的通知view做出修改。同样的,当页面有事件触发时,viewMOdel也能够监听到事件,并通知model进行响应。Viewmodel就相当于一个观察者,监控着双方的动作,并及时通知对方进行相应的操作。

1.3 Vue.js有什么不同

传统前端开发模式,是针对DOM进行操作,以jQuery为例,给指定DOM中插入一个元素,并给他绑定一个点击事件:

if(showBtn){
    var btn = $('<button>Click me</button>');
    btn.on('click',function(){
        console.log('Clicked!');
    });
    $('#app').append(btn);
}

这段代码不难理解,操作内容也不复杂,不过这样让我们的视图代码和业务逻辑紧耦合在一起,随着功能不断增加,直接操作DOM会使得代码越来越难以维护。
而Vue.js通过MVVM的模式拆分视图与数据两部分,并将其分离。因此,你只需要关心你的数据即可,DOM的事情Vue会帮你自动搞定,比如上面的实例我们可以改为:

<body>
    <div id="app">
        <button v-if="showBtn" v-on:click="handleClick">Click me</button>
    </div>
</body>
<script>
    new Vue({
        el: '#app',
        data:{
            showBtn: true
        },
        methods:{
            handleClick: function(){
                console.log('Clicked!');
            }
        }
    })
</script>

2、如何使用Vue.js

Vue Devtools

在使用 Vue 时,我们推荐在你的浏览器上安装 Vue Devtools。它允许你在一个更友好的界面中审查和调试 Vue 应用。

2.1 通过 script 加载 CDN文件

<!-- 自动是被最新稳定版本的vue.js-->
<script src="https://unpkg.com/vue/dist/vue.min.js></script>
<!-- 指定某个具体版本的vue.js-->
<script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"></script>

2.2 直接用 <script> 引入

直接下载并用 <script> 标签引入,Vue 会被注册为一个全局变量。
在开发环境下不要使用压缩版本,不然你就失去了所有常见错误相关的警告!

2.3 使用 NPM 安装

在用 Vue 构建大型应用时推荐使用 NPM 安装。NPM 能很好地和诸如 webpack 或 Browserify模块打包器配合使用。同时Vue也提供配套工具来开发单文件组件。

# 最新稳定版,须确保已经安装node
$ npm install vue

2.4 命令行工具 (CLI)

Vue 提供了一个官方的 CLI,为单页面应用快速搭建 (SPA) 繁杂的脚手架。它为现代前端工作流提供了batteries-included 的构建设置。只需要几分钟的时间就可以运行起来并带有热重载、保存时 lint校验,以及生产环境可用的构建版本。更多详情可查阅 Vue CLI 的文档

下面简单介绍使用Vue CLI 快速创建项目

  1. 全局安装 vue-cli npm install --global vue-cli
  2. 选择文件夹创建项目 vue init webpack my-project(my-project:项目名称)
    安装步骤
    出现一下文字说明已经创建成功
    成功显示
  3. 进入创建的项目下 cd my-project
  4. 安装项目依赖 npm install
  5. 安装其他插件 npm install vuex element-ui axios mockjs --save (假设需要安装 vuex element-ui axios mockjs等,可自定义)
    此时的目录结构
    目录结构
  6. 运行项目 npm run dev
    此时浏览器输入http://localhost:8080 显示以下页面说明项目创建成功。
    my-project
    也可以修改config文件下的index.js 文件,修改后每次运行会自动打开浏览器。
    index.js

    参考资料-Vue.js
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,417评论 6 492
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,921评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 158,850评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,945评论 1 285
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,069评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,188评论 1 291
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,239评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,994评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,409评论 1 304
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,735评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,898评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,578评论 4 336
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,205评论 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,916评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,156评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,722评论 2 363
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,781评论 2 351

推荐阅读更多精彩内容

  • 一、Vue.js介绍 Vue.js也称为Vue,读音类似view,错误读音v-u-e,由华人尤雨溪开源并维护。 V...
    间阳幕宾阅读 570评论 1 6
  • 一:什么是闭包?闭包的用处? (1)闭包就是能够读取其他函数内部变量的函数。在本质上,闭包就 是将函数内部和函数外...
    xuguibin阅读 9,562评论 1 52
  • 2017年已经过去了一小半,现在的你活成了什么样子? 我有个很好一个很好的闺蜜,她妈妈希望她找一个好老公,一个有资...
    原来我叫小红帽阅读 384评论 0 2
  • 这两天,一位在新疆当兵的部下战友回来了,心情非常高兴激动。二十多年了,联系不多,见面后却还是那样欣奋。战友情应高于...
    陈健_6f12阅读 145评论 0 0
  • 那天,2016年的8月19日,日照当头,你抱了我,直到红灯变绿。 因为前一天我故意告诉你第二天要离开这个可以离你这...
    橙皮微凉阅读 234评论 0 2