Vue.js的安装
安装Vue.js有两种方法:
(1)类似于Bootstrap或jQuery,直接通过HTML文件中的标签引用。为了方便开发者使用,Vue.js提供了相关的CDN,通过如下代码可以引用最新版本的Vue.js:
` <script src="https://cdn.jsdelivr.net/npm/vue"></script>`
通过指定版本号,可以引用不同版本的Vue.js,这样项目工程不会因为新版本的Vue.js而出现不兼容的问题。
` <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>`
除了CDN方式外,还可以下载源代码直接引入。对于一个大型项目而言,直接引入JavaScript文件的方式可能并不便捷,所以笔者采用npm的安装方式。
(2)npm安装方式。
新建项目文件夹,使用npm init命令初始化项目,然后使用如下命令安装Vue.js,与Express的安装步骤一样。
npm install vue
package.json文件会自动添加Vue.js的依赖项,代码如下:
` { "name": "2-3-2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "vue": "^2.6.10" } }` 用Vue.js编写Hello World——CDN方式
介绍了安装Vue.js的两种方式,第一种是通过CDN方式或引入静态文件,通过CDN方式编写Hello World程序较为简单,下面直接演示。
【示例】用Vue.js编写HelloWorld——1。
新建HTML文件,命名为index.html,引入Vue.js。完整的代码如下:
`
01 <!--HelloWorld--> 02 <html lang="en"> 03 <head> 04 <meta charset="UTF-8"> 05 <title>Title</title> 06 </head> 07 <body> 08 <div id="app"> 09 <!--显示文字内容--> 10 {{text}} 11 </div> 12 <!--引入Vue--> 13 <script src="https://cdn.jsdelivr.net/npm/vue"></script> 14 <script> 15 <!--实例化Vue--> 16 var vm = new Vue({ 17 el: '#app', //指定属性id里的app 18 //数据内容 19 data: { 20 text: 'hello world!!!' 21 } 22 }) 23 </script> 24 </body> 25 </html> `
通过浏览器打开index.html,网页效果如图
用Vue.js编写Hello World——Webpack方式
对于Vue.js框架而言,输出一个简单的Hello World程序可能并不简单,浏览器本身不识别后缀为vue的文件,所以vue文件不能通过浏览器直接打开,类似于HTML这样的页面也无法直接引入vue文件。
如果想要使用Vue.js编写程序,需要Webpack打包工具将.vue文件编译成普通的JavaScript文件,再通过页面的引入去执行这个JavaScript文件。
【示例2-5】用Vue.js编写HelloWorld——2。
(1)新建项目工程,使用npm init初始化项目代码,此时生成package.json文件,接着安装Webpack,命令如下:
npm install webpack
(2)Webpack安装后需要再安装webpack-cli(一个使用Webpack的命令行工具),命令如下:
npm install webpack-cli
(3)安装Vue.js,命令如下:
npm install vue
(4)安装vue-loader和vue-template-compiler,这样才可以让Webpack识别Vue.js,安装命令如下:
npm install vue-loader
npm install vue-template-compiler
安装完成后的package.json文件如下:
`{ "name": "2-3-2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1" }, "author": "", "license": "ISC", "dependencies": { "vue": "^2.6.10", "vue-loader": "^15.7.1", "vue-template-compiler": "^2.6.10" }, "devDependencies": { "webpack": "^4.39.3", "webpack-cli": "^3.3.7" }`
(5)新建一个webpack.config.js文件,用于配置Webpack打包工具。Webpack的配置需要指定入口文件并且引入vue-loader,完整的代码如下:
` 01 const path = require('path'); 02 const VueLoaderPlugin = require('vue-loader/lib/plugin'); 03 04 module.exports = { 05 //指定入口文件 06 entry:path.join(__dirname, 'app.js'), 07 //指定输出的文件位置和文件名称 08 output: { 09 path: path.join(__dirname,'dist'), 10 filename: 'build.js' 11 }, 12 plugins: [ 13 //在使用新版的vue-loader时,必须引入这个插件 14 new VueLoaderPlugin() 15 ], 16 module: { 17 //指定不同格式的规则 18 rules: [ 19 //解析.vue文件 20 { 21 test: /\.vue$/, 22 loader: 'vue-loader' 23 }, 24 ] 25 } 26 }`
这里指定了入口文件导出的位置和引入模块时的一些规则,通过这个配置让Webpack可以编译同级目录中的app.js文件,并且在dist文件夹中建立新的build.js作为导出的文件。
(6)编辑app.js中的内容。在app.js中需要引入Vue.js、获取页面中的body节点,并且将所有需要显示的内容挂载在上面,完整的代码如下:
` 01 //引入vue 02 import Vue from 'vue' 03 import Hello from './helloworld.vue'; 04 05 const root = document.createElement('div') 06 document.body.appendChild(root) 07 08 //mount将Hello模块挂载到root根节点中 09 new Vue({ 10 render: (h) => h(Hello) 11 }).$mount(root)`
(7)上述代码引入了一个还未建立的Hello模块,其文件名为helloworld.vue,也就是本例的Vue.js部分,该文件中指定了一个变量,赋值为HelloWorld并显示在页面上。
01 <template> 02 <div> 03 <p>{{text}}</p> 04 </div> 05 </template> 06 07 <script> 08 export default{ 09 name: "Hello", 10 data(){ 11 return { 12 text: 'HelloWorld!!!' 13 } 14 } 15 } 16
其中,{{text}}部分显示下方script/data中text的值“HelloWorld!!!”,而模板的部分将会被挂载在一个HTML文件的body节点中,最终将所有的内容显示在页面中。
(8)Hello World实例到此就完成了。在命令行中使用如下命令打包:
webpack --config webpack.config.js
也可以将此命令添加到package.json中,通过webpack-cli的方式使用,这样会更加方便。修改后的代码如下:
{ "name": "2-3-2", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "test": "echo \"Error: no test specified\" && exit 1", "build": "webpack --config webpack.config.js" }, "author": "", …… }
在命令行窗口中使用如下命令完成打包操作,
npm run build