Vue - 简介,安装,运行,以及目录结构

Mac上面Vue开发环境搭建:
(里面是先安装nodejs,再安装Vue)
https://www.cnblogs.com/richerdyoung/p/7199917.html


简介

渐进式JavaScript 框架。

特点:易用,灵活,高效。

是一套构建用户界面的渐进式框架。与其他重量级框架不同的是,Vue采用自底向上增量开发的设计。Vue的核心库只关注试图层,它不仅易于上手,还便于与第三方库或既有项目整合。另一方便,当与单文件组件和Vue生态心痛支持的库结合使用时,Vue也完全能够为复杂的单页应用程序提供驱动。
Vue就是Vue.js。

Vue.js 不支持 IE8 及其以下 IE 版本。

官方指南假设你已有 HTML、CSS 和 JavaScript 中级前端知识。

发起人:尤雨奚。
vue.js之初定位并不是想成为框架,通过发展,现在已经成为一个框架了。
是一个轻量级的MVVM前端框架。内容很小,gzip只有20+KB目前。
数据驱动+组件化的前端开发,数据驱动和组件化是vue的核心思想。
Github超过25k的star数,社区完善(Github,论坛,聊天室,Twitter)。

vue.js VS Angular.js VS react

vue.js,更轻量,gzip后只有26k,Angular(56k),react(44k)
vue.js 更容易上手,学习曲线平稳。Angular难学,颠覆了学习前端的思想,因为之初是由写java的人写的。这点react与Angular比起来稍微好一些,有一套js 语法,但是这些的学习也是一个挑战,而且react学习也会复制一些react全家桶,也是比较难学的。vue是最好学习的。
vue吸取了两者之长,借鉴了angular的指令和react的组件化。vue还有很多自己的特点,是这两家没有的。

vue.js的核心思想

数据驱动 + 组件化

数据驱动.png

ViewModel中有:DOM Listeners(监听) 和 Directives(指令)

View 对应的 DOM对象。
ViewModel是一个很好的设计,如果没有ViewModel,那么我们在View和Model之间的驱动是由手动触发DOM改变,是一个很繁琐的过程,而且容易出错,如果我们使用了ViewModel之后,就省略了手动操作的步骤了,在vue.js里面,我们我们只需要改变数据,vue.js只需通过Directives指令去对DOM做一层封装,当数据发生变化,就会通知指令去修改DOM,数据是DOM的一种自然映射。vuejs还会对操作左一层监听,当我们修改视图的时候,view.js会监听这些变化,从而改变Model。从而实现了双向绑定。
vue.js是如何做到这一点?
数据响应原理:
数据(model)改变驱动视图(view)自动更新。


图片.png

组件化:
目的:扩展HTML元素,封装可重用代码。


图片.png

左边是我们的页面,被拆分为很多小的区块,每个区块就对应一个组件,组件可以嵌套,最终组合形成一个完整的页面。在vue.js中,每个组件都对应一个ViewModel(右边的小块)。最终我们生产了右边的ViewModel的这个数状结构,与我们左边的DOM树就是一一对应的关系。
组件的设计原则:
页面上每个独立的可视/可交互区域都被视为一个组件。
比如我们的页面的头部,尾部,以及一些可复用的区块,都可以抽象成组件。
每个组件对应一个工程目录,组件所需要的各个组件在这个目录下就近维护。这个就提现了前端的工程化思想,为前端开发提供了很好的分支策略,每个开发者都清楚地知道自己所开发维护的功能单元,代码必然存在于自己的组件目录中,在这个目录中就可以清楚知道自己的功能的内部逻辑以及资源,样式也好,js也好,页面结构也好,都在里面。在vue.js中,可以通过.vue文件把组件依赖的模板,js,和样式都写在一个文件中,这个就把就近维护思想发挥到极致。
页面不过是组件的容器,组件可以嵌套自由组合形成完整的页面。

