目录
2021了,VUE都出3.0了,还不开始学习VUE?那不是一个全栈攻城狮的自我修养,虽然VUE出3.0了,但是入门还是建议VUE2.0 + Element UI,毕竟3.0还要等养肥了在学,现在教程太少,学习2.0之后在学3.0也能更加理解为什么要这么去改进
VUE是啥?简单来说就是一个JS框架
Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
此处可以看VUE入门视频:https://learning.dcloud.io/#/?vid=0
本教程是给有一点基础的人进行VUE的快速入门,搭建一个单页面的增删改查。
[图片上传失败…(image-56de9f-1612435593826)]
现在的前端都是模块化开发了,需要Nodejs的支持,到官网下载Nodejs一路Next即可安装,官网地址:https://nodejs.org/en/
安装好后打开cmd命令行窗口,输出node -v,如果有版本号说明安装成功,同样输入npm -V如果有版本号说明npm安装成功(npm为nodejs的包管理器)
在实战VUE之前先了解下json-server,顾名思义json服务器,在我们的入门实战中,不想引入太过于复杂的后端环境但是又想体验模块化的前端整个HTTP请求的完整过程,所幸Nodejs提供了json-server工具,方便快速的搭建简易服务器。
npm i json-server -g
随便找个目录,创建一个db.json文件,内容如下
{
"data": []
}
然后在该目录下打开命令行窗口,执行
json-server --watch db.json
回显如下说明成功
\{^_^}/ hi!
Loading db.json
Done
Resources
http://localhost:3000/data
Home
http://localhost:3000
Type s + enter at any time to create a snapshot of the database
Watching...
http://localhost:3000/data是接口地址,直接用curl发送POST,DELETE,PATCH,GET请求模拟增删改查,只要测试一个通过了即可,其他的感兴趣可以测试下。
curl "http://127.0.0.1:3000/data" -H "Content-Type: application/json" -d "{\"name\":\"zhangsan\"}" -X POST
返回值如下
{
"name": "zhangsan",
"id": 2
}
再看一下我们刚才创建的db.json文件,里面多了我们刚才POST的数据。实际上就是存在了这个文件里面。
注意改的时候url后面跟上id
curl "http://127.0.0.1:3000/data/2" -H "Content-Type: application/json" -d "{\"name\":\"lisi\"}" -X PATCH
返回如下
{
"name": "lisi",
"id": 2
}
说明修改成功
curl "http://127.0.0.1:3000/data" -X GET
直接查全部
[
{
"name": "lisi",
"id": 2
}
]
删除id为2的数据
curl "http://127.0.0.1:3000/data/2" -X DELETE
返回如下
{}
vue-cli是vue的脚手架,所谓脚手架说白了就是快速创建模板化的项目,不用每次创建项目都去重复那些固定化的操作,注意我们安装的是vue2.0的脚手架
npm install -g vue-cli
不要和vue3.0的混淆,vue3.0是npm install -g @vue/cli,此处不需要安装3.0,否则会冲突
webpack可以将vue项目打包成静态文件
npm install webpack -g
随便找个目录输入如下命令
# 初始化一个叫做vue2_elementui的项目,使用webpack模板
vue init webpack-simple vue2_elementui
# 进入项目目录
cd vue2_elementui
# 构建
npm install
# 运行
npm run dev
经过上面的操作,打开http://localhost:8080/如果能看到下面的页面说明搭建成功了
上面的先CTRL + C退出,下面安装Element UI依赖
# 安装Element UI
npm install element-ui -S
# 顺便安装vue-router 和 vue-resource,前者是路由,后者是执行Ajax请求用到的依赖
npm install vue-router vue-resource --S
# 安装moment,事件选择组件
npm install moment -S
打开main.js,引入上面安装的组件
import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
import axios from 'axios'
import moment from 'moment'
Vue.filter('moment', function (value, formatString) {
formatString = formatString || 'YYYY-MM-DD HH:mm:ss';
return moment(value).format("YYYY-MM-DD"); // value可以是普通日期 20170723
});
Vue.prototype.$axios = axios
new Vue({
el: '#app',
render: h => h(App)
})
打开APP.vue,修改如下
element ui 安装成功
最后再次运行
npm run dev
如果出现下面的页面,而且点击页面会出现右边的提示框,说明Element UI安装成功
用户信息管理界面
添加
{{ scope.row.date | moment}}
{{ scope.row.name }}
{{ scope.row.email }}
{{ scope.row.title }}
{{ scope.row.evaluate }}
{{ scope.row.state }}
编辑
删除
这是列表主组件,查询和展示用的,长下面这样
[图片上传失败…(image-e10941-1612435593825)]
其中引入了AddUser组件和EditUser组件
这是添加用户信息组件
编辑和新增类似
APP.vue修改如下,其中import UserInfo from './UserInfo’表示引入组件
表示调用该组件
element ui 安装成功
最后打开页面,看看是否能增删改查
此时,项目结构如下图所示
[图片上传失败…(image-ae5dd1-1612435593825)]
此处假设你已经看过VUE基础视频了:https://learning.dcloud.io/#/?vid=0
main.js很重要,里面定义了入口组件APP.vue;引入了项目所需要的包
分别是template,script,style,新组件就这样来定义
//定义该组件的模板
在AddUser.vue组件中,有一个键叫props,里面有一个dialogAdd
这表示该组件可以用到的属性,在UserInfo.vue里面这么引用AddUser组件的
在AddUser上面绑定了一个dialogAdd属性,这会传到AddUser.vue组件里面控制AddUser的显示与隐藏,有点像父子组件之前的通信
在AddUser.vue组件中,有一个自定义事件
this.$emit('update');
这会给父组件UserInfo触发一个update事件,父组件自然会调用@update中定义的方法getUserInfo重新查询数据并加载页面,总结两句话就是:
ElementUI相关问题可以参考官方文档:https://element.eleme.cn/#/zh-CN/component/installation
推荐一个通用后端项目:https://panjiachen.github.io/vue-element-admin-site/zh/guide/
vue-element-admin 是一个后台前端解决方案,它基于 vue 和 element-ui实现。它使用了最新的前端技术栈,内置了 i18 国际化解决方案,动态路由,权限验证,提炼了典型的业务模型,提供了丰富的功能组件,它可以帮助你快速搭建企业级中后台产品原型。相信不管你的需求是什么,本项目都能帮助到你。