Vue框架2(vue搭建方式2:利用脚手架,ElementUI)
一.引入vue第二种搭建方式
在以前的前端项目中,一个项目需要多个html文件实现页面之前的切换,如果页面中需要依赖js或者css文件,那么我们就需要在多个html文件中都需要导入vue.js文件,太过繁琐.
现在前端开发都采用单页面结果,一个项目中只有一个html文件
其他不同的内容都写在.vue文件中,每个vue文件就是一个组件,我们会为每个组件配置一个访问的地址,通过地址访问组件,在唯一的html文件中切换不同的组件
用图来展示项目开发中的单页结构:
正如图中所写,每一个html文件就相当于一个画布,我们只需要通过组件的地址,在此html文件中使用不同的组件,通过此方式实现只使用一个html文件来实现不同的页面,以及页面的切换.
此方法的好处是:配置只需要导入一次即可,导入依赖也只需要一次
二. 使用vue-cli搭建项目
vue-cli 是官方提供的一个脚手架,用于快速生成一个vue的项目模板;预先定义好的目录结构及基础代码,就好比咱们在创建Maven项目时可以选择创建一个骨架项目,这个骨架项目就是脚手架,使我们的开发更加的快速.
主要功能:
- 统一的目录结构
- 本地调试
- 热部署
- 单元测试
- 集成打包上线
需要的环境:
node.js
简单来说Node.js是一个前端js运行环境(类似于java后端开发的jdk)或者说是一个JS语言解释器.
npm(npm node package manager)
npm是Node.js包管理工具,用来安装各种Node.js的扩展.npm是JavaScript 的包管理工具,也是世界上最大的软件注册表.有超过60万个JavaScript 代码包可供下载.npm 让 JavaScript开发人员可以轻松地使用其他开发人员共享的代码.
搭建vue-cli单页项目的步骤
1.首先我们需要安装node.js前端js运行环境到我们的电脑上
我们可以在node.js官方网站上进行下载并安装
2.使用HbuilderX快速创建一个vue-cli项目
创建完后的vue-cli项目会存在很多目录,下面是这些目录与目录中文件的解释
注意: package-lock.json这个文件目录我们现在不使用,所有这里直接删掉即可
3.创建成功后,在命令行窗口启动项目
注意打开的命令窗口的项目名一定要是当前的项目名
在命令行窗口输入npm run serve
输入后,运行成功后会出现访问地址
在命令行中ctrl+c 停止服务
npm中的常用指令
1.npm install 用于安装各种依赖,在网上下载别人的项目时,项目中没有node-modules时就需要我们 通过该指令下载各种所需的依赖
2.npm run serve 启动前端项目,在终端里面ctrl+c 停止服务
3.npm run build 打包项目
三. 组件路由
在单页面项目中,我们需要实现多个页面的切换,即多个组件的切换.这时我们就需要通过组件路由实现组件的切换.
概述
vue router 是 Vue.js官方的路由管理器.它和Vue.js的核心深度集成,让构建单页面应用变得易如反掌.
组件路由的搭建(以及基础用法)
1.安装组件路由的依赖库
在下载完成后,在package.json会出现vue-router对应的版本
注意: 我们在下载依赖库或补全依赖时都会生成一个package-lock.json文件,我们需要删除它,我们在当前阶段用不到它.
2.在src目录下创建一个router的文件夹,在文件夹中创建一个index.js文件
在index.js文件中的代码:
import Vue from 'vue'; /*导入vue*/
import router from 'vue-router'; /* 导入路由 *//* 导入我们自己创建的组件 */import Index from "../views/Index.vue"
import Login from "../views/Login"//可以不需要文件后缀名
import Reg from "../views/Reg"Vue.use(router);
//创建vue-router对象
let rout = new router({
routes: [{path: '/index',//为组件定义访问地址name: 'index',//命名component: Index//指定组件},{path: '/login',component: Login},{path: '/reg',component: Reg}]});
//导出路由对象
export default rout;
其中需要注意的是我们自己所添加的组件名首字母是大写,在导入我们创建的组件时需要注意字母的大写.
注意: 我们通常在src目录下创建一个views文件夹,在此文件夹中创建我们自己的组件
<template><!-- 只能有一个根标签,组件内所有内容都写在根标签中 --><div>首页{{message}}<router-link to="/login">登录</router-link><router-link to="/reg">注册</router-link></div>
</template><script>export default{//定义数据data() {return{message:"hello index"}},methods:{//定义函数},mounted() {//生命周期函数}}
</script><!-- 写组件相关的样式 -->
<style>
</style>
这时我们自己创建的一个组件的代码基本格式
3.使用路由
1.在组件的<template>根标签中添加此标签,类似于超链接,点击即可切换指定地址的组件
<router-link to="/index">首页</router-link>
<router-link to="/content">内容</router-link>
2.App.vue文件的<template>根标签中添加下方标签
<router-view></router-view>
该组件用于显示指定组件内容
注意: App.vue文件的完整代码以及解释
<template><!-- 默认组件 --><div id="app"><!--显示指定组件内容 --><router-view></router-view></div>
</template><script>
export default {name: 'app',
}
</script>
4.在main.js中配置组件路由
import Vue from 'vue'//导入vue.js
import App from './App.vue'//导入默认组件//导入路由组件
import router from './router/index.js'
Vue.use(router);Vue.config.productionTip = false/* 创建一个唯一的vue对象 */
new Vue({render: h => h(App),//项目启动时,默认访问APP.vue组件router,
}).$mount('#app')//类似el:"#app"
这里只演示组件路由的基础用法,更高阶的用法会在后续的学习中演示
四.更换npm镜像地址,下载依赖库或补全依赖库更快
我们在补全依赖库,或下载安装组件路由的依赖库时,都是从国外的网站中下载的,我们可以更换npm镜像地址,下载速度更快一些.
这里我参考的博客是国内npm源镜像(npm加速下载) 指定npm镜像_npm国内镜像源-CSDN博客
打开命令行工具,进入你的项目目录,输入命令npm config get registry 可查看当前的镜像源
使用那个镜像,只需要 npm config set registry + 对应的镜像网址就好了(镜像源的网址参考上方的博客)
五. ElementUI
Element是一套为开发者,设计师和产品经理准备的基于Vue 2.0 的桌面端组件库.
ElementUI提供了丰富的UI组件,可以根据用户选择进行使用,大大提升了开发效率.
安装ElementUI
1.打开命令行窗口,进入项目目录,输入指令:npm i element-ui -S 安装ElementUI依赖库.
此处即为ElementUI的版本号
2.在 main.js中写入以下内容:
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
new Vue({
render: h => h(App),
}).$mount('#app');
下方是在我的项目中的main.js文件添加路由组件以及ElementUI组件
import Vue from 'vue'//导入vue.js
import App from './App.vue'//导入默认组件//导入路由组件
import router from './router/index.js'
Vue.use(router);//导入elementui组件
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);Vue.config.productionTip = false/* 创建一个唯一的vue对象 */
new Vue({render: h => h(App),//项目启动时,默认访问APP.vue组件router,
}).$mount('#app')//类似el:"#app"