Vue.js前端MVVM框架实战篇

相信大家对vue.js这个前端框架有了一定的了解。想必也想把Vue急切的运用在项目中,看看它的魅力到底有多大?别急,今天我会满足大家的想法。

我们一起来看看“Webpack+Vue”的开发模式相比以往老项目(Gulp+jQuery)的开发模式的魅力在哪里。

一、配置开发环境

1、先安装Node和Webpack

2、建立一个文件夹为:Vue-project,然后初始化生成package.json。运行以下指令:

npm init

初始化完成后,添加项目开发所依赖的包

"dependencies": {
  "vue": "^2.2.2",
  "vue-router": "^2.3.0",
  "vue-template-compiler": "^2.2.2"
},
"devDependencies": {
  "axios": "^0.15.3",
  "babel": "^6.3.13",
  "babel-core": "^6.3.21",
  "babel-loader": "^6.2.0",
  "babel-plugin-component": "^0.4.1",
  "babel-preset-es2015": "^6.3.13",
  "babel-preset-stage-2": "^6.22.0",
  "babel-runtime": "^5.8.34",
  "clean-webpack-plugin": "^0.1.9",
  "cross-env": "^1.0.6",
  "css-loader": "^0.16.0",
  "extract-text-webpack-plugin": "^1.0.1",
  "file-loader": "^0.8.5",
  "html-webpack-plugin": "^2.17.0",
  "moment": "^2.15.1",
  "node-sass": "^4.5.0",
  "sass-loader": "^3.2.3",
  "style-loader": "^0.12.3",
  "url-loader": "^0.5.6",
  "vue-loader": "^11.1.4",
  "vue-hot-reload-api": "^2.0.6",
  "webpack": "^1.12.0",
  "webpack-dev-server": "^1.14.0"
}

3、安装所需模块,运行指令

npm install

注:可能由于网络原因,导致某些包不能下载成功。别担心,我们可以尝试把npm的镜像地址切换成淘宝镜像。运行如下指令:

npm install -g cnpm --registry=https://registry.npm.taobao.org

安装指令跟npm一样,只不过前面需要添加一个c。

比如:cnpm install xxxx

二、搭建项目结构

可能在我们以前开发一个项目,所搭建的项目结构如下图所示:

可是现在的项目基本都是基于前端工程化的,包括的东西也很多(前端路由、包管理、配置文件...)。很显然,从最开始按照单一资源分类,来划分目录结构是不可行的。 于是,又得改造项目目录结构。可能是这样的 (仅供参考)

俗话说的好:“工欲善其事必先利其器”。一个合理的项目结构,能体现各模块的职责与分工,减少成员间的沟通成本,更好的管理项目。

三、正式开发

好了,可能有人会说,你前面扯了很多废话。都还没谈如何开发呢? 别急大兄弟,心急可吃不了热豆腐,得慢慢来!

运行我们之前添加好的指令

npm run dev

访问

http://localhost:8188

不出意外,你会看到如下图一样:

那么恭喜你,一个Vue+Webpack的初始化项目已经完成了。不妨赶紧修改下文件:

1、看是否能实现热加载。

2、父组件传递数据到子组件,子组件能否收到。

3、ajax能否正常运行  注:(ajax模块看下图)

....

于是,我们很愉快的把项目开发完成。那么怎么把项目上线呢?

可以运行以下打包命令

npm run build

打包成功后,就行生成一个dist文件夹。然后把这个文件夹放到后端的web容器里面就行了。

看完文章后,可能有些朋友会有一些疑问:

1、前端页面之前跳转是如何是实现的?

 答:因为Vue提供了一款叫路由的工具Vue-Router,页面的切换于跳转就是靠它实现的。

2、组件间的数据传递,跨组件通信有什么方法呢?或者说几个组件同时共享一份数据!

答:虽然官方提供了事件总线来解决,但我个人建议你可以用Vuex(全局状态管理)来解决。

3、除了用你的项目脚手架(初始化),还有其它的脚手架可以直接生成项目吗?

答:官方提供了Vue-cli的工具,也可以帮你完成项目初始化工作。

写在最后:Vue+webapck的这种开发模式,相对于老项目。我觉得在最大的好处在于:

1、提升了我们的开发效率(通过webpack可以实现组件按需加载、静态资源打包合并压缩...)

2、组件化友好(任何一个组件都是一个独立的模块,互不影响)

Vue是一个渐进式的框架,你可以把它当成简简单单的模板使用。也可以用作SPA(单页面应用),进行前后端分离开发。

还犹豫什么啊,赶紧上车啊!

本文出处:http://www.234music.cn/

原文地址:https://www.cnblogs.com/zqw111/p/11106517.html

时间: 2024-10-26 09:38:50

