我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Vue业务实例分析

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Vue业务实例分析

这篇“Vue业务实例分析”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Vue业务实例分析”文章吧。

写业务,对于一个前端而言,应该是再正常不过的事了,业务对标着需求,前端 er 们根据产品的需求以及设计师的设计稿开发出相应的 web 应用,无论是一个简单的页面或是一套复杂的系统,或多或少掺杂着业务逻辑。然而,我们有时候写的业务逻辑到底是为了去写业务逻辑而写的吗,作为一个常年与业务抗战的骚 nian,我认为我们写的业务不光光是为了在排期内完成简单的任务,而是要打磨自己写业务的能力,并学会根据实际场景去设计一套灵活的,可维护,易理解的业务代码。

那以上所说的 “实际场景” 到底指的是什么场景呢,答案并不唯一,往往自己实践中碰到的难题都可以是一种场景,我们要学会理解这些场景。当然,场景不光归结于产品的 prd,而且往往还跟后端的提供的数据结构着密切的关联,夸张点的比喻就是,好比产品需要一道集色香味俱全的菜,前端就像是一个厨师,但手头的厨具,以及品种不够多的食材,但就是要烹饪一道好菜,其实就是个手艺活。废话不多说了,直接上菜谱:

场景一

步骤框:第一步 -> 第二步 -> 第三步

这是一个常见的例子,这是一套流程,我们要做的就是串通整个流程直到结束。这种例子以表单为常见,除了顺序执行,还可提供上一步按钮,供用户返回上一步重新填写。

使用Vue来设计:

父组件可以是个自定义的 dialog 组件,装着每个流程的页面

<v-dialog>

    <step1></step1>

    <step2></step2>

    <step3></step3>

</v-dialog>

这是一套标准的教科书式写法,哈哈哈,其实我也不介意使用 Vue 的内置 Component:

<template>

    <v-dialog>

        <keep-alive>

            <component :is="conf.component" v-bind="conf.props"

                v-on="conf.listeners">

            </component>

        </keep-alive>

    </v-dialog>

</template>

<script>

    import stepOne from './step-one'

    import stepTwo from './step-two'

    import stepThree from './step-three'

    const MAP = {

        0: stepOne,

        1: stepTwo,

        2: stepThree

    }

    export default {

        data () {

            return {

                active: 0 // 0代表第一个页面的索引

            }

        },

        computed: {

            conf () {

                return {

                    component: MAP[this.active],

                    props: { ... },

                    listeners: { ... }

                }

            }

        }            

    }

</script>

乍一看页面没有很特别的地方,往往问题会从两个方向去发展:横向扩展和纵向扩展。

具体点说,如果这个时候产品又要往后再加一个步骤页面呢,但从开发的角度来讲,我们不能仅仅要考虑产品会这一个步骤,可能会加N个步骤(往复杂点想),当然产品如果这么玩的,这个页面的交互还是挺差的。

当然多页面的方式,还是更倾向于使用Vue的内置 component。

说玩设计,再来说说接口。这种表单设计,无非就是两种操作,新增和编辑。理想情况下,编辑状态时,前端是希望每个页面的数据独立获取,这里暂且不提每个页面之间的依赖关系,但现实往往是后端会把这几个页面的所有数据塞入一个对象中从接口返回。这无非是增加了前端处理的复杂度。

对于这种场景,前端的常规操作有:

这是最常规的处理方式,但如果每个页面都需要传递不同的 props,那父组件会变得非常臃肿。

这个时候我们再从纵向的角度考虑下:

纵向的问题增加了 Event Emits 和 Pass Props 操作的复杂度,对于我们日常维护会有很大的困扰。这个时候或许有些人会提议使用 Vuex,Vuex 确实能够方便我们管理状态,并且每个组件里都能获取到这个状态,只要通过简单的 mapState 即刻获取。但 Vuex 的使用也要根据实际场景,如果仅仅是2个页面的话,使用 Vuex 有的时候恰恰加大了工作量,这很矛盾,我们又要用最简单的方式处理,又要考虑到扩展要不要使用 Vuex,这个时候我还是建议大家多考虑清楚,或者和产品就页面设计的走向了解一个大概。

