VUE
一、组件 Component
1. 局部组件
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<Navbar></Navbar>
</div>
<script src="vue.min.js"></script>
<script>
new Vue({
el: '#app',
//定义vue使用的组件
components: {
//组件的名字
'Navbar': {
//组件的内容
template: '<ul><li>首页</li><li>学员管理</li></ul>'
}
}
})
</script>
</body>
</html>
2. 全局组件
定义全局组件:components/Navbar.js
// 定义全局组件
Vue.component('Navbar', {
template: '<ul><li>首页</li><li>学员管理</li><li>讲师管理</li></ul>'
})
使用
测试
二、实例生命周期
1. created 页面渲染之前执行
2. mounted页面渲染之后执行
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
hello
</div>
<script src="vue.min.js"></script>
<script>
new Vue({
el: '#app',
data: {
},
created(){
//在页面渲染之前执行
debugger
console.log('created~~~~~~')
},
mounted(){
//在页面渲染之后执行
debugger
console.log('mounted~~~~~~')
}
})
</script>
</body>
</html>
三、路由
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<h1>Hello App!</h1>
<p>
<!-- 使用 router-link 组件来导航. -->
<!-- 通过传入 `to` 属性指定链接. -->
<!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
<router-link to="/">首页</router-link>
<router-link to="/student">会员管理</router-link>
<router-link to="/teacher">讲师管理</router-link>
</p>
<!-- 路由出口 -->
<!-- 路由匹配到的组件将渲染在这里 -->
<router-view></router-view>
</div>
<script src="vue.min.js"></script>
<script src="vue-router.min.js"></script>
<script>
// 1. 定义(路由)组件。
// 可以从其他文件 import 进来
const Welcome = { template: '<div>欢迎</div>' }
const Student = { template: '<div>student list</div>' }
const Teacher = { template: '<div>teacher list</div>' }
// 2. 定义路由
// 每个路由应该映射一个组件。
const routes = [
{ path: '/', redirect: '/welcome' }, //设置默认指向的路径
{ path: '/welcome', component: Welcome },
{ path: '/student', component: Student },
{ path: '/teacher', component: Teacher }
]
// 3. 创建 router 实例,然后传 `routes` 配置
const router = new VueRouter({
routes // (缩写)相当于 routes: routes
})
// 4. 创建和挂载根实例。
// 从而让整个应用都有路由功能
const app = new Vue({
el: '#app',
router
})
</script>
</body>
</html>
测试
四、axios
axios是独立的项目,不是vue里面的一部分,使用axios经常和vue一起使用,实现ajax操作
① 先在data中定义变量
② 再在methods中定义方法
③ 最后调用方法
第一步:创建html页面,引入js文件,包含两个js文件:vue和axios
第二步:创建json文件,数据创建
第三步:使用axios发送ajax请求,请求文件,得到数据,在页面显示
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
</head>
<body>
<div id="app">
<!--把userList数组里面数据显示-->
<div v-for="user in userList">
{{user.name}}
{{user.age}}
</div>
</div>
<script src="vue.min.js"></script>
<script src="axios.min.js"></script>
<script>
new Vue({
el: '#app',
data: { //在data定义变量和初始值
//定义变量:空数组
userList:[]
},
created(){ //页面渲染之前执行,调用定义的方法
this.getUserList()
},
methods:{ //编写具体的方法
getUserList(){
//axios.提交方式("请求接口路径").then(箭头函数).catch(箭头函数)
//axios.get('http://localhost:8081/admin/ucenter/member')
axios.get("data.json")
.then(Response =>{
//console.log(Response)
this.userList = Response.data.data.items
console.log(this.userList)
}) //请求成功执行then方法
.catch(error=>{
}) //请求失败执行catch方法
}
}
})
</script>
</body>
</html>
测试
五、element-ui
element-ui 是饿了么前端出品的基于 Vue.js的 后台组件库,方便程序员进行页面快速布局和构建
第一步:引入css
<!-- import CSS -->
<link rel="stylesheet" href="element-ui/lib/theme-chalk/index.css">
第二步:引入js
<!-- import Vue before Element -->
<script src="vue.min.js"></script>
<!-- import JavaScript -->
<script src="element-ui/lib/index.js"></script>
第三步:编写html
<div id="app">
<el-button @click="visible = true">Button</el-button>
<el-dialog :visible.sync="visible" title="Hello world">
<p>Try Element</p>
</el-dialog>
</div>
六、node.js
1. 介绍
- 之前学过java,运行java需要安装jdk环境
- node.js是JavaScript的运行环境,用于执行JavaScript代码环境
不需要浏览器,直接使用node.js运行JavaScript代码
七、npm
- 在后端开发中,使用maven构建项目,管理jar依赖,联网下载依赖
- npm类似于maven,用在前端中,管理前端js依赖,
联网下载js依赖
1. npm项目初始化操作
命令 npm init -y
项目初始化之后,生成文件package.json,类似于后端pom.xml文件
2. npm下载js依赖
命令 npm install 依赖名称
3. 根据package.json文件下载依赖
命令 npm install
4.其它命令
#更新包(更新到最新版本)
npm update 包名
#全局更新
npm update -g 包名
#卸载包
npm uninstall 包名
#全局卸载
npm uninstall -g 包名
八、babel
babel是转码器,把es6代码转换成es5代码
因为写的代码es6代码,但是es6代码浏览器兼容性很差,如果使用es5代码浏览器兼容性很好,编写es6代码,把es6代码转换es5运行
九、模块化
(1) 开发后端接口时侯,开发controller service mapper,controller注入service,service注入mapper
在后端中,类与类之间的调用称为后端模块化操作
(2) 前端模块化,在前端中,js与js之间调用称为前端模块化操作
(3) ES6使用 export 和 import 来导出、导入模块。
1. ES6实现模块化
注意:如果使用es6写法实现模块化操作,在node.js环境中不能直接运行的,需要使用babel把es6代码转换es5代码,才可以在node.js进行运行
1.1 导出模块
1.2 导入模块
2. ES6模块化的另一种写法
1.1 导出模块
1.2 导入模块
3. ES5实现模块化
导出模块
创建 common-js模块化/四则运算.js
// 定义成员:
const sum = function(a,b){
return parseInt(a) + parseInt(b)
}
const subtract = function(a,b){
return parseInt(a) - parseInt(b)
}
const multiply = function(a,b){
return parseInt(a) * parseInt(b)
}
const divide = function(a,b){
return parseInt(a) / parseInt(b)
}
// 导出成员:
module.exports = {
sum: sum,
subtract: subtract,
multiply: multiply,
divide: divide
}
//简写
module.exports = {
sum,
subtract,
multiply,
divide
}
创建 common-js模块化/引入模块.js
//引入模块,注意:当前路径必须写 ./
const m = require('./四则运算.js')
console.log(m)
const result1 = m.sum(1, 2)
const result2 = m.subtract(1, 2)
console.log(result1, result2)
十、webpack
Webpack 可以将多种静态资源 js、css、less 转换成一个静态文件,减少了页面的请求。