Vue.js + Webpack

Deepseamengyan 2018-04-26 原文

Vue.js + Webpack

vue.js

Vue.js是一个构建数据驱动的 web 界面的库。Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件

以上是Vue.js官方定义,故名思议,以数据驱动视图是Vue.js推崇的开发模式,与jQuery手工操作DOM元素以更新视图不同,Vue.js提倡尽量减少DOM操作。因此,Vue.js是一个专注于视图的开发框架,也就是MVVM中的VM,下面一个简单的例子解释了一个完整的MVVM模型:

 渲染结果为:

基于这样一种MVVM开发模式,在配合vue的组件开发、数据绑定,在后续的app开发中会有极大的威力。

webpack

webpack是当前十分热门的模块加载器,它能把各种资源,如JS、css/less/sass、图片等都做为模块来使用和处理。在大型应用的开发过程中,将应用分割成一个个小模块,分工合作,然后再将小模块通过webpack进行整合,达到了“庖丁解牛”的效果,用一张图来说明webpack在作用,就是:

npm

这几年不管是在github还是在各种社区上,都能看到npm的身影,npm是一个模块管理工具,它运行在命令行下,用来安装和管理node模块。

前面说到将开发的静态资源分成一个个模块,在我们使用该模块时,采用npm install即可安装相应的模块,这个在后面的具体例子会有具体的操作和应用。

vue + webpack

现在通过vue作者提供的vue-loader-example 来一步步了解vue在webpack下的组件模块开发,同时利用npm来安装我们需要的模块包。

项目目录结构如下:

各个文件已经做了相应的注释,以下重点讲解几个主要文件的内容和作用。

package.json:

npm安装依赖的json文件,每个由npm管理模块的项目下都会有这个 package.json文件,这个文件在项目初始化时可通过npm init:

如上图示范,在初次初始化时,按照提示分别输入package.json字段,包括:项目名字(name)、项目版本(version)、项目描述(description)和依赖(dependencies)等,有些选项并非必填,具体参数填写方式参考npm文档。

在进行npm init初始化后,就会在当前目录下生成package.json文件,这里将vue-loader-example的完整package.json内容展示如下:

{

name”: “vue-webpack-vueloader”,

version”: “0.0.1”,

description”: “Example using webpack with vue-loader”,

main”: “index.js”,

scripts”: { “dev”: “webpack-dev-server –inline –hot –config build/webpack.dev.config.js”, “build”: “webpack –progress –hide-modules –config build/webpack.prod.config.js”, “test”: “karma start build/karma.conf.js” },

author”: “lijiahao”,

license”: “ISC”,

dependencies”: { “vue”: “^1.0.16” },

devDependencies”: { “babel-core”: “^6.1.2”, “babel-loader”: “^6.1.0”, “babel-plugin-transform-runtime”: “^6.1.2”, “babel-preset-es2015″: “^6.1.2”, “babel-preset-stage-0″: “^6.1.2”, “babel-runtime”: “^5.8.0”, “css-loader”: “^0.23.0”, “eslint”: “^1.10.3”, “eslint-loader”: “^1.3.0”, “file-loader”: “^0.8.4”, “function-bind”: “^1.0.2”, “inject-loader”: “^2.0.1”, “jade”: “^1.11.0”, “jasmine-core”: “^2.4.1”, “karma”: “^0.13.15”, “karma-jasmine”: “^0.3.6”, “karma-phantomjs-launcher”: “^0.2.1”, “karma-spec-reporter”: “0.0.23”, “karma-webpack”: “^1.7.0”, “phantomjs”: “^1.9.19”, “stylus-loader”: “^1.4.0”, “template-html-loader”: “0.0.3”, “url-loader”: “^0.5.7”, “vue-hot-reload-api”: “^1.2.0”, “vue-html-loader”: “^1.0.0”, “vue-loader”: “^8.0.0”, “vue-style-loader”: “^1.0.0”, “webpack”: “^1.12.2”, “webpack-dev-server”: “^1.12.0” }

 }

注:1、dependencies键值内的内容,在运行npm install xxx后可以自动插入相应的值,如需要安装vue,运行npm install vue,npm就会自动安装最新版本的vue到当前node_modules文件夹中,dependencies的内容也会变成如下:

