从后端到前端之Vue(一)写个表格试试水

目录:

1、脚本式开发.

2、工程化开发

3、工程化和脚本的区别

4、来个table试试水

4,1、目标

4.2、思路

4.3、设计与编码

4.4、效果

5、业务分离

6、功能拓展——个性化设置   

正文:

  我以前是后端(asp.net)开发,会点js、jQuery,但是不会写js特效,至于css嘛,拿来用现成的可以,自己动手写就不会了。

  发现现在前端开发的势头太猛了,有一点要干掉后端的感觉,于是萌发了想要学一学前端开发的想法。那么前端三大框架,先学哪一个呢?就先学学Vue吧,为啥呢?很简单呀,他只有三个英文字母,好记好写。

  Vue的学习时间比较短,才三、五天吧,所以有些用法可能很稚嫩,甚至是错误的,不过不怕,才刚开始学,及时发现错误及时改正就好。每天都写点心得,万一遇见好人给指点一二,那就挣大发了。

  Vue至少有两种开发方式:脚本是开发和工程化开发

一、脚本式开发

  就是和jQuery的使用有点像,在页面里引用vue.js,然后按照vue的规则写模板、写代码,就可以开鲁了。这种方式和jQuery挺像的,用着也是很爽的,改完代码一保存,浏览器里面一刷新就可以看到效果,很直观方便。

  这种方式适合初初学者,以及对一些想法做测试,验证想法是否行的通。但是正式项目里面可不可以这么用呢?一本书里面说——不可以。但是作为一个Vue的初学者,我现在还没有能力做这个判断。

二、工程化开发

  这个刚一开的时候感觉很懵逼,但是看着看着发现了,这个不就是后端做开发的方式吗?简直太像了。

  后端开发,以asp.net mvc 为例(为啥不用其他语言呢?千万别挣,因为我只会这一种,其他的不会)。打开IDE,建立一个项目,选择框架版本,选择项目类型,选择。。。。。然后IDE会根据你的选择,加载DLL引用,加载必须的js脚本,建立文件夹,建立配置文件,建立默认页面、代码。然后一运行,一个简单的网站就出来了。

  Vue的工程化开发居然也是这个样子的。首先要安装node和npm,然后安装Vue-cli,这个叫做脚手架,emmm,一脸懵逼这是啥?看看上一段我写的,这个脚手架统统能做。当然不是引用dll这类的,而是引用Vue开发需要的各种东东,也会让你做各种选择,最后建立文件夹,然后神奇的是,可以用node做一个站点,直接就运行了。还可以模拟后端。

  这个也太牛叉了吧,我感觉,再加上一个数据库(比如mysql),就没有后端啥事了。

  具体怎么做就不细说了,emmmm,好吧我现在也只是一知半解。反正很神奇就对了。

三、工程化和脚本的区别

  如果说脚本开发,是把js文件引入到页面 ,然后写代码的话,那么工程化是把自己的代码加到了Vue的框架里面,给框架补点肉,整个项目就出来了。

  历史的发展就是这样的,不管个人喜不喜欢,这种开发方式必定越来越火,不愿意接受的,早晚会被淘汰的。

四、来个table试试水

  看官网、查百度会有一些简单的介绍,这里也是依据这些简单的介绍,来点稍微复杂一些的,也是比较实用的一种用法。因为我也只是初学,不知道这种用法属于什么级别的,抛砖引玉,拿出来供大家参考一下。

  1、目标

    不管做什么事情,都要先定一个目标,这里虽然只是一个试水,但是也应该知道要做成啥样子的。那么就定一个简单的表格吧,比如下图这个样子的。

     

    很简单的一个表格,列不多,因为列数不是问题。看了实现方式你就知道了。

  2、思路

    Vue的特点就是——数据驱动视图。数据为主,然后把数据绑定到页面。这个是核心,千万别跑偏了。

    那么我们来分析一下,这个表格由两个部分组成:表头和表体。

    表头:公司名称、电话等。实际项目里肯定还会有很多列。这里先拿两个举例。使用<tr><th>来标示。

    表体:就是公司信息的列表,由多条数据组成,字段数量和表头对应。用<tr><td>来标示。

    那么我们设计一个表头和表体的数据包,然后让Vue一绑定就ok了。

  3、设计与编码

    先设计一个数据包,emmmm,不知道专业的叫法是啥,反正就是弄一个json的结构。比如这样:

