前言:

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真机调试出现Development cannot be enabled while your device is locked.

    手机升级到iOS 10之后,运行真机出现了Development cannot be enabled while your device is locked. 这里是你对这台电脑设置了不信任: 解决方 ...

  2. VC6.0启动File-open和Project-add file to project崩溃的解决方法

    最近由于装了Office2010,VC6.0被整残了,file->open 和 Project->add file to project不能用,一用VC6.0就崩溃,查到是由于office ...

  3. RP2833 指示灯说明

    ARM-IO9           OUT0        PA8 备用 P5-A4管脚,可以连接74HC164D级联 ARM-IO10         OUT7        PA1       3 ...

  4. java——泛型1(转)

    一. 泛型概念的提出(为什么需要泛型)? 首先,我们看下下面这段简短的代码: 1 public class GenericTest { 2 3 public static void main(Stri ...

  5. iOS彩票项目--第四天,新特性界面搭建,UICollectionViewController的初次使用

    一.新特性界面搭建的思路: 在AppDelegate加载主窗体的时候进行判断程序版本号,直接进入程序或者进入新特性展示界面 取出当前的版本号,与旧的版本号相比较(旧的版本号在进入程序的时候存起来 =& ...

  6. 使用MultipartEntity上传文件(带进度对话框)

    package com.home.uploadfile; import java.io.File; import android.app.Activity; import android.os.Bun ...

  7. ASP.NET四种页面导航方式之比较与选择

    一.超级链接 从一个表单进入另一个表单最简单的方式是使用HTML超级链接控件.在Web表单中,使用超级链接的HTML代码类如: <a href="WebForm2.aspx" ...

  8. chrome 常用快捷键(可以摆脱鼠标哦)

      Ctrl+N                                打开新窗口. Ctrl+T                                打开新标签页. Ctrl+Sh ...

  9. Linux命令 cat命令

    这个命令可不是“猫”的意思,而是catenate的缩写.顾名思义,是把东西串起来.比如:cat file1 file2就是把文件file1和file2连在一起,然后输出到屏幕上.注意,输出到屏幕上是c ...

  10. e641. 使一个组件成为拖放目标

    public class DropTargetComponent extends JComponent implements DropTargetListener { public DropTarge ...