横向问题和纵向问题只是个简单的开始,现在场景要更复杂一点了,页面之间会有依赖。

具体点,就是页面一表单的数据更改会影响到页面二的数据展示,页面二的数据更改会影响到页面三的数据展示。

其实我们也有更好的处理方式,我们需要一个 Controller。

class Manage {

    constructor () {

        this.step1 = null

        this.step2 = null

        this.step3 = null

    }

    add (step, instance) {

        this[step] = instance

    }

}

export default new Manage()

页面级:

import manage from './Manage.js'

export default {

    name: 'Step1'

    ...

    ...

    ...

    created () {

        manage.add('step1', this)

    }

}

import manage from './Manage.js'

export default {

    name: 'Step2'

    ...

    ...

    ...

    created () {

        manage.add('step2', this)

    }

}

这样组件之间的数据共享,可以通过 controller 去处理,获得每个组件的实例并且直接获取数据。

另外,我们还能够向 controller 对象注入一个 store。

const store = new Vue({

    data () {

        return { ... }

    }

})

class Manage {

    constructor () {

        this.store = store

    }

}

这样组件之间又可以共享一些数据。

写业务之前首先还得多和产品撕下逼,了解产品到底想作甚,刚需,再来考虑交互实现方式,这里不得重新提下软文我只是想在页面上加个链接。写之前还是得多从宏观上去构建一下,而不是只着眼于细节,毕竟这样也能减少大家重构代码的概率。

以上就是关于“Vue业务实例分析”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网行业资讯频道。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Vue业务实例分析

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

vue实例分析

本篇内容介绍了“vue实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!  Vue (读音 /vjuː/,类似于 View) 是一套用于
2023-06-22

Vue使用技巧实例分析

这篇文章主要介绍“Vue使用技巧实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue使用技巧实例分析”文章能帮助大家解决问题。1、将一个 prop 限制在一个类型的列表中我们在使用 prop
2023-06-29

Vue新手入门实例分析

本篇内容介绍了“Vue新手入门实例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1. Vue实例和模板语法
2023-06-27

Vue生命周期实例分析

这篇文章主要介绍“Vue生命周期实例分析”,在日常操作中,相信很多人在Vue生命周期实例分析问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Vue生命周期实例分析”的疑惑有所帮助!接下来,请跟着小编一起来学习吧
2023-07-02

Flask Vue前后端分离实例分析

这篇文章主要讲解了“Flask Vue前后端分离实例分析”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Flask Vue前后端分离实例分析”吧!vue官网:开源的 Javascript 框架
2023-07-02

vue封装组件js实例分析

本文小编为大家详细介绍“vue封装组件js实例分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“vue封装组件js实例分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。什么是组件化:组件化就是将一个页面拆分成一
2023-06-30

vue中的created使用实例分析

这篇文章主要介绍“vue中的created使用实例分析”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“vue中的created使用实例分析”文章能帮助大家解决问题。在vue中,created钩子函数会
2023-06-29

Vue-Router使用实例代码分析

本文小编为大家详细介绍“Vue-Router使用实例代码分析”,内容详细,步骤清晰,细节处理妥当,希望这篇“Vue-Router使用实例代码分析”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。Vue-Router的
2023-07-04

Vue Chart.js 和 Vue:赋能数据分析,引领业务洞察

Vue Chart.js 和 Vue 是两个强大的库,可以为您的应用程序创建很棒的数据图。它们易于使用并且可以轻松定制,使它们成为数据可视化的理想选择。
Vue Chart.js 和 Vue:赋能数据分析,引领业务洞察
2024-02-03

编程热搜

目录