Vue.js前端MVVM框架实战篇的相关文章

前端MVVM框架:Knockout.JS(一)

前言 在我们平时开发 Web 应用程序的时候,如果项目不算特别大的话,一般都是拿 jQuery 再配合一些前端 UI 框架就在项目上面应用了.如果页面逻辑稍微复杂的话,那个在写前端 JavaScript 代码时,势必会充斥前大量 jQuery 的选择器的应用.我并不想说它好或不好.只想问一下,有没有更方便的方法呢?有过 WPF 开发经验的同学一定会知道 MVVM(Model View ViewModel) 这种开发模式.它可以很轻松的将 View 与 对应的后端代码隔离开来.使项目易于维护.那么

js架构设计模式——前端MVVM框架设计及实现(一)

前端MVVM框架设计及实现(一) 最近抽出点时间想弄个dom模块化的模板引擎,不过现在这种都是MVVM自带的,索性就想自己造轮子写一个简单的MVVM框架了 借鉴的自然还是从正美的avalon开始了,我记得还是去年6月写过一个系列的avalon源码分析的,不过那时候0.7版本,不够健全,现在已经好太多了 框架是面向一个领域,提供一套解决方案,那么我们用前端的MVVM能为我们带来什么便利? 关注点分离 操作数据即操作DOM 动态模板 关注点分离是MVVM与身俱来的,操作数据即操作DOM,是VM中的访

【转】手摸手,带你用vue撸后台 系列三(实战篇)

前言 在前面两篇文章中已经把基础工作环境构建完成,也已经把后台核心的登录和权限完成了,现在手摸手,一起进入实操. Element 去年十月份开始用vue做管理后台的时候毫不犹豫的就选择了Elemen,那时候vue2 刚发没多久,市面上也没有很多其它的vue2的ui框架.虽然Element也有很多的不足,前期的bug也不少,但我还是选择了它,说一下我选择Element的原因吧: 有大厂背书 : 虽然核心开发只有三个人,但至少不用担心哪天就不维护,带着小姨子跑路了. 持续迭代 : Element发版

Vue.js 和 MVVM 小细节

Vue.js 和 MVVM 小细节 MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 ViewModel. ViewModel负责连接 View 和 Mode

Vue.js – 基于 MVVM 实现交互式的 Web 界面

Vue.js 是用于构建交互式的 Web  界面的库.它提供了 MVVM 数据绑定和一个可组合的组件系统,具有简单.灵活的 API.从技术上讲, Vue.js 集中在 MVVM 模式上的视图模型层,并通过双向数据绑定连接视图和模型.实际的 DOM 操作和输出格式被抽象出来成指令和过滤器.相比其它的 MVVM 框架,Vue.js 更容易上手. 官方网站      插件下载 HTML: <div id="demo"> {{message}} <input v-model=

Vue.js 和 MVVM 的小细节

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 View Model 的双向数据绑定,这使得View Model的状态改变可以自动传递给 View,这就是所谓的数据双向绑定. Vue.js 是一个提供 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 ViewModel.ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻

Vue.js 和 MVVM

MVVM 是Model-View-ViewModel 的缩写,它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定. Vue.js 是一个提供了 MVVM 风格的双向数据绑定的 Javascript 库,专注于View 层.它的核心是 MVVM 中的 VM,也就是 ViewModel. ViewModel负责连接 View 和 Model,保证视图和数据的一致性,这种轻量

Vue.js对比Angural框架

这个页面无疑是最难编写的,但我们认为它也是非常重要的.或许你曾遇到了一些问题并且已经用其他的框架解决了.你来这里的目的是看看 Vue 是否有更好的解决方案.这也是我们在此想要回答的. 客观来说,作为核心团队成员,显然我们会更偏爱 Vue,认为对于某些问题来讲用 Vue 解决会更好.如果没有这点信念,我们也就不会整天为此忙活了.但是在此,我们想尽可能地公平和准确地来描述一切.其他的框架也有显著的优点,例如 React 庞大的生态系统,或者像是 Knockout 对浏览器的支持覆盖到了 IE6.我们

Vue.JS 对比其他框架

Angular 选择 Vue 而不选择 Angular,有下面几个原因,当然不是对每个人都适合: 在 API 与设计两方面上 Vue.js 都比 Angular 简单得多,因此你可以快速地掌握它的全部特性并投入开发. Vue.js 是一个更加灵活开放的解决方案.它允许你以希望的方式组织应用程序,而不是任何时候都必须遵循 Angular 制定的规则.它仅仅是一个视图层,所以你可以将它嵌入一个现有页面而不一定要做成一个庞大的单页应用.在配合其他库方面它给了你更大的的空间,但相应,你也需要做更多的架构