“dependencies”: {

“vue”: “^1.0.16”

}

2、devDependencies键值内的内容是指开发过程中需要用到的依赖包,包括ES6转ES5加载器、CSS加载器等等,这部分的内容可通过npm install xxx --save-dev进行安装,如需要安装webpack,输入npm install webpack --save-dev,在devDependencies下就会写入webpack的具体安装信息。

在有了这个完整的package.json文件的情况下,使用命令:npm install,npm就会在当前目录下载项目所需依赖,下载的文件存放在node_modules中,这一过程由npm自动完成,我们只需等待即可。

通过npm安装了项目所需的依赖,包括:vue、vue-loader、webpack、babel等,这里将再下一篇博客对关键依赖进行介绍,以了解webpack的模块打包机制.

原文地址:http://geocld.github.io/2016/03/14/vuejs_webpack/

发表于 2018-04-26 10:35 梦颜 阅读() 评论() 编辑 收藏

 

版权声明:本文为Deepseamengyan原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/Deepseamengyan/p/8950020.html

Vue.js + Webpack的更多相关文章

  1. python 软件目录结构规范 – JayeHe

    python 软件目录结构规范 为什么要设计好目录结构? “设计项目目录结构”,就和& […]...

  2. 51单片机学习总结 – 京月飞鸿

    51单片机基础学习总结 1、什么是单片机   在一片集成电路芯片上集成微处理器、存储器、I/O接口电路,从而构 […]...

  3. 1.面向对象和面向过程的区别 – 流觞区直

    1.面向对象和面向过程的区别 面向过程思想思考问题时,我们首先思考“怎么按步骤实现?” 并将步骤对应成方法,一 […]...

  4. 用vue重构小程序踩坑之旅(1) — 微信sdk验签

      问题1:验签失败   惨景:用微信sdk实现h5页面的分享,且每个页面分享内容需要自定义.       坑 […]...

  5. Matlab多个Figure图合成一个Fig – GarfieldEr007

    Matlab多个Figure图合成一个Fig 2016-03-31 21:19  GarfieldEr007  […]...

  6. [ SSH框架 ] Hibernate框架学习之四(JPA)

    一、JPA概述以及它和Hibernate之间的关系 1.1.Hibernate 概述   JPA Java P […]...

  7. html2canvas – 微信中长按存图 – 将h5活动结果保存到本地

    基于html2canvas+微信自带长按存图功能实现  现在有很多在微信里流行的h5活动页。这些小h5大部分都 […]...

  8. 继承、重载运算符、虚函数与向量、矩阵运算 – 逍遥子

    继承、重载运算符、虚函数与向量、矩阵运算 这是个关于如何使用继承、重载运算符、虚函数以实现向量和矩阵运算的例子 […]...

随机推荐

  1. Deepin安装前分区总结 – Silentdoer

    Deepin安装前分区总结 linux的分区的概念应该这么理解,为某个目录创建/挂载分区,比如为/home创建 […]...

  2. 织云 Metis:看腾讯怎么做智能运维

    欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 作为企业智能运维门户,业界早已关注织云的智能运维体 […]...

  3. Spark Streaming编程指南

    Overview A Quick Example Basic Concepts Linking Initial […]...

  4. 查看电脑连接的wifi密码-不用求人了 – pyu12

    查看电脑连接的wifi密码-不用求人了   1.打开cmd命令行 输入命令,查看连接的WiFi名称:    n […]...

  5. Ubuntu开机出现grub指令,无法正常开机

    问题 最近开机出现了如下的界面: 分析问题 首先看看GNU GRUB是什么东东?干什么用的?GNU GRUB是 […]...

  6. 设计模式之代理模式

    代理模式为另一个对象提供一个替身以控制对这个对象的访问。从定义可以看出,1. 代理模式提供了一个替身,即代理对 […]...

  7. 如何保护Excel工作表

    保护Excel工作表可以帮助我们完成: 保护整个工作表,变成只读模式; 保护整个工作表,让部分区域编辑,部分区 […]...

  8. Android Studio 下载地址【包括国内本地下载】

    Android Studio 下载地址,目前最新可下载地址,尽量使用下载工具。 Android Studio正 […]...

展开目录

目录导航