vue前后端分离初体验(-)

数据库老师说bookstrap太老,太丑了。建议我们用心的框架,后端SSM的增删改查已经做完了,偶然看到一个github项目介绍了vue.js看起来界面还挺好看的。然后就想用vue.js实现前后端的分离。

一、vue.js是什么

是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。

官方介绍,然而我还是不太懂它和别的前端框架有什么区别,所以就还是一边做,一边了解吧。

二、node.js和webback

1.node.js

node.js就js的运行环境,听说node.js可以实现全栈,我试着用它搭建了服务器,看起来很简单的,几行代码就搭建出来了,但是对于各种包就完全一无所知,感觉学起来也是挺困难的,封装性比较强啊。用vue.js之前要先安装node.js.下图是node.js的安装。安装完之后npm就已经有了。输入npm就可以看到输出内容。然后我们就可以用npm安装很多依赖,下载各种包。


2.webpack

它分析你的项目结构,找到JavaScript模块以及其它的一些浏览器不能直接运行的拓展语言(Scss,TypeScript等),并将其打包为合适的格式以供浏览器使用

安装过程:终端下输入

cnpm install vue-cli -g ,运行vue查看安装是否成功。运行vue init webpack vuehui (vuehui是工程名字)



执行npm install

注意:这个npm会比较慢,可以用淘宝的镜像,然后安装的使用命令cnpm install.或者也可以使用代理

前端编译器可以使用webStorm,但是感觉挺卡的。安装的时候勾选可以右键项目就可以打开webStorm


然后就可以运行项目npm run dev,出现如下界面:


三、登录界面的尝试

参考博客:https://blog.csdn.net/sxiaofang/article/details/80215575

1.安装需要的包

npm install axios -save  //axios作为和后端的交互

npm install element-ui -save   //界面美化的组件

安装的时候我会报错cannot find file...解决方法就把node_modules文件夹删除了,执行npm install 重新生产node_modules,之后再安装就不会出错了

2.登陆界面代码

main.js import需要的包,ui组件和css样式

import Vuefrom 'vue'

import Appfrom './App'

import routerfrom './router'

import ElementUIfrom 'element-ui'

import 'element-ui/lib/theme-chalk/index.css'

Vue.use(ElementUI)

Vue.config.productionTip =false

/* eslint-disable no-new */

new Vue({

el:'#app',

router,

components: { App },

template:''

})

router下的index.js改变页面入口

import Vuefrom 'vue'

import Routerfrom 'vue-router'

Vue.use(Router)

const Login = resolve => require(['@/components/Login'], resolve)

export default new Router({

routes: [

{

path:'/',

name:'登录',

component:Login }]

})

创建新的组件login.vue。这个代码样式那里就不太能看懂了hh

<template>

<div class = "note" :style = "note">

<div class="loginFrame">

<el-form ref = "AccountForm" :model = "account"  rules = "rules" label-position = "left" label-width = "0px" class = "demo-ruleForm login-container">


  <el-tabs v-model = "activeName" @tab-click = "handleClick" class = "users">

<el-tab-pane label = "学生" name = "students">学生</el-tab-pane>

<el-tab-pane label = "教师" name = "teacher">老师</el-tab-pane>

<el-tab-pane label = "教务老师" name = "eduTeacher">教务老师</el-tab-pane>

</el-tabs>

<el-form-item prop = "username">

<el-input type = "text" v-model = "account_username" auto-complete = "off" placeholder = "请输入您的账号"></el-input></el-form-item>

<el-form-item prop = "password">

<el-input type = "password" v-model = "account_password" auto-complete = "off" placeholder = "请输入密码"></el-input></el-form-item>

<el-checkbox v-model = "checked" checked class = "remember">记住密码</el-checkbox>

<h3 class = "forgetpwd">忘记密码</h3>

<el-form-item style = "width:100%;">

<el-button type = "primary" style = "width:100%;" >登录</el-button>

</el-form-item>

</el-form>

</div>

</div>

</template>

<script>

export default {

name:'登录',

data () {

return {

logining:false,

note: {

position:'absolute',

top:'0px',

left:'0px',

width:'100%',

height:'100%',

backgroundImage:'url(' + require('../assets/bg4.jpg') +')',

backgroundSize:'100% 100%',

backgroundRepeat:'no-repeat'

      },

account: {

username:'',

password:''

      },

rules: {

username: [

{required:true,message:'请输入账号',trigger:'blur'}

// { validator: validaePass }

        ],

password: [

{required:true,message:'请输入密码',trigger:'blur'}

// { validator: validaePass2 }

        ]

},

checked:true

    }

}

}

</script>

<style>

.login-container {

box-shadow:0 0px 8px 0 rgba(0,0,0,0.06),0 1px 0px 0 rgba(0,0,0,0.02);

-webkit-border-radius:5px;

border-radius:5px;

-moz-border-radius:5px;

background-clip:padding-box;

margin:180px auto;

width:350px;

padding:35px 35px 15px 35px;

background:#fff

  ;

border:1px solid #eaeaea;

box-shadow:0 0 25px #cac6c6;

}

</style>


3.运行结果



四、下一步任务

下一步就是先写好学籍管理系统的登录界面,然后再跟学生管理系统合并,也就是前后端衔接,貌似挺容易的,可以把vue组件打包成js,然后在html引用就可以了

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,098评论 5 476
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,213评论 2 380
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 149,960评论 0 336
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,519评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,512评论 5 364
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,533评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,914评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,574评论 0 256
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,804评论 1 296
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,563评论 2 319
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,644评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,350评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,933评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,908评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,146评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,847评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,361评论 2 342

推荐阅读更多精彩内容

  • # 传智播客vue 学习## 1. 什么是 Vue.js* Vue 开发手机 APP 需要借助于 Weex* Vu...
    再见天才阅读 3,523评论 0 6
  • vue-cli搭建项目 确保安装了node与npm 再目标文件夹下打开终端 执行cnpm i vue-cli -g...
    Akiko_秋子阅读 3,211评论 1 22
  • 前段时间的空姐滴滴事件轰动一时,让人感叹这个世界有点太可怕,但是这样的事情也只是个例,在我们身边更多的还是美好的。...
    零点七度阅读 497评论 4 9
  • 上个周末陪老婆一起有幸去看了几部文艺电影,所谓文艺电影,就是区别于商业电影而命名的。商业电影顾名思义,就是纯粹为了...
    一凡常心阅读 215评论 0 1
  • 昨天晚上又梦到他了,梦里的每一个细节都记得很清楚。前面已经忘了,只是忽然梦境一转,和妈妈来到了一个类似大片农田的地...
    梨子家的傻瓜阅读 314评论 0 0