本文转载自微信公众号《神光的编程秘籍》,作者神说必有光。转载本文请联系神光编程秘籍公众号。交互流是前端应用或产品的核心。不会随着前端技术的发展而改变,也是公司多个团队的交集。可能你不明白我这句话的意思,我们慢慢理解吧。什么是交互网页,把信息展示给用户,然后监听一些元素上的事件,用户通过一些行为触发这些事件,然后网页展示更多的信息,这样的过程就是交互。多个交互串联起来形成一个交互流,通过不同的交互流完成前端应用的功能。比如打开百度首页,会显示一个搜索框,点击搜索框,输入内容时会出现一些搜索提示,回车后网页上会出现搜索结果。这是搜索功能的交互流程。前端技术在变,但前端应用的交互流程没有变。交互是前端开发中不变的事情。在jquery时代,我们会通过ajax从服务器获取数据,然后通过模板引擎渲染成dom,从而在网页上向用户展示相应的信息,并为一些元素绑定事件。用户通过一些动作触发这些事件,然后网页修改dom以显示更多信息,也可能异步从服务器获取数据,然后渲染到dom中。在mvvm时代,data和dom是分离的。我们只需要通过template或者jsx等DSL描述dom和data的绑定关系,然后只关心data。前端框架从服务器获取数据,会自动渲染相应的dom,向用户显示相应的信息,并绑定一些事件。然后用户通过行为触发这些事件,网页会改变数据来改变视图,或者通过异步过程从服务器获取数据,然后自动更新视图。可以看出,mvvm所做的是将data和dom分离,提高了开发效率和代码可维护性,但是前端应用的交互流程并没有改变。前端技术在发展,变化的是开发模式,不变的是交互过程。既然交互是前端应用的核心,那什么是好的交互呢?良好的互动是多个团队合作的结果。我选择做前端的原因之一是前端可以做很多特效。相信很多朋友我也是这么想的。但是工作之后,我发现并不是这样的。我们制作的页面可能非常简洁。我在百度搜索呆了一段时间。当时我在维护百度PC首页和搜索页面。那里有非常厉害的设计师,但我整天不得不和他们争论的是数字应该是13像素,文字应该是12像素。不是很高。为什么?因为产品交互设计的主要目的是促进产品核心逻辑的实现。就像信息流产品一样,核心目的是让用户持续阅读更多的信息,花更多的时间在上面。在交互方面,需要无限加载自动滚动,字体、布局等要让用户看起来更舒服,推荐的内容应该是用户喜欢的。就像电商产品,其核心目的是让用户下单,所以需要以图片、文字、视频、直播等多种形式展示产品,购买按钮要足够大并醒目引导用户下单。而后续推荐的产品也应该是用户感兴趣的。可见整个交互流程的设计要符合产品的核心功能,也是多个团队合作的结果:产品团队负责整体布局的设计和交互过程中,UI团队负责风格,算法团队负责内容的个性,开发团队负责实现,运营团队负责内容的维护和更新,增长团队是负责分析各个环节的流量转化率,进而不断优化交互流程。整个公司的所有团队都围绕着产品的核心逻辑,也就是围绕着交互流程,而不仅仅是前端。互动就是对话。当你和销售人员交谈时,你会问他有什么产品,然后他会告诉你他有什么。如果你对某个产品感兴趣,他会给你详细的介绍。当你有购买意向时,它就会下单。销售客户对话的主要目的是为了方便下单,就像电子商务网站交互设计的目的是让用户下单一样。事实上,它不仅仅是一个网站。写文章也是一个交互设计的过程。当你表达一些内容的时候,读者会有一些想法,然后你按照他的想法表达一些内容,慢慢引导读者去理解你想表达的观点。这也是一个交互流程。因此,产品的交互设计就像是与用户的对话,引导用户一步步达到产品的核心目的。前端是实现这种交互流程的重要环节。我们前端开发的页面是做产品服务的,核心是实现这个交互流程。整个交互流程完成后,产品就可以使用了。在此基础上,我们可以优化体验,提高整个交互流程的流畅度,甚至可以做出一些交互小惊喜。这是前端应用的核心,也是产品的核心。综上所述,网页向用户展示一些信息,监听事件。用户通过行为触发这些事件,然后网页显示更多信息。这是一种互动。多个交互组成的交互流是产品的核心逻辑。前端应用主要就是实现这个交互流程。无论是jquery时代还是mvvm时代,虽然开发模式在变,但是前端应用的核心没有变。交互流程也是多个团队合作的结果。产品团队、设计团队、算法团队、开发团队、运营团队等,都围绕着这些交互流程展开,以达到产品的目的,优化体验。通过了解交互流程,可以更好的理清前端应用的功能、产品逻辑,以及公司的业务逻辑和团队分工。