var table = new Vue({
        el: ‘#table‘,
        data: {
            message: ‘公司信息!‘,
            orderBy: ["c1", "c2"], //可以控制字段的先后顺序,想调整列的先后顺序,改这个数组就行,可以做个性化设置
            tableTh: {//表头的描述信息
                c1: {
                    title: "公司名称", //还可以增加其他描述,比如width等
                    align: "left"
                },
                c2: {
                    title: "电话",
                    align: "right"
                }
            },
            dataList: [
                {
                    //数据包,字段名作为关键字,便于列的调整先后顺序
                    c1: "度娘2",
                    c2: "123123123"
                },
                {
                    c1: "企鹅2",
                    c2: "7897899787"
                },
                {
                    c1: "阿里爸爸2",
                    c2: "456456456"
                }
            ]
        }
    });

  el 这个是Vue的保留字,必须这么写,后面是dom的ID,比如<div id="table"> 。用jQuery的思路就是 $(‘#table’)。

  data 这个也是Vue的保留字,后面是model,结构可以随意设置,怎么玩就看想象力了。

  当然Vue还有很多保留字,比如方法的等等,不过这里先介绍这两个,其他的以后再说。

  然后在设计一个模板,比如这样:

<div id="table">
    {{ message }}
    <table class="table_default1" >
        <tr>
            <th>序号</th>
            <th v-for="th in tableTh" >
                {{th.title}}
            </th>
        </tr>
        <tr v-for="(tr,index) in dataList">
            <td>{{index+1}}</td>
            <td v-for="td in tr" >
                {{td}}
            </td>
        </tr>
    </table>
</div>

  不知道大家有没有发现一个问题:这里面没有任何和业务相关的东东,那个“序号”不算的话。

  这个模板也很简单,表头用一个循环就出来了,数据包里面有多少列,就可以循环出来多少列,所以我开头说的,多少列不重要,因为循环就对了,管他多少列呢?

  表体用了两个循环(嵌套循环)就出来了。这个用法比较很好理解吧。这个我就不想多解释了,说多了会有一种凑字数的感觉。

  4、效果

  发现我剧透了,上面那个图就是运行效果。数据包设计好,模板设置好,然后交给Vue就可以了,打开浏览器查看网页,就可以看到这个效果。

五、业务分离

  这个模板可以看做是所有列表的通用模板,因为他适合任何一种数据,不管是公司信息列表,还是员工信息,还是产品信息,都可以这样写,而且copy过来之后不用改!因为我把业务相关的统统放到了数据包里面。增加一个列表需求,只需要写数据包即可,不用改模板代码,是不是很方便?

  当然,如果大家都是这么做的,那么就是英雄所见略同。昨天在一个前端群里问了半天,也没有人告诉我,他们的数据列表是怎么做的,结果我到现在也还是不知道在Vue里面大家是怎么做数据列表的。百度了一下,也没发现啥有用的信息。

六、功能拓展个性化设置

  不知道大家有没有遇到这样的情况,接到一个任务,要求做一个数据列表里面有n个字段,这个没啥的嘛,做呗。但是这么多的列哪个在前哪个在后呢?如果文档里明确说明了,那么好办,按照文档里的来呗。如果文档里没有明确说明先后顺序,那么咋办?只能按照自己的习惯来了。

  然后做好之后给用户看,第一个领导看了说,这个电话怎么放这了,不重要放最后好了。

  然后给另一个领导看说,哎,这个电话怎么放最后了,不是和你们说了吗,这个要放前面!

  ???刚才那个领导说,,,,,。

  然后又给操作人员看,操作人说,这个电话放这里不习惯,能不能改一改?

  这里只是举一个简单的例子,客户的需求总是千奇百怪的,调整顺序只是最简单最常见的。

  对于客户来说,不就是改个位置吗,我用Excel天天改顺序,你们这个项目肯定比Excel厉害吧,改个顺序很难吗?

  不难呀,只是别改来改去的,另外我到底听谁的?

  细心的你可能会发现,数据包里面有一个orderBy: ["c1", "c2"]没有用上,这个是干嘛的?

  这个不是给数据排序的,而是给列排序的。这个数组里放的是key,后面两个数据包都是以这些key来组织数据的。那么这个数组里的key的先后顺序就是列的先后顺序。

  所以只需要改这个数组里的key就可以了。然后我们可以为每一个用户都设置一个独立的数组,这样每个用户都可以有自己的列的顺序了,互相不干扰。这样客户都满意了,我们也不用总是调整顺序了。

  最后,模板需要改一下:

<div id="table">
    {{ message }}
    <table class="table_default1" style=" ">
        <tr>
            <th>序号</th>
            <th v-for="key in orderBy" >
                {{tableTh[key].title}}
            </th>
        </tr>
        <tr v-for="(tr,i) in dataList">
            <td>{{i+1}}</td>
            <td v-for="key in orderBy"  v-bind:align="tableTh[key].align">
                {{tr[key]}}
            </td>
        </tr>
    </table>
</div>

  先遍历这个数组,然后用里面的key提取数据在做绑定。这样,我们把调整列的先后顺序的业务需求也给分离出来了,还附带了一个福利——个性化设置

原文地址:https://www.cnblogs.com/jyk/p/11206587.html

时间: 2024-10-14 00:18:42

从后端到前端之Vue(一)写个表格试试水的相关文章

【前端】Vue.js经典开源项目汇总

Vue.js经典开源项目汇总 原文链接:http://www.cnblogs.com/huyong/p/6517949.html Vue是什么? Vue.js(读音 /vju?/, 类似于 view) 是一套构建用户界面的 渐进式框架.与其他重量级框架不同的是,Vue 采用自底向上增量开发的设计.Vue 的核心库只关注视图层,并且非常容易学习,非常容易与其它库或已有项目整合.另一方面,Vue 完全有能力驱动采用单文件组件和 Vue 生态系统支持的库开发的复杂单页应用. Vue.js 的目标是通过

为 Vue 项目写单元测试方法详解

本文和大家分享的主要是为 Vue 项目写单元测试相关内容,一起来看看吧,希望对大家学习Vue.js 有所帮助. 众所周知,Vue.js 是一个非常牛逼的 JavaScript 框架,对于创建复杂功能的前端项目是非常有用的.不管是什么项目,检查应用是否正常工作,运行是否为预期,是尤为重要的.然而,为了保证业务正常运行,我们的项目,每做一次更新,都要对所有功能做一次回归测试,随着项目的增大,重复的测试工作越来越多,越来越乏味,手工测试将变成一个恶心的事情.正因如此,自动化测试诞生了,它可以随时监测我

后端向前端页面发送变量的方法,可以包含特殊字符(如英文双引号)

后端向前端页面发送变量,如果变量没有特殊字符,如英文的双引号等可以直接在前端使用 var value="<%=this.IsHuaMedicineAlertMsg.ToString().ToLower() %>"这种方式输送给前端, 但如果变量有特殊字符,如英文的双引号(一般是一段html片段,可能会包含样式等会有英文双引号),就不能用上面的方法了, 这时就需要后台把这个字符进行序列号再抛给前端来使用,这样也不用在前端再写接收后端变量的代码, 这样可行的原理是因为序列号时会

前端基于VUE的v-charts的曲线显示

目录 前端基于VUE的v-charts的曲线显示 1. 应用背景 2. 分析数据生产者生成 3. 取出数据消费者 4. 前端显示 4.1 安装V-charts插件 4.2 引入veline曲线插件 4.3 曲线标签 ve-line 4.3.1 方法一:直接使用html标签 4.3.2 方法二:pug编译 4.4 前端写入调试模拟数据 4.5 注册组件 5 总体效果 6后端基于Net Core的电能定时计算 前端基于VUE的v-charts的曲线显示 1. 应用背景 在做一个某路灯管理处的物联网项

CENTOS下SS多用户后端MANYUSER+前端SSPANEL搭建过程

一台新的VPS,如何搭建shadowsocks多用户后端+sspanel前端?曾经折腾失败,最近又重新折腾了许久终于成功,把过程记录一下.我的环境是centos6,安装所有组件之前先升级一下VPS环境!SSH登录VPS: yum -y updateorapt-get update -y 一.安装shadowsocks多用户后端shadowsocks-manyuser项目地址:https://github.com/mengskysama/shadowsocks-rm/tree/manyuser1.

新版本的vue在写路由的时候前面不能写 /

新版本的vue在写路由的时候前面不能写   / 错误写法: 正确写法: 原文地址:https://www.cnblogs.com/oklfx/p/8505017.html

前端框架vue.js系列(9):Vue.extend、Vue.component与new Vue

前端框架vue.js系列(9):Vue.extend.Vue.component与new Vue 本文链接:https://blog.csdn.net/zeping891103/article/details/78133622 vue构造.vue组件和vue实例这三个是不同的概念,它们的关系有点类似于Java的继承概念: 关系:vue构造->vue组件->vue实例 也就是说不同的vue组件可以共用同一个vue构造,不同的vue实例可以共用同一个vue组件.在大型项目中,用过java开发的都知

如何在嵌套的app中运用vue去写单页面H5

本文主要介绍移动端.为了避免移动端兼容出现各种奇奇怪怪的bug,所以秉承着能不用复杂的语法就不用,尽量用最基础的语法. 可用惯了各种ES6语法的童鞋们,写原生真是头疼,再加上各种领导催工期,肯定是内心各种烦躁.这里介绍一下,如何在H5中运vue 去写,嵌套到用到app中. 首先引入vue CDN ,记得去扒一个vue.js. 下载下来,不要用htpp,这样可以避免有些模块因为网卡导致,页面加载错乱. <script src="./js/vue.min.js"></sc

web前端利用vue.js实现品牌列表的添加,删除与筛选功能

实现效果图: 实现功能:web前端利用vue.js实现品牌列表的添加,删除与筛选功能 实现代码: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> &l