** vue.js 的安装**
方式:
1)独立版本(就是在Vue.js的官网上直接下载vue.min.js,并且用<script>标签引入,相当于引入静态的jQuery)
2)使用CDN方法
以下推荐国外比较稳定的两个 CDN,国内还没发现哪一家比较好,目前还是建议下载到本地。

BootCDN(国内) : https://cdn.bootcss.com/vue/2.2.2/vue.min.js
unpkg:https://unpkg.com/vue/dist/vue.js, 会保持和 npm 发布的最新的版本一致。
cdnjs : https://cdnjs.cloudflare.com/ajax/libs/vue/2.1.8/vue.min.js

3)NPM方法
由于npm安装速度慢,所以使用淘宝的镜像及其命令 cnpm(淘宝的镜像的命令是cnpm)。
在用 Vue.js 构建大型应用时推荐使用 NPM 安装:

$ cnpm install vue

vue.js 的命令行工具
Vue.js提供了一个官方命令行工具,可以用于快速搭建大型单页面应用。

# 安装全局 vue-cli
$ cnpm install --global vue-cli
# 创建一个基于 webpack模板的新项目(什么是webpack,请查看我的webpack介绍)
$ vue init webpack my-project

#这里需要进行一些配置,默认回车即可
This will install Vue 2.x version of the template.

For Vue 1.x use: vue init webpack#1.0 my-project

? Project name my-project
? Project description A Vue.js project
? Author runoob <test@runoob.com>
? Vue build standalone
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Setup unit tests with Karma + Mocha? Yes
? Setup e2e tests with Nightwatch? Yes

进入项目,安装并运行:

$ cd my-project
$ cnpm install    # 解释: npm install 命令用来安装模块到node_modules目录。
$ cnpm run dev
 DONE  Compiled successfully in 4388ms

> Listening at http://localhost:8080

目录文件结构

图片.png
.idea/  # 是webstorm打开过自动生成的
build文件夹    # 最终发布的代码存放位置
config文件夹  # 配置目录,包括端口号等。我们初学者可以使用默认的
node_modules文件夹  # npm加载的项目依赖模块
src文件夹  # 这里是我们要开发的目录,基本上要做的事情都放在这个目录里面,里面包含了几个目录和文件。
    【assets】: 放置一些图片,如logo等。
    【components】: 目录里面放了一个组件文件,可以不用。
    【App.vue】:项目入口文件,我们也可以直接将组件写这里,而不使用 components 目录。
    【main.js】: 项目的核心文件。
static文件夹  # 静态资源目录,如图片、字体等。
test文件夹  # 初始测试目录,可删除

# 这些.xxx文件都是一些配置文件,包括语法配置,git配置等。
.babelrc
.editorconfig
.eslintignore
.eslintrc.js
.gitignore
.postcssrc.js
.project

index.html  # 首页入口文件,你可以添加一些meta信息或者统计代码什么的。
package.json  # 项目配置文件
README.md  # 项目的说明文档, markdown格式

vue中的注释

https://www.cnblogs.com/cag2050/p/7387934.html

1.在一个vue的文件中根部注释使用: 在vue的模板中注释也使用

<!-- 展示模板 -->
<template>
  <!-- 模板里面注释 -->
  <div id="app">
    <img src="./assets/logo.png">
    <hello></hello>
  </div>
</template>

2.在vue的文件的 js中注释使用和js注释一样:

//  单行注释
/*多行注释*/ 

<script>
// 单行注释
/* 多行注释
多行注释 */
</script>

3.在vue的style(css)中注释使用和css注释一样:

/*css的注释*/

<style>

#app {
  font-family: 'Avenir', Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
  /*
  margin-left: 60px;
  margin-right: 60px;
  */
}
</style>

Vue运行起来之后

我们在浏览器中看到:
这里有一个#,这个是代表路由,#后面可以跳转到不同的模块。

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

推荐阅读更多精彩内容