Vue与ElementUI
Vue与ElementUI
ruoxijunVue-cli 基本使用
1. 环境安装:
基础环境:
- Node.js 官网与下载地址: 下载 | Node.js 中文网 (nodejs.cn)
- Node.js版本cmd查看命令: node -v
- Node.js安装成功自带npm版本查看命令: npm -v
- Node.js 版本更新 工具:Kenshin/gnvm: Node.js version manager on Windows by GO (github.com)
- git 官网与下载地址: Git - Downloads (git-scm.com)
以下所有命令建议 以管理员方式打开 cmd 执行 。
1. Node.js 环境配置:
镜像配置:
npm install cnpm -g
:安装 cnpm 淘宝镜像(不建议使用,使用易出错)npm install --registry=https://registry.npm.taobao.org
:注册淘宝镜像加速器( 推荐 使用)
查看镜像配置: npm config get registry
- 环境变量配置:
E:\myfile\nodejs\
win 以 %
开头的环境变量在第一位置会导致查看环境变量时所有环境变量在一行显示,将带盘符的环境变量剪切到最前面即可让环境变量多行显示。
npm 依赖缓存位置修改:
因为npm在下载依赖时它会先缓存再下载,因此我们这里需要修改两个配置,一个是用来临时缓存依赖的文件夹一个是保存下载依赖的文件夹。
npm config set cache "E:\myfile\nodejs\data\cache"
npm config set prefix "E:\myfile\nodejs\data\prefix"
- 还需要配置环境变量:
E:\myfile\nodejs\data\prefix\
2. webpack 安装:
- 通常需要安装 webpack 和 webpack-cli:
1 | npm install webpack -g |
- 也可使用一行命令同时安装:
npm install webpack webpack-cli -g
3. vue-cli 安装使用:
安装与常用命令:
- vue-cli 安装:
npm install vue-cli -g
- vue3安装cli:
npm install -g @vue/cli
- 查看可使用的模板:
vue list
- 卸载 vue-cli :
npm uninstall -g vue-cli
项目创建:
vue init webpack demo
:初始化一个vue-cli项目,这里的demo是项目名。
使用上命令后会出现一下几个选项:
上面最后一项我们没有它帮我们在初始化项目时帮我们安装下载依赖,所以我们需要 cd
到我们的项目文件夹中自己手动安装依赖。
npm install
:依赖安装。npm run dev
:运行当前项目。
项目结构:
vue-cli 项目说明:
- .vue文件:
vue-cli 中项目将页面组件化,一个 .vue 文件表示一个vue的 Vue.component 即组件。首先看一下vue文件模板:
1 | <template> |
- main.js:
1 | import Vue from 'vue' |
2. ES6 知识补充:
1. this 指向问题:
1 | function fun() { |
- 普通函数:this指向它的调用者,如果没有调用者时默认指向window。
- 箭头函数:this指向它 定义时所处对象的父级this 。
2. 对象属性简写:
在对象中属性和值一样是可以简写(包括属性名和方法名相同时)。
1 | let name = "张三"; |
3. js 模块化(module):
案例:
如下有3个js文件,且引入到同一HTML中:
- 1.js:
1 | let a = 1; |
- 2.js:
1 | let a = 2; |
- main.js:
1 | console.log(a); |
- 我直接在HTML中引入3个js文件:
1 | <script src="1.js"></script> |
HTML在浏览器打开后显示错误,主要是由于变量重复定义来的错误。
解决方案:
- 只引入main.js且在script标签中使用
type="module"
属性,注意只能在运行在服务器中的HTML中使用。
1 | <script src="main.js" type="module"></script> |
- 在 1.js 和 2.js 中使用
export
导出需要的元素:
1 | export let a = 1; |
除一个一个导出外,我们也可以用对象一次导出:
1 | let a = 2; |
- 最后在 main.js 中引入:
1 | // 引入需要的属性,也可以使用 * 代表导入所有 |
export default:
- 使用
export default
导出的属性可以不定义名字,在引入的时候为它取名字。注意 一个js文件中只能有一个export default
。
1 | // export default {name:"张三"} |
- 引入时:
import 自定义名 from "js文件地址";
3. vue-router :
案例准备:在 components 文件夹中新建一个 VueRouterDemo.vue 文件,且在 template 中添加一句 <h1>VueRouterDemo</h1>
。我们利用这个文件和项目自带的 HelloWorld.vue 做一个路由案例。
1. vue-router 安装:
npm install vue-router --save-dev
:在项目中安装 vue-router
2. js 中配置 vue-router:
- 在 main.js 显示配置( 不推荐 ,推荐使用下方方法 ):
1 | import VueRouter from "vue-router"; |
- src根目录新建router文件夹新建 index.js 作为vue-router配置文件:
1 | // 引入vue和vue-router |
- 在 main.js 中引入配置:
1 | import Vue from 'vue' |
3. 在vue组件中使用router切换视图:
在App.vue中使用 router-link 与 router-view 实现视图切换(保证它们在App.vue的 <div id="app"></div>
中使用)。
1 | <router-link to="/HelloWorld">HelloWorld</router-link> |
这里 router-link 表示一个a标签, to 属性中填入配置好的路由地址。 router-view 会根据你点击的link显示对应路由的视图。或者在浏览器中输入相应的地址 router-view 也会跳转到响应的视图。
4. js 跳转和重定向:
- 使用 js 代码控制路由跳转:
this.$router.push("/");
- 如我们需要用户输入 根路径 时自动跳转到 index 路由那么就可以使用重定向来完成:
1 | path: '/:id', // 跟路径同时添加一个id参数 |
5. 嵌套路由:
在路由界面内嵌套其它的组件,并向实现这些组件的切换就需要使用到 嵌套路由 。嵌套路由是在当前的路由配置中在添加一个 children
属性实现。它是一个数组,数组中都是路由配置。
1 | // 在路由中添加此属性 |
6. 路由传参:
1. 路径传参:
在配置路由时可以在路由的最后添加自定义的参数
path:'/main/user/:id'
如我们在 user 路径后定义一个 id 的参数。我们只需在跳转路由时在路径的后面添加上参数需要的值即可,如跳转 user 时我们需要它的参数值即 id 的值为8则跳转的路径就可以这样写:
/main/user/8
。这样我们就可通过
$router.params.id
来获取到传递过来的值,如需在界面中显示也可以直接使用插值的方式来展示{{$router.params.id}}
。使用
{name:'路由的name',params:{id:8}}
对象的方式也能达到和/main/user/8
同样的效果。name
属性绑定要跳转的路由的name。parmas
对应一个对象里面的属性名对应你定义的参数名,属性值就是你要传递的参数值。如果使用<router-view :to="{name:'路由的name',params:{id:8}}"/>
则需要让:to
绑定这个对象。
2. porps传参:
同上首先路由配置中
path:'/main/user/:id'
不用改变,再多添加一个属性props:true
表示使用 props 传参。在跳转的组件中使用
props
属性为组件定义一个和参数名相同的属性:
1 | export default { |
- 最后我们就可以直接使用这个属性
{{id}}
。
7. 路由模式与404处理:
在 vue 中访问我们的项目时路径中总是默认带有一个 #
,我们可以在路由对象中:
1 | export default new VueRouter({ |
当用户访问我们没有定义的路由时应当跳转到一个404界面,这时我们就可以使用 path: '*'
来显示404组件:
1 | { |
8. 路由钩子函数:
路由钩子常搭配 Axios 请求数据 vue 中添加 Axios 请参照: axios (axios-js.com)
路由构造函数可以在路由跳转时我们处理一些信息和管理路由跳转。其中 beforeRouteEnter
的 next
回调函数中常做 Ajax 请求为跳转的页面准备数据。
1 | /** |
4. 整合 ElementUI:
1. 引入必要依赖:
1 | // 安装 ElementUI |
2. 配置注册:
在 main.js 中添加如下配置后即可使用 ElementUI。
1 | import Vue from 'vue'; |