Vue 是一个渐进式的 MVVM 框架,相比于 React、Angular 它更灵活轻量。 它不会强制性地内置一些功能和语法,你可以根据自己的需要一点点地添加功能。 虽然采用 Vue 的项目能用可直接运行在浏览器环境里的代码编写,但为了方便编码大多数项目都会采用 Vue 官方的单文件组件的写法去编写项目。 由于直接引用 Vue 是古老和成熟的做法,本书只专注于如何用 Webpack 构建 Vue 单文件组件。
Vue 和 React 一样,它们都推崇组件化和由数据驱动视图的思想,视图和数据绑定在一起,数据改变视图会跟着改变,而无需直接操作视图。 还是以前面的 Hello,Webpack 为例,来看下 Vue 版本的实现。
Hello,Webpack
App.vue 单文件组件,唯一的组件,也是根组件:
App.vue
<!--渲染模版--> <template> <h1>{{ msg }}</h1> </template> <!--样式描述--> <style scoped> h1 { color: red; } </style> <!--组件逻辑--> <script> export default { data() { return { msg: 'Hello,Webpack' } } } </script>
Vue 的单文件组件通过一个类似 HTML 文件的 .vue 文件就能描述清楚一个组件所需的模版、样式、逻辑。
.vue
main.js 入口文件:
main.js
import Vue from 'vue' import App from './App.vue' new Vue({ el: '#app', render: h => h(App) });
入口文件创建一个 Vue 的根实例,在 ID 为 app 的 DOM 节点上渲染出上面定义的 App 组件。
app
App
目前最成熟和流行的开发 Vue 项目的方式是采用 ES6 加 Babel 转换,这和基本的采用 ES6 开发的项目很相似,差别在于要解析 .vue 格式的单文件组件。 好在 Vue 官方提供了对应的 vue-loader 可以非常方便的完成单文件组件的转换。
修改 Webpack 相关配置如下:
module: { rules: [ { test: /\.vue$/, use: ['vue-loader'], }, ] }
安装新引入的依赖:
# Vue 框架运行需要的库 npm i -S vue # 构建所需的依赖 npm i -D vue-loader css-loader vue-template-compiler
在这些依赖中,它们的作用分别是:
vue-loader
script
style
template
css-loader
vue-template-compiler
重新启动构建你就能看到由 Vue 渲染出的 Hello,Webpack 了。
本实例提供项目完整代码
Copyright© 2013-2020
All Rights Reserved 京ICP备2023019179号-8