前言:

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. pyqt布局管理器QGridLayout简单示例

    # _*_ coding:utf-8 _*_ import sys from PyQt4 import QtGui class Example(QtGui.QWidget): def __init__ ...

  2. JAVA培训资料

    JAVA培训资料 一.Java语言 1.面向对象的三个基本特征 2.方法重载和方法重写的概念和区别 3.接口和内部类.抽象类的特性 4.文件读写的基本类 **5.串行化的注意事项以及如何实现串行化 6 ...

  3. Entity Framework4.3安装以及错误(基础连接已经关闭:未能为SSL/TLS……)问题解决!

    Entity Framework以下简称EF 安装EF4.3的步骤是首先安装VS扩展 NuGet,然后再使用NuGet安装EF程序包 安装完NuGet就可以安装EF了,有两种方式可以安装EF: 1.使 ...

  4. 【C#/WPF】保存BitmapImage数据到文件中

    参考: http://stackoverflow.com/questions/35804375/how-do-i-save-a-bitmapimage-from-memory-into-a-file- ...

  5. c# 终止线程

    最近在弄一个等待窗口,使用了线程去调用form.在结束线程这边碰到了些问题.调用: thread.Abort();thread.Join();老被ThreadAbortException异常抛出困扰. ...

  6. JavaScript 使用 php 的变量

    php 里面有一个变量,我想让 js 调用他, 有如下流程: <?php for ($i = 0; $i < 8; $i++) { echo "<tr>"; ...

  7. [4G]Linux平台上实现4G通信

    转自:http://blog.sina.com.cn/s/blog_7880d3350102wb92.html 在ARM平台上实现4G模块的PPP拨号上网,参考网上的资料和自己的理解,从一无所知到开发 ...

  8. 【译】Linux概念架构的理解

    声明:本文转载,原路径地址:http://www.jianshu.com/p/c5ae8f061cfe 摘要 Linux kernel成功的两个原因:(1)灵活的架构设计使得大量的志愿开发者能够很容易 ...

  9. 百度地图Api进阶教程-基础地图示例1.html

    <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content ...

  10. Python time & datetime & string 相互转换

    #!/usr/bin/env python# -*- coding:utf-8 -*- # @Datetime : 2017/11/23 下午12:37# @Author : Alfred Xue# ...