前言:

4.26号入手vue.js+elementUI,迄今为止我们的工作应该可以暂时告一段落了;下周开始,又是新的“征程”。

过程:站在接近完成的角度来看这个项目,似乎的确有许多事情需要自己阐述。

关于连接数据库

初次vue.js的时候,还以为可以通过什么“手段”像使用thinkjs一样直接连接到数据库,于是不知道从哪里看见的“Vue2.0之后,vue-resource停止更新,原因是Vue2.0开始,他们想更专注于View层,所以网络部分就不再维护,并且axios支持服务端渲染,各方面比resource更好,故推荐使用axios”(之前的确在哪里看见过,可是今天找了很久,也没有发现在官网哪里,但是事实的确如此吧!暂不纠结这个了,因为我们的项目中并没有使用它,但还是附上axios文档地址:https://github.com/mzabriskie/axios);简言之:使用vue.js的时候,需要另外一个“工具“来辅助它请求服务器端;

我们采取的做法便是将前后端分离,均采用nodejs,一个专门写接口,将前台需要的数据组织好(使用hprose:http://www.hprose.com/index.html);一个专门写页面(使用vue.js2.0:https://cn.vuejs.org/以及elementui:http://element.eleme.io/#/zh-CN);

使用vue+elementui的例子:

https://github.com/taylorchen709/vue-admin,整个项目结构也是跟整个相同,于是在实际使用过程中就出现了很多“意想不到”的问题

1.首先是关于静态文件的引入

需要在项目的根目录下,新建一个static的文件夹,图片放在static/img文件夹底下,样式文件放在static/css文件夹底下,具体使用:

图片引用:'/static/img/xxx.png';

css引用:@import '/static/css/xxx.css';

2.关于路由权限的问题

可以参考http://www.cnblogs.com/zhengyeye/p/6908159.html这里所描述的试试;

3.登录页底下添加备注

需要login页面底部栏添加一行备注,起初的做法是在login.vue页面写代码,但是最终发现总是报错,最终原来发现了底部栏信息是写在App.vue中的:

<template>
<div id="app">
<router-view></router-view>
<footer>
<div style="font-size: 14px !important;text-align: center !important;color: #c1c8d1">
提示:这里是备注信息
</div>
</footer>
</div>
</template>

下面便是修改后的效果:

4.关于dialog或者button绑定属性或者显示值的若干问题

1)dialog:后台管理系统中,免不了新增或者编辑的弹框,简洁之便可以使用同一个dialog,于是就出现了

<el-dialog v-model="FormVisible" :close-on-click-modal="false" v-bind:title="title" style="width: 760px;margin: 0 auto;">
...
</el-dialog>

只需要使用v-bind,绑定dialog的title属性即可;同理适用于butoon中:

<el-button v-bind:type="showType" size="small" @click="handleEdit(scope.$index, scope.row)" v-text="showFont"></el-button>

这样的话,我们就可以“随心所欲”的使用一个变量来控制button想样式以及回显的字了,但是记得显示字需要用v-text,简单记:

v-bind:绑定的是属性;v-text:绑定的是文字;

5.分页组件

elementui提供了一套现成的分页组件(http://element.eleme.io/#/zh-CN/component/pagination),但是我们在使用过程中却出现了一个问题:当我们先点击分页信息,再点击页面上部的搜索条件的时候,分页组件始终停留在之前的分页数字上面,究其原因原来是绑定的row和page的值不太正确,于是在每次点击“搜索”的时候,就让this.page=1就行;

<el-col :span="24" class="toolbar" >
<el-pagination style="float: right"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
:current-page="page"
:page-sizes="[25, 50, 100, 250]"
:page-size="rows"
layout="total,sizes,prev,pager,next,jumper"
:total="total">
</el-pagination>
</el-col>

6.多个input绑定同一个change事件

需求:同时监听多个input的change事件

<input type="text" value="value" @change="mychange($event)"/>
mychange (e) {
console.log(e.target.value)
this.value = e.target.value
}

由于input的change事件只传一个一个参数,而这里需要对多个input进行判断区分,于是自己就在change方法中增加了一个参数:index

<input type="text" value="value" @change="mychange($event,1)"/>
mychange(e,index){
//需要处理的逻辑
}

这样就可以区分多个input,进行其他操作了。

后言:

其实整个项目遇见的问题不仅于此,更多的感觉便是自己处理问题的办法总是太少,不够得当。不过Becauser of like,I love it more tan before,相信以后应该会好点吧~

收拾收拾,下班回家。迎接下周新工作了。

首个vue.js项目收尾中……的更多相关文章

  1. vscode下面开发vue.js项目

    vscode下面开发vue.js项目   https://blog.csdn.net/linzhiqiang0316/article/details/79176651 vscode下面开发vue.js ...

  2. vue.js项目构建

    这里构建的vue.js项目依赖node服务器运行. 项目搭建完整步骤: 安装node.js ,转至nodeJs网站http://nodejs.cn/ 下载nodeJs进行安装. 安装完毕检查nodeJ ...

  3. vue.js项目安装

    Vue.js 安装 NPM 方法安装vue.js项目 npm 版本需要大于 3.0,如果低于此版本需要升级它: # 查看版本 $ npm -v 2.3.0 #升级 npm npm install np ...

  4. 建立多页面vue.js项目

    介绍 根据需求,我们希望建立一个多页面的vue.js项目,如何改造单页面vue.js项目为多页面项目?跟着我的步伐看下去吧. 1.创建单页面vue.js项目 简单的记录一下创建步骤: --安装cnpm ...

  5. 坑!vue.js在ios9中失效

    坑!vue.js在ios9中失效! 接到实现,在移动端生成一个分享链接,分享到微信,在微信中打开,加入! 好,用vue实现----------------------->写代码--------- ...

  6. 如何把vue.js项目部署到服务器上

    如何把vue.js项目部署到服务器上面,我用的是tomcat服务器 1-改一下config/index.js文件,如下图,把assetsPublicPath: './', productionSour ...

  7. Vue.js项目的开发环境搭建与运行

    写作背景:手上入一个用Vue框架写的微信公众号项目,根据公司安排,我负责项目源代码的验收工作(当然专业的工作检测会交给web开发人员,我只是想运行起来看一看). 1 开发环境安装步骤: (一)安装no ...

  8. 添加谷歌拓展程序 vue.js devtools过程中的问题

    在用vue做项目过程中,需要用到vue.js devtools,在从github上面clone下来代码,然后再npm install ,过程报错,然后更新npm包也是会有问题,以下是install的问 ...

  9. 如何将你的 Vue.js 项目部署在云开发静态托管之上

    云开发静态托管是云开发提供的静态网站托管的能力,静态资源(HTML.CSS.JavaScript.字体等)的分发由腾讯云对象存储 COS 和拥有多个边缘网点的腾讯云 CDN 提供支持. 在云开发静态托 ...

随机推荐

  1. ios UITextField文本框基本使用,以及所有代理方法的作用

    /* UITextField文本输入框 */ UITextField * textField = [[UITextField alloc]initWithFrame:CGRectMake(50, 50 ...

  2. pionter指针小结

    第七章.指针和函数的关系 可以把一个指针声明成为一个指向函数的指针. intfun1(char*,int); int(*pfun1)(char*,int); pfun1=fun1; .... .... ...

  3. System类及其getProterties( )和getProperty( )

    System这个类来源: public final class System extends Object System类包含若干个有用的类字段和方法,而且不能被实例化.System类提供的工具包括标 ...

  4. 一站式学习Wireshark(三):应用Wireshark IO图形工具分析数据流

    基本IO Graphs: IO graphs是一个非常好用的工具.基本的Wireshark IO graph会显示抓包文件中的整体流量情况,通常是以每秒为单位(报文数或字节数).默认X轴时间间隔是1秒 ...

  5. 基于Struts2.3.x+Spring3.2.x+Hibernate4.2.x+EasyUI1.3.4+Maven架构的示例程序

    基于Struts2.3.x+Spring3.2.x+Hibernate4.2.x+EasyUI1.3.4+Maven架构的示例程序 不知道为什么,保存的时候显示有一个连接为违禁内容,可能是…………. ...

  6. Aria2 懒人安装教程

    https://aria2.github.io/ uI版:https://github.com/ziahamza/webui-aria2 web的 可以在线使用的 https://ziahamza.g ...

  7. 16 款最流行的JavaScript 框架

    1. jQuery – Javascript框架 jQuery 是最流行的 JavaScript 框架,它简化了HTML 文档遍历.事件处理.动画和Ajax交互.jQuery插件非常之多. 2. Do ...

  8. am335x watchdog

    am335x watchdog 内核文档kernel/Documentation/watchdog Qt@aplex:~/kernel/7109/linux-3.2.0/Documentation/w ...

  9. (转)获取android源码时repo的错误

    获取android源码时repo的错误 今天用repo获取android源码:../bin/repo init -u git://android.git.kernel.org/platform/man ...

  10. linux -- gedit快捷键

    Shortcuts for tabs:Ctrl + Alt + PageDown     Switches to the next tab to the left.Ctrl + Alt + PageD ...