1.初识Vue

一.认识Vue

Vue.js的官方文档中式这样介绍它的。简单小巧的核心,渐进式技术栈,足以应付任何规模的应用。简单小巧是指Vue.js压缩后大小仅17KB。所谓渐进式,就是你可以一步一步、有阶段地来使用Vue.js,不必一开始就使用所有的东西。随着本文的不断介绍,你回深刻感受到这一点。它让Web开发变得更加简单,提供现代Web开发中常见的高级功能,比如

  • 1.解耦视图与数据
  • 2.可复用的组件
  • 3.前端路由
  • 4.状态管理
  • 5.虚拟DOM(Virtual DOM)
    接下我就直接从实战(使用脚手架)开始Vue的使用

.二.Vue的初步使用

本项目的技术栈为Webpack+Vue.js+Vuex+ES6,与Vue.js框架配套的UI框架(iView框架),项目为组件化开发,构建工具使用Webpack完成。

1.环境配置
    1. NPM
      Node.js的包管理器是NPM是全球足底啊的开源库生态系统,它集成在Node.js中,在安装Node.js的时候就已经自带NPM包管理工具。可以通过npm -v得到NPM的版本,如图
      image.png

      上图就说明你的环境已经安装成功了,如果没有安装就可以自行安装。下面来了解一下NPM常用命令。
  • 1.npm install <Module Name> -g //安装模块,加不加"-g" 代表谁不会死全局安装
    1. npm list <Module Name> // 查看某个模块的版本号
    1. npm uninstall <Module Name> // 卸载模块
  • 4.npm update <Module Name> // 更新模块

NPM安装插件需要从国外服务器下载,受网络影响大,下载比较慢。我们可以安装CNPM来解决,安装方法如下
npm install -g cnpm --registry=https://registry.npm.taobao.org,安装成功后输入CNPM,如图

image.png

2. Vue-cli脚手架
  1. 单页面应用(SPA)和多页面应用(MPA)
    下面两图对SPAMPA做了详细的对比

    image.png

    image.png

  2. Vue-cli安装

    1. 输入如下命令进行安装,
      cnpm install vue-cli -g,如图说明安装成功
      image.png
    1. 全局安装Webpack,输入如下命令,cnpm insatll webpack -g,出现下图说明安装成功
      image.png
  • 3.初始化一个项目,输入命令vue init webpack <项目名称>,输入命令后会有一些交互,按照提示选择即可,命令交互含义如下,

1.Project name 如果输入就使用新的项目名,直接回车就使用vue init webpack 之后的项目名称,这里我们一般回车
2. Project description 项目的一些秒速,可以根据需求书写
3. Author 作者
4.Vue build 打包的方式,这里直接回车即可
5. Install vue-router? 是否安装Vue路由,建议选择Yes,一般项目都会有路由
6.Use ESLint to lint your code? 是否使用ESLint检测,建议不启用
7. Set up unit tests 是否使用单元测试,建议选择不需要
8. Setup e2e tests with Nightwatch? 是否需要端对端的检测,建议不需要

全部选择完成之后如下图,

image.png
点击回车继续,会自动创建一个名为vue-demo的项目,如图
vue-demo.png

  1. 安装依赖,进入项目路径,我这里是cd vue-demo,然后使用cnpm install命令,如图
    安装依赖.png
    打开文件夹,我们会发现多了一个node_modules的文件夹,安装的依赖都在这个文件夹里面
  2. 启动项目,输入 cnpm run dev,在浏览器中输入http://localhost:8080,出现如下界面说明项目启动成功
    image.png
    ,
    6.用vscode打开看下目录结构
      1. src 文件夹放置组件和入口文件
      1. static 文件夹放置静态资源文件
      1. index.html 为入口文件
        详细的目录结构如下如,
        详细的目录结构.png

三、模块化

关于架构设计,我们很多人都会想到MVC,MVP,MVVM,在这里我们使用分层架构设计,分层架构的优势主要有

  • 1.易维护
  • 2.可扩展
  • 3.易服用
  • 4.灵活性高
    在使用分层架构的同时,我们不得不提到一个重要的技术----模块化。模块化是指解决一个复杂问题时自顶向下逐蹭把系统划分成若干模块的过程,有多重属性反映其内部特性,同时模块化还可以解耦实现并行开发。主要的模块化解决方案有
    1. AMD(requirejs)
    1. CMD(seajs)
    1. ComonJS
    1. ES6
      模块化用来分割.组织和打包软件,我们这里使用es6进行开发,具体的架构如下图,


      image.png
1.分离方式

关于分离方式的内容,首先要介绍分离方式的种类,主要有三种

    1. 不分离 : 前后端共用一个项目目录,本地开发环境搭建成本高,项目比较复杂、不宜维护且维护成本高、发布风险高,不利于问题的定位和修改
    1. 部分分离:本地环境搭建成本较高,需要后端提供页面模板(jsp等),更新和修改模板需要后端人员操作,效率低且不宜维护。
    1. 完全分离: 有分离开发集成部署分离开发分离部署。这里使用第二种:分离开发分离部署。前端使用纯HTML通过接口的方式精心数据的交互,降低系统的复杂度,部署时部署到一台服务器上,使用代理进行数据的交互。
2.UI框架

这里先来分析一下UI框架的优点和缺点,
优点:

  • 1.快速搭建Web页面
    1. 几种经理完成业务代码
    1. 缩短开发周期
      缺点:
    • 1.冗余代码
    • 2.无法定制化、精细化开发
iView框架

iview框架是一套基于Vue.js的开源的UI组件库,主要服务于PC界面的中后台产品,有着高质量、功能丰富、细致、漂亮、定制性强等特点
安装方式如下,
cnpm install iview --save
具体用法:

  1. 在项目中引入iview框架,这里是全局引用,代码如下main.js
import Vue from 'vue'
import App from './App'
import router from './router'
import iView from 'iview'
import 'iview/dist/styles/iview.css'
import VueRouter from 'vue-router'
Vue.config.productionTip = false
Vue.use(VueRouter);
Vue.use(iView);
/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})
  1. HelloWorld.vue中使用iviewButton,代码如下,
<template>
  <div class="hello">
   <Button type="info">info按钮</Button>


  </div>
</template>

type可以根据文档iview文档来修改,不同的type对应不容的按钮种类,info对应的按钮如图,

image.png

四、构建工具webpack

这里列举前端构建的几种又是

  • 1.解决JavaScript和CSS的依赖问题
  • 2.性能优化
    1. 效率提升(添加Css3前缀)
      下面通过具体的案列来进行分析
1.案列操作
    1. 创建一个webpack1的文件夹用vscode打开,使用npm init进行初始化,会看到文件夹下生成一个package.json`的文件
    1. webpack文件加下,新建一个src文件夹,在src下新建一个index.js的文件
    1. 在index.js中写入
document.write("hello world");
  • 4 在webpack中新建一个index.html文件,写入代码
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script type="text/javascript" src="./build.js/main.js" charset="utf-8"></script>
</body>
</html>
    1. 运行webpack ./src/index.js -o build.js,可以看到在webpack下生成了一个build.js的文件夹,
  • 6 用浏览器打开index.html会看到hello wrold的字样,说明打包完成

五.总结

本文可能说的并不详细,但是身为一个前端新手,我也是从零开始摸索,路漫漫其修远兮,吾将上下而求索!

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

推荐阅读更多精彩内容