首页

Vue3.0脚手架+typescript+vuex

seo达人

谈一谈vue3.0和2.0的不同及其改变,还有vue3.0脚手架的搭建



步骤:



             先卸载vue2.0的脚手架:npm  uninstall  vue-cli -g,全局卸载



            安装vue3.0的脚手架: npm  install  -g  @vue/cli,全局安装



 



入口:https://blog.csdn.net/jb_7113/article/details/89928402         基础一



           https://blog.csdn.net/jb_7113/article/details/89948215         基础二

————————————————

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

巧用动效解决问题

鹤鹤

Image title

动效在用户界面中的应用是当今引起人们高度关注和争论的话题。虽然有很多人觉得动效是一个不必要的功能,他会使用户界面过载并使其变得更加复杂,但大多数用户都认为动效是交互体验不可或缺的一部分。设计人员和开发人员研究了越来越复杂的方法,使动画看起来令人愉快,并且能够解决现代应用程序和网站的问题。


为什么用户如此热爱动效?大多数情况下,因为动效支持实际和真实交互的本质,它创造了与人们在现实生活中物理对象交互时所具有的感受和感知水平。这种感觉可以提高用户的积极性,因为用户感觉越自然,处理应用程序或网站所需的精力就越少,工作方式也就越清晰。让用户满意,没有任何秘密,满足和愉悦是鼓励人们再次使用该产品的最重要的事情。


就像界面中的所有内容以及与之交互的过程一样,动效必须是一个功能元素,而不仅仅是装饰。在规划围绕数字产品的用户旅程时考虑运动元素,设计师应该在决定将其应用于布局或过渡之前,深入分析其提高产品的可用性,实用性和可取性的潜力。用户界面中的动效需要经过深思熟虑的思考,并且始终需要有一个明确的目标。在交互过程中使用它的优点和实用性必须是显而易见的并且要大于可能存在的缺点。动效应该成为锦上添花,而不是美中不足。


Image title



定义问题


使用动效不仅具有吸引力,也是揭示可能存在问题的最佳方法之一。它可以在设计过程的任何一个阶段进行:


用户调查会让你知道目标用户是谁,他们的年龄,偏好,技术水平,使用产品的环境和条件,以及来自用户方面的许多其他因素会影响用户体验;


营销研究将洞察现有产品的强弱面,形成用户忠诚度的方法,这是界定USP解决特定用户问题的良好依据,也是产品呈现和表现原始方式的良好基础;


UX线框图阶段可以考虑交互,布局和转场的逻辑,并得到可以通过动效增强目的的第一个假设;


原型设计阶段将揭示与屏幕实时交互的新方式;


UI设计阶段将为产品方案和系统提供复杂的视觉展示,为应用程序或网站应用动效提供新的视角;


用户测试将揭示动效元素的方案是否正确,它们的好处是否真的大于可能存在的缺点。


Image title


在每个阶段,如果设计师设定的目标是揭示用户可能遇到的大或小问题,那么动效以及任何其他设计元素都可以扮演问题解决者的角色。


让我们回顾一下可以通过界面动效解决的一些典型问题。



问题:我想知道行动已经完成


这是可以通过在UI中应用动效细节轻松快速解决的问题之一。通过清晰的运动并结合微交互,为用户创建快速反馈,使得导航变得简单直观,同时也变得更加。动效按钮、切换键、切换开关和其他交互元素在几秒钟内通知用户,激活快速视觉感知的所有潜力。


Image title

开关控制动画

Image title

汉堡菜单动画

Image title

汉堡按钮互动

Image title

标签栏交互

Image title

添加按钮交互

Image title

橡胶指示器


问题:我想知道行动正在进行中


当用户与数字产品交互时,他们想知道每一步都发生了什么。让用户等待将会导致用户流失。但是,当用户得到反馈时,等待就不会那么烦人了。所以,这方面应该在设计中着重考虑,通过界面动效来减少等待感有很多种方法。这是“拉动-刷新”发挥作用最大效果的最佳时机。

Image title

拉动刷新

Image title

预载

Image title

拉动刷新

Image title

拉下 - 沙漏

Image title

拉下 - 太空船


问题:我看不到进展,也不明白需要多长时间


通常仅仅让用户知道该过程正在进行是不够的。他们想要的还有很多:看看进展的速度和所需要的时间。此时,界面动效就是一个很好的帮手。加载条和进度条,动效时间轴和其他动态元素等等,都可以一石二鸟:


1、它们能够让用户明确当前进度状态


2、它们可以成为消除互动过程中等待的负面情绪的一种娱乐元素


3、它们可以成为一个病毒性的功能,用户希望与其他人分享,并吸引更多的用户来使用产品

Image title

时间线应用程序的GIF

Image title

动态滚动的GIF


问题:我不想让我的屏幕弄得一团糟


在界面设计中考虑这一点至关重要。如果屏幕或页面的信息看起来乱七八糟,这些信息没有经过明确的梳理编组,那么用户需要付出额外的努力来了解它的工作原理以及可以找到所需信息的位置。


在绝大多数情况下,用户希望拥有能够简化和改善他们生活的应用程序和网站,甚至可能会为他们做一些工作,而不是在交互上花费更多的精力和时间。动效在增强与各种数据模块和部分交互方面是一种很好的方法,即使是在高度数据饱和和复杂的界面中,也能够使所有内容清晰明了。

Image title

Image title

Image title

Image title



问题:我想先看看关键的事情


视觉层次和清晰的导航一直是设计人员创造交互式数字产品的一大关注点。用户应根据其目标和条件,立即关注交互的关键要素。界面中的动效元素为这方面提供了强大的支持力,使布局中重要元素的视觉标记更快、更清晰。

Image title


Image title



问题:我想要感受自然的互动


这是大多数用户无法形容的问题,但对用户体验有着很大的影响。如果用户说“我不确定出了什么问题,但肯定有问题”,试着考虑让动效更加自然。界面中的动效可以创造出令人愉快的错觉,接近与物理对象的自然交互,这通常不需要太多的认知过程。例如,如果拉动物体,按下它,移出标签,动作应该感觉自然。用户无法看到设计师完成这项复杂工作的难度,他们会认为这是理所当然的,而让他们感到舒适的事实,将是对设计解决方案的最大赞誉。

Image title

Image title

Image title


这种问题同样存在与WEB界面中。在滚动网页时,布局元素的平滑移动可以显著增强用户体验,并且创建一个整体流畅交互的感觉,而不是几个单独的页面。总之,这是令人愉快并且有吸引力的,这些情绪是留住用户的一个很好的因素。


Image title

Image title

Image title

Image title



问题:屏幕/页面很无聊


在谈论界面时,人们常常把功能性和可用性作为关键或者有时甚至是唯一需要考虑的因素前置到前面。这是正确的,也是合乎逻辑的,但是不能否定这样一个事实,那就是人们不仅仅受逻辑驱动。情感和审美满意度等因素对用户体验的影响也很大。一方面,实用性和可用性与情感和美学之间的巧妙平衡可以给用户带来友好的产品。动效在界面设计上是一个很好的助推器。它可以勾勒出色彩和渐变的美,将生活气息融入到布局中,使运动充满活力,反之亦然,通过运动和原始过渡增强用户界面元素的力量。

Image title

Image title

Image title

Image title

Image title

因此,毫无疑问,用户界面中的动效在解决各种交互问题方面具有巨大的潜力。尽管如此,即使是添加到UI中的最细微的动作也需要经过深思熟虑的考虑,不仅要分析优点,还分析可能存在的缺点。动效应该帮助用户,这是它在界面中的主要目标。

转自-ui

交互控件科普系列! Sheet 的常见样式和设计注意事项总结

涛涛

还在频繁地使用弹窗对用户展示重要提示吗?明知这样有损体验却没有更好的选择吗?那么不妨来试试干扰度更低,却依然可以用于重要提示的 Sheet 控件吧。

什么是Sheets

Sheets 控件并非弹窗,通常会被熟称为「浮层」或「浮窗」。

该控件在 iOS 和 Android 系统规范中都有相关定义,属于多才多艺的控件,可以用于给予信息提示,也可用于展示更多的拓展信息。

从用于提示的角度来看,Sheets 控件和 Dialogs 控件的相同点和不同点在哪里呢?

1. 共同点

模态化

二者都可以设置模态,当模态控件显示时,页面背景会显示深色遮罩,并立即打断用户当前操作。

承载操作和信息

二者都可以承载丰富的操作和信息,支持嵌入列表、选择器等控件及图片、文本信息。

2. 不同点

触发方式不同

Dialog 可以不通过用户操作而自动触发,Sheet 必须通过用户操作才可以触发显示,因此用户对 Sheet 的显示会更有预期。

关闭方式不同

Dialog 的关闭方式较少,通常会要求用户进行选项操作后才可关闭;Sheet 的关闭方式较多,对于用户而言有更丰富的选择权。

因此综上所述,我们可以发现,Sheet 对比 Dialog 的优势在于,它的显示会更符合用户的预期,它的干扰层度也会低于Dialog(因为更易关闭)。

  • Sheets 在 Google Material design 规范中被分为了 Bottom sheest 和 Side sheets 两类;
  • 在 iOS Human Interface Guidelines 中被分为了 Action sheets 和 Activity views 两类。

下面就由我来依次详解其特性和玩法吧。

Bottom sheets 底部浮窗

专属于 Android 的 Sheets 控件。

1. 使用场景

用于补充内容相关的更多信息(非模态)、提供可交互的菜单或对话(模态)或其它关键功能/任务的拓展。

2. 注意事项
  • Bottom sheet 通常用于 Android 竖屏场景,在 Android 横屏场景建议使用 Side sheet。
  • 在 iOS 中不建议使用 Bottom sheet,建议使用原生的 Action sheets 或 Activity views。
3. 样式类型

菜单样式

可嵌套 Menus,展示多个选项内容。

宫格样式

可使用宫格布局,展示多个选项内容。

迷你样式(非模态)

一个非模态底部浮窗可被设置固定展示在页面底部,用户可以随时用它来对其它功能/任务进行快捷操作,如进入购物车、查看所选图片、查看聊天和查看刚才的视频等。

4. 模态/非模态

非模态浮窗:如左下图所示,非模态浮窗与内容保持在同一层级,用户可同时对内容和浮窗进行操作。

模态浮窗:如右下图所示,模态浮窗层级高于内容,背景深色显示遮罩,用户仅能对浮窗进行操作。

5. 显示与消失

显示

浮窗显示时从底部向上滑入,非模态浮窗显示时不会打断用户操作,模态浮窗显示时会显示深色遮罩以打断用户操作。

消失

浮窗消失时会向底部滑出。

模态浮窗在以下情况下会消失:

  • 用户触发浮窗上的对应操作(自定义);
  • 用户点击浮窗外的区域;
  • 用户下拉浮窗达到收起阈值后(自定义);
  • 用户点击 Android 系统返回键。

非模态浮窗在以下情况下会消失:用户选中浮窗上的对应按钮(自定义)。

6. 支持高度延伸

当浮窗底部仍有未显示的内容时,可设置通过滑动或拖动浮窗来使其变为全屏展示,并在顶部显示 Toolbar 来展示关闭/收起操作。

7. 支持深层链接

模态浮窗中可以展示其它应用的深层链接内容或操作,譬如调用 Google 翻译。

8. 范例

抖音的评论功能使用的是模态 Bottom sheet;百度地图的路线切换功能使用的是非模态 Bottom sheet。

Side sheets 侧边浮窗

专属于 Android 的 Sheets 控件。

1. 使用场景

用于补充内容相关的更多信息(非模态)或提供可交互的列表信息(模态)。

2. 注意事项
  • Bottom sheet 通常用于 Android 竖屏场景,在 Android 横屏场景建议使用 Side sheet。
  • 在 iOS 中不建议使用 Bottom sheet,建议使用原生的 Action sheet 或 Activity views。
3. 样式类型

菜单样式:可嵌套 Menus,展示多个选项内容。

宫格样式:可使用宫格布局,展示多个选项内容。

4. 模态/非模态

如左下图所示,非模态浮窗与内容保持在同一层级,用户可同时对内容和浮窗进行操作(在移动端较少使用,通常用于 PC 端)。

如右下图所示,模态浮窗层级高于内容,背景深色显示遮罩,用户仅能对浮窗进行操作。

5. 显示与消失

显示

浮窗显示时从左/右边缘滑入,非模态浮窗显示时不会打断用户操作,模态浮窗显示时会显示深色遮罩以打断用户操作。

消失

浮窗消失时会向左/右边缘滑出。

模态浮窗在以下情况下会消失:

  • 用户触发浮窗上的对应操作(自定义);
  • 用户点击浮窗外的区域;
  • 用户侧拉浮窗达到收起阈值后(自定义);
  • 用户点击 Android 系统返回键。

非模态浮窗在以下情况下会消失:用户选中浮窗上的对应按钮(自定义)。

6. 滑动说明

支持上下滑动,不支持左右滑动。

7. 范例

淘宝的筛选功能使用的是 Side sheet。

Action sheets 操作浮窗

专属于 iOS 的 Sheets 控件。

1. 使用场景

用于呈现一组与当前操作相关的选项,如启动某个任务,或者确认是否开始执行某个可能具有破坏性的操作。

2. 注意事项

在 Android 中不建议使用 Action sheet,建议使用原生的 Bottom sheet 或 Simple dialog。

3. 样式类型

如下所示,支持单个或多个操作的展示,以及说明文案的展示:

4. 显示与消失

显示

浮窗显示时从底部向上滑入,会显示深色遮罩以打断用户操作。

消失

浮窗消失时会向底部滑出。会在以下情况消失:

  • 用户触发浮窗上的对应操作(自定义);
  • 用户点击浮窗外的区域;
  • 用户点击浮窗「取消」按钮。
5. 显示位置

竖屏时显示在页面底部,横屏是居中显示在页面底部。

6. 范例

微信的选择朋友圈发布类型及清除聊天记录的二次确认,都是使用的 Action sheet。

Activity views 活动浮窗

专属于 iOS 的 Sheets 控件。

1. 使用场景

用于呈现一组与当前操作相关的选项表,如复制、收藏或分享。

2. 注意事项

在 Android 中不建议使用 Activity views,建议使用原生的 Bottom sheet。

3. 样式类型

列表样式

宫格样式

混合样式

4. 显示与消失

显示

浮窗显示时从底部向上滑入,会显示深色遮罩以打断用户操作。

消失

浮窗消失时会向底部滑出。会在以下情况消失:

  • 用户触发浮窗上的对应操作(自定义);
  • 用户点击浮窗外的区域;
  • 用户下拉浮窗达到收起阈值后(自定义)。
5. 显示位置

竖屏时显示在页面底部,横屏是居中显示在页面底部。

6. 支持高度延伸

当面板底部仍有未显示的内容时,可设置通过滑动或拖动面板来使其高度进行延伸,从而展示更多信息。

7. 范例

爱奇艺的分享功能和泡泡圈选择发布内容类型,都使用的是 Activity view。

用法总结

建议针对非系统级或业务级的重要提示,使用 Sheets 控件进行提示;Dialogs 控件仅用于最重要的信息提示才算是「好钢用在了刀刃上」。

另外在调用原生 Sheets 组件时,记得分端的差异性。

文章来源:优设网

Vue 3.0 前瞻,体验 Vue Function API

seo达人

概述

Vue 2.x 及以前的高阶组件的组织形式或多或少都会面临一些问题,特别是在需要处理重复逻辑的项目中,一旦开发者组织项目结构组织得不好,组件代码极有可能被人诟病为“胶水代码”。而在 Vue 2.x 及之前的版本,解决此类问题的办法大致是下面的方案:



mixin

函数式组件

slots

笔者维护的项目也需要处理大量复用逻辑,在这之前,笔者一直尝试使用mixin的方式来实现组件的复用。有些问题也一直会对开发者和维护者造成困惑,如一个组件同时mixin多个组件,很难分清对应的属性或方法写在哪个mixin里。其次,mixin的命名空间冲突也可能造成问题。难以保证不同的mixin不用到同一个属性名。为此,官方团队提出函数式写法的意见征求稿,也就是RFC:Function-based component API。使用函数式的写法,可以做到更灵活地复用组件,开发者在组织高阶组件时,不必在组件组织上考虑复用,可以更好地把精力集中在功能本身的开发上。



注:本文只是笔者使用vue-function-api提前体验 Vue Function API ,而这个 API 只是 Vue 3.0 的 RFC,而并非与最终 Vue 3.x API 一致。发布后可能有不一致的地方。



在 Vue 2.x 中使用

要想提前在Vue 2.x中体验 Vue Function API ,需要引入vue-function-api,基本引入方式如下:



import Vue from 'vue';

import { plugin as VueFunctionApiPlugin } from 'vue-function-api';

 

Vue.use(VueFunctionApiPlugin);

基本组件示例

先来看一个基本的例子:



<template>

    <div>

        <span>count is {{ count }}</span>

        <span>plusOne is {{ plusOne }}</span>

        <button @click="increment">count++</button>

    </div>

</template>

 

<script>

import Vue from 'vue';

import { value, computed, watch, onMounted } from 'vue-function-api';

 

export default {

    setup(props, context) {

        // reactive state

        const count = value(0);

        // computed state

        const plusOne = computed(() => count.value + 1);

        // method

        const increment = () => {

            count.value++;

        };

        // watch

        watch(

            () => count.value 2,

            val => {

                console.log(`count
2 is ${val});<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }<br /> &nbsp; &nbsp; &nbsp; &nbsp; );<br /> &nbsp; &nbsp; &nbsp; &nbsp; // lifecycle<br /> &nbsp; &nbsp; &nbsp; &nbsp; onMounted(() =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log(mounted);<br /> &nbsp; &nbsp; &nbsp; &nbsp; });<br /> &nbsp; &nbsp; &nbsp; &nbsp; // expose bindings on render context<br /> &nbsp; &nbsp; &nbsp; &nbsp; return {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count,<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; plusOne,<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; increment,<br /> &nbsp; &nbsp; &nbsp; &nbsp; };<br /> &nbsp; &nbsp; },<br /> };<br /> &lt;/script&gt;<br /> 详解<br /> setup<br /> setup函数是Vue Function API 构建的函数式写法的主逻辑,当组件被创建时,就会被调用,函数接受两个参数,分别是父级组件传入的props和当前组件的上下文context。看下面这个例子,可以知道在context中可以获取到下列属性值<br /> <br /> const MyComponent = {<br /> &nbsp; &nbsp; props: {<br /> &nbsp; &nbsp; &nbsp; &nbsp; name: String<br /> &nbsp; &nbsp; },<br /> &nbsp; &nbsp; setup(props, context) {<br /> &nbsp; &nbsp; &nbsp; &nbsp; console.log(props.name);<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.attrs<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.slots<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.refs<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.emit<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.parent<br /> &nbsp; &nbsp; &nbsp; &nbsp; // context.root<br /> &nbsp; &nbsp; }<br /> }<br /> value &amp; state<br /> value函数创建一个包装对象,它包含一个响应式属性value:<br /> <br /> <br /> <br /> 那么为何要使用value呢,因为在JavaScript中,基本类型并没有引用,为了保证属性是响应式的,只能借助包装对象来实现,这样做的好处是组件状态会以引用的方式保存下来,从而可以被在setup中调用的不同的模块的函数以参数的形式传递,既能复用逻辑,又能方便地实现响应式。<br /> <br /> 直接获取包装对象的值必须使用.value,但是,如果包装对象作为另一个响应式对象的属性,Vue内部会通过proxy来自动展开包装对象。同时,在模板渲染的上下文中,也会被自动展开。<br /> <br /> import { state, value } from 'vue-function-api';<br /> const MyComponent = {<br /> &nbsp; &nbsp; setup() {<br /> &nbsp; &nbsp; &nbsp; &nbsp; const count = value(0);<br /> &nbsp; &nbsp; &nbsp; &nbsp; const obj = state({<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count,<br /> &nbsp; &nbsp; &nbsp; &nbsp; });<br /> &nbsp; &nbsp; &nbsp; &nbsp; console.log(obj.count) // 作为另一个响应式对象的属性,会被自动展开<br /> &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; obj.count++ // 作为另一个响应式对象的属性,会被自动展开<br /> &nbsp; &nbsp; &nbsp; &nbsp; count.value++ // 直接获取响应式对象,必须使用.value<br /> &nbsp;<br /> &nbsp; &nbsp; &nbsp; &nbsp; return {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; count,<br /> &nbsp; &nbsp; &nbsp; &nbsp; };<br /> &nbsp; &nbsp; },<br /> &nbsp; &nbsp; template:<button @click="count++">{{ count }}</button>,<br /> };<br /> 如果某一个状态不需要在不同函数中被响应式修改,可以通过state创建响应式对象,这个state创建的响应式对象并不是包装对象,不需要使用.value来取值。<br /> <br /> watch &amp; computed<br /> watch和computed的基本概念与 Vue 2.x 的watch和computed一致,watch可以用于追踪状态变化来执行一些后续操作,computed用于计算属性,用于依赖属性发生变化进行重新计算。<br /> <br /> computed返回一个只读的包装对象,和普通包装对象一样可以被setup函数返回,这样就可以在模板上下文中使用computed属性。可以接受两个参数,第一个参数返回当前的计算属性值,当传递第二个参数时,computed是可写的。<br /> <br /> import { value, computed } from 'vue-function-api';<br /> &nbsp;<br /> const count = value(0);<br /> const countPlusOne = computed(() =&gt; count.value + 1);<br /> &nbsp;<br /> console.log(countPlusOne.value); // 1<br /> &nbsp;<br /> count.value++;<br /> console.log(countPlusOne.value); // 2<br /> &nbsp;<br /> // 可写的计算属性值<br /> const writableComputed = computed(<br /> &nbsp; &nbsp; // read<br /> &nbsp; &nbsp; () =&gt; count.value + 1,<br /> &nbsp; &nbsp; // write<br /> &nbsp; &nbsp; val =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; count.value = val - 1;<br /> &nbsp; &nbsp; },<br /> );<br /> watch第一个参数和computed类似,返回被监听的包装对象属性值,不过另外需要传递两个参数:第二个参数是回调函数,当数据源发生变化时触发回调函数,第三个参数是options。其默认行为与 Vue 2.x 有所不同:<br /> <br /> lazy:是否会在组件创建时就调用一次回调函数,与 Vue 2.x 相反,lazy默认是false,默认会在组件创建时调用一次。<br /> deep:与 Vue 2.x 的 deep 一致<br /> flush:有三个可选值,分别为 'post'(在渲染后,即nextTick后才调用回调函数),'pre'(在渲染前,即nextTick前调用回调函数),'sync'(同步触发)。默认值为'post'。<br /> // double 是一个计算包装对象<br /> const double = computed(() =&gt; count.value * 2);<br /> &nbsp;<br /> watch(double, value =&gt; {<br /> &nbsp; &nbsp; console.log('double the count is: ', value);<br /> }); // -&gt; double the count is: 0<br /> &nbsp;<br /> count.value++; // -&gt; double the count is: 2<br /> 当watch多个被包装对象属性时,参数均可以通过数组的方式进行传递,同时,与 Vue 2.x 的vm.$watch一样,watch返回取消监听的函数:<br /> <br /> const stop = watch(<br /> &nbsp; &nbsp; [valueA, () =&gt; valueB.value],<br /> &nbsp; &nbsp; ([a, b], [prevA, prevB]) =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; console.log(a is: ${a});<br /> &nbsp; &nbsp; &nbsp; &nbsp; console.log(b is: ${b});<br /> &nbsp; &nbsp; }<br /> );<br /> &nbsp;<br /> stop();<br /> 注意:在RFC:Function-based component API初稿中,有提到effect-cleanup,是用于清理一些特殊情况的副作用的,目前已经在提案中被取消了。<br /> <br /> 生命周期<br /> 所有现有的生命周期都有对应的钩子函数,通过onXXX的形式创建,但有一点不同的是,destoryed钩子函数需要使用unmounted代替:<br /> <br /> import { onMounted, onUpdated, onUnmounted } from 'vue-function-api';<br /> &nbsp;<br /> const MyComponent = {<br /> &nbsp; &nbsp; setup() {<br /> &nbsp; &nbsp; &nbsp; &nbsp; onMounted(() =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('mounted!');<br /> &nbsp; &nbsp; &nbsp; &nbsp; });<br /> &nbsp; &nbsp; &nbsp; &nbsp; onUpdated(() =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('updated!');<br /> &nbsp; &nbsp; &nbsp; &nbsp; });<br /> &nbsp; &nbsp; &nbsp; &nbsp; // destroyed 调整为 unmounted<br /> &nbsp; &nbsp; &nbsp; &nbsp; onUnmounted(() =&gt; {<br /> &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; console.log('unmounted!');<br /> &nbsp; &nbsp; &nbsp; &nbsp; });<br /> &nbsp; &nbsp; },<br /> };<br /> 一些思考<br /> 上面的详解部分,主要抽取的是 Vue Function API 的常见部分,并非RFC:Function-based component API的全部,例如其中的依赖注入,TypeScript类型推导等优势,在这里,由于篇幅有限,想要了解更多的朋友,可以点开RFC:Function-based component API查看。个人也在Function-based component API讨论区看到了更多地一些意见:<br /> <br /> 由于底层设计,在setup取不到组件实例this的问题,这个问题在笔者尝试体验时也遇到了,期待正式发布的 Vue 3.x 能够改进这个问题。<br /> <br /> 对于基本类型的值必须使用包装对象的问题:在 RFC 讨论区,为了同时保证TypeScript类型推导、复用性和保留Vue的数据监听,包装属性必须使用.value来取值是讨论最激烈的<br /> <br /> 关于包装对象value和state方法命名不清晰可能导致开发者误导等问题,已经在Amendment proposal to Function-based Component API这个提议中展开了讨论:<br /> <br /> setup() {<br /> &nbsp; &nbsp; const state = reactive({<br /> &nbsp; &nbsp; &nbsp; &nbsp; count: 0,<br /> &nbsp; &nbsp; });<br /> &nbsp;<br /> &nbsp; &nbsp; const double = computed(() =&gt; state.count * 2);<br /> &nbsp;<br /> &nbsp; &nbsp; function increment() {<br /> &nbsp; &nbsp; &nbsp; &nbsp; state.count++;<br /> &nbsp; &nbsp; }<br /> &nbsp;<br /> &nbsp; &nbsp; return {<br /> &nbsp; &nbsp; &nbsp; &nbsp; ...toBindings(state), // retains reactivity on mutations made tostate`

        double,

        increment,

    };

}

 



引入reactive API 和 binding API,其中reactive API 类似于 state API , binding API 类似于 value API。

之前使用的方法名state在 Vue 2.x 中可能被用作组件状态对象,导致变量命名空间的冲突问题,团队认为将state API 更名为 reactive 更为优雅。开发者能够写出const state = ... ,然后通过state.xxxx这种方式来获取组件状态,这样也相对而言自然一些。

value方法用于封装基本类型时,确实会出现不够优雅的.value的情况,开发者可能会在直接对包装对象取值时忘记使用.value,修正方案提出的 reactive API,其含义是创建响应式对象,初始化状态state就使用reactive创建,可保留每项属性的getter和setter,这么做既满足类型推导,也可以保留响应式引用,从而可在不同模块中共享状态值的引用。

但reactive可能导致下面的问题,需要引入binding API。 解决,如使用reactive创建的响应式对象,对其使用拓展运算符...时,则会丢失对象的getter和setter,提供toBindings方法能够保留状态的响应式。

当然,目前 Vue Function API 还处在讨论阶段,Vue 3.0 还处在开发阶段,还是期待下半年 Vue 3.0 的初版问世吧,希望能给我们带来更多的惊喜。


如何在Google Play商店中使你的应用获得推荐

鹤鹤

在Play商店中获取Android应用程序可能看起来是一项具有挑战性的任务。请遵循以下策略,以最大限度地提高应用获得推荐的机会。

在Play商店中获取Android应用程序可能看起来是一项具有挑战性的任务。请遵循以下策略,以最大限度地提高应用获得推荐的机会。


如果您希望自己的应用成功,那么在Google Play商店中展示就是重要的一步。


但是,目前 Google Play Store 中有超过250万个应用程序和超过1,300个应用程序加入列表,大多数用户注意到的应用程序竞争越来越激烈。


在谷歌Play商店的Android应用总数exeeds 250万为2018年11月,按照AppBrain。



即使您排除了低质量的应用程序,仍然有超过220万个应用程序可供竞争,以便在Play商店中展示您的应用程序。


但是,有一些方法可以帮助您的应用获得推荐。

Google Play商店提供了众多候选名单,包括编辑选择 / 员工精选 / 精选等令人垂涎的广告 ,可以策划应用并吸引用户注意力。


如果你的应用在其中一个列表中,就可以在全球范围内提供更多下载、更多用户和更多粉丝。


虽然Google没有为应用程序设置特定标准,但仍有一些策略可用于增加应用程序在Google Play Store中展示的机会。



为什么Google会列出精选应用?


Google发布精选应用列表主要有两个原因:增加可发现性和识别出色的工作。


首先,Google Play的列表可以帮助用户轻松发现优秀的应用。随着Play商店中数百万个应用程序的推出,用户很难确定哪个应用程序能够最好地满足他们的要求。


通过在特色列表中添加应用程序,Google向用户保证其可提供可用性,功能和安全性。


其次,Google Play的列表表彰了开发人员的出色工作。


对于Android开发人员而言,没有什么比看着他或她的工作在数百万其他应用程序中迷失更令人沮丧的了。特色列表和类别支持为Google Play商店提供优质且实用的Android应用的开发者。


特色应用列表对Android用户和开发人员同样有用。



为何在Google Play商店中要出现重要推荐?


除了获得自豪感并提高应用程序的在线声誉外,在Play商店中推荐您的应用程序还有很多好处。


其中一些好处包括:

  • 增强应用可视性

  • 更多的应用下载量

  • 增加收入

  • 高品质,敬业的用户

  • 更轻松的应用推广


例如,根据SensorTower,接收编辑选择徽章可以将应用下载量从4倍增加到高达24,000倍。

上图显示了接收编辑选择徽章如何直接影响应用程序下载的次数。


有这么多潜在的好处,值得为您的应用提供最佳机会,以便在Google Play商店中展示。



Google Play商店有3个关键列表


Google Play发布了3个主要应用列表:热门,新手和策划。这些列表中的每一个还包含几个子类别。


“热门”名单包括 4 个分类:

  • 热门免费:历史上的免费应用程序

  • 热门付费:有史以来的付费应用

  • Top Grossing:推动收入最高的应用和游戏

  • 趋势应用:过去24小时内安装率较高的应用


“新建”列表中包括 2 个分类:

  • 热门新免费:自发布之日起不到30天的的免费应用程序

  • 热门新付费:自发布之日起不到30天的的付费应用程序


谷歌团队精心整理中包括 4 个名单:

  • 特色:新推出的应用程序

  • 员工精选:经常更新的员工选择的应用列表

  • 编辑推荐:最佳Android应用的所有时间

  • 顶尖开发:将最好的应用程序开发人员留在Play商店


有这么多的列表,有很多机会优化您的应用程序,以增加其中一个推荐的机会。



11种方式让您的应用程序在Google Play商店中推出


您应该采取11个关键步骤来提高应用在Google Play商店中展示的机会:


  1. 分析其他精选应用

  2. 改善用户界面(UI)和用户体验(UX)

  3. 优化功能和效率

  4. 针对Android进行优化

  5. 利用Google技术

  6. 专注于应用商店优化

  7. 本地化您的应用

  8. 推广您的应用

  9. 与有影响力的人合作

  10. 收集评分和评论

  11. 更新您的应用



      1. 分析其他特色应用


在Google Play商店列表中展示的第一步是研究已经推出的应用。


在Play商店做一些研究,选择一些带有Editors'Pick和Top Developer等标签的应用程序,并将它们安装在您自己的Android手机上。


然后,分析应用程序,注意它们的共同特征。特别是,检查应用程序的设计,功能以及使其在类别中的类似应用程序中脱颖而出的所有内容。您将发现相似之处并更好地了解它们在Play商店中的特色。


最后,将这些应用程序中的内容实施到您自己的应用程序中,以提高您的应用程序获得Google Play商店推介的机会。


      2. 使您应用程序的UI与UX达到一个最出色的状态


如果你深入分析一些有史以来最好的Android应用程序,你会发现它们都有一个共同点:无缝的用户界面和出色的用户体验。


成功的应用程序专注于维护高质量的用户界面,并在所有移动设备和平板电脑设备上提供独特互动且一致的体验。


据Google称,所有Android应用都应在其用户界面中实施Material Design指南。如果您未能实施这些指南,请不要有将您的应用程序选为编辑推荐的想法。


实际上,遵循Google设定的Material Design标准是在Play商店中推出应用程序的首要前提条件。


      3. 优化应用程序的功能和效率


无论您的Android应用程序设计有多么出色,如果它无法满足Google设置的功能和用户交互质量标准,它将永远不会进入编辑选择列表中。


在将最终的.APK文件上传到Google Play商店之前,请确保您已针对Android应用商品质量指南进行了测试。这些指南为开发人员提供了改善整体用户体验的最佳实践。他们还提供了一个应用程序有资格获得Play商店特色部分所需的线索。


遵循这些准则,特别是核心应用程序质量指南,将帮助您优化新构建的Android应用程序的功能和效率,确保您提供尽可能最佳的用户体验。


      4. 让你的Android应用程序更加友好


要在Play商店编辑眼中使用Android应用,您必须尽可能使其与Android兼容。


如果您的应用最初是为iOS开发的,请确保:


  • 关注Google的启动核对表

  • 支持高分辨率显示器

  • 包含默认的Android按钮

  • 适用于各种类型的设备,包括平板电脑

  • 支持和即将推出的Android版本

  • 是一个量身定制的Native应用程序,仅适用于Android(或至少适用于Android)

  • 文件大小限制在100MB以下


        5.  利用的Google技术

每年,Google都会在其年度I / O开发者大会上为开发人员介绍一些产品和技术。 


Google奖励使用其技术构建的应用,例如Firebase,Flutter和Google上的Action。 


如果您成为这些技术的早期采用者,您的应用程序在Play商店中获得推荐的机会肯定会有所改善。 

        6.注意App Store优化


大多数人都熟悉搜索引擎优化(SEO),其中涉及针对搜索引擎结果优化网站。 
同样,应用商店优化(ASO)是指优化移动应用以在Google Play商店和Apple App Store等应用商店中排名更高的流程。 


要提高Play商店中移动应用的可见性,请注意以下因素: 


  • 图标:确保您的应用图标足够引人注目以吸引用户的注意力。 
  • 标题:使用相关的关键字词组优化您的应用标题。 
  • 描述:保持您的应用程序的描述简短,甜美,简单。确保它清楚地告诉用户您的应用是什么以及他们应该使用的原因。 
  • 关键词:具有高搜索量和低竞争力的目标关键词。 
  • 屏幕截图:上传您应用的一些高质量屏幕截图,如果可能,创建并上传15-30秒的视频,以便用户更熟悉您应用的功能。 


例如,免费的照片编辑应用程序 Pixlr 上传了几个高分辨率的描述性截图,以清楚地向用户显示应用程序的内容。该应用程序的发布者甚至添加了一个1分钟的介绍性视频,以进一步向用户显示他们可以使用该应用程序做些什么。 



正如您在上面的图片中看到的,Pixlr有效地使用字幕清楚地告诉用户应用程序的功能和用处。 

        7. 将您的应用程序本地化


全球有超过20亿活跃的Android用户,以尽可能多的语言提供您的应用程序,在Play商店中推出您的应用程序也起着至关重要的作用。 


将您的应用本地化为多种语言始终是明智的决定,可以帮助您提高应用在Google Play商店中展示的机会。 


当您尝试让全球各地的用户都能访问您的Android应用时,请务必查看Google自己提供的本地化检查清单。 

        8. 有效的推广您的应用程序

除了优化Google Play商店的应用外,还应尽可能在各种社交网络和技术平台上宣传您的应用。 


投入时间和精力进行推广不仅可以帮助您获得更多的应用下载,还可以提高您的应用在网络上的可信度。吸引用户更有可能引起Google Play商店的注意,他们可能会将其列入推荐列表中。 


要宣传您的移动应用,您应该: 


  • 为应用创建有效的目标网页 
  • 使用AdWords宣传您的应用 
  • 在Facebook和Twitter等社交媒体平台上推广您的应用 
  • 在Android Authority和Android Central等受信任的技术出版物上发布您的应用评论 
  • 发布新闻稿以获得具有高域权限的媒体的媒体报道 


这些促销活动将为您的应用提供最佳成功机会。 

        9. 与影响者建立关系
与行业中的影响者保持健康、持久的关系也是让您的应用在Play商店中展示的关键。 
Android开发人员应通过以下方式与影响者建立关系: 
  • 通过LinkedIn与Google Play商店经理和编辑联系 
  • 与您的区域移动解决方案领先联系 
  • 联系已经有特色的开发人员和团队 
培养强大的专业网络可以提高您在拥挤行业中的知名度。 

      10.保持您的高评级和高评价 

用户体验和用户满意度始终是Google的首要任务。在确定是否推荐应用时,Google Play商店编辑团队会考虑这些相同的因素。 


如果您彻底分析Play商店,您会发现超过50%的精选应用的评分为4.5或更高。 



因此,如果您真的想要推荐自己的应用,请确保它至少有50,000次下载和4.5级评分。

要获得大量下载并提高应用评级,您应该: 
  • 提供出色的用户体验 
  • 让您的应用程序免费获取 
  • 尽可能多地营销你的应用程序 
  • 激励用户审核您的应用 
  • 激励用户进行推荐 
  • 投资高质量,引人入胜的内容 
  • 利用influencer和社区外展 
  • 在社交媒体上主持赠品 
  • 在电子邮件签名中为您的应用添加墨迹 
遵循这些提示可以吸引用户,生成评论,并最终提高您的应用登陆特色列表的机会。 

      11.保持您的应用程序不断更新 

Google和用户都喜欢经常更新的应用。 
这并不意味着您每天都需要为应用添加全新功能。相反,您应该跟踪用户面临的应用程序问题,并通过定期更新提供解决方案。 
不要忘记在圣诞节,感恩节和新年等特殊场合更新您的申请。这是您的应用得到关注的最佳时机,因为Play商店的编辑可能会在特殊场合策划季节性应用列表。 


应用开发者应努力成为Google Play商店的精选内容 
通过遵循这些最佳做法,您可以增加在Google Play商店的精选部分中确保信誉良好的推荐机会。 

最重要的是,Android应该优先提供无缝的用户体验,引人入胜的用户界面和引人注目的营销,以在Google Play上取得成功。


转自-站酷


蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

设计师的角度分析产品改版-高德地图_10.0.3

鹤鹤

前言


Hello~各位酷友,之前高德地图做了一次蛮大的改版,于是这周我就抽空给大家带来这个系列的第二篇改版分析。还没有看过第一篇的也欢迎去看看。废话不多说,直接进入正题。还是一样,阅读时长大约15分钟,泡杯咖啡,进入专注状态就往下吧。



一、改版概述


对比版本号:9.1.0(旧)→  10.0.3(新)

测试机型:iPhone7

高德这次更新距离上一次已经有一个多月的时间了,版本号也有了一个大的跨越,给我一种憋大招的感觉。以下,我会从这四个方面进行说明:

(1)首页框架

(2)背板内容

(3)常用出行方式选择

(4)发现页


跟之前一样,还是主要说明有改动的部分,以框架层和视觉层为主要切入点,带一小部分产品功能上的分析。



二、首页框架


这次改版用到了一个新的控件,底部上拉式背板(不知道这个控件有没有更正式的名称,暂且这么叫它),有的设计师朋友可能在一些概念性作品里见过类似的控件,这次高德使用它说明了这个控件是落地的。

这个控件之所以受欢迎有以下原因:

首先,它的操作符合我们的手势操作规律及拟物原则,交互方式一目了然。平时没事就这样滑上滑下都是一个爽点。

其次,它可以设计出不同高度的固定状态,如下图就有三种。这样能地节省页面空间,承载大量的隐形内容,同时区分不同内容的优先级。


另外,这次改版还加入了常见的底部标签栏,配合背板,对首页的内容框架布局进行了一个规整,具体我们看一看下面这张图:


(1)红色:原来顶部的搜索栏调整到了默认状态的底部背板上。搜索栏放在底部的方式在目前还是比较大胆的设计,但对于地图应用而言却非常适合。首先搜索栏肯定是整个应用交互最频繁的控件,放在底部很大程度上提高了用户点击的便捷性,特别对于单手握持的用户。


(2)紫色:原来底部的附近按钮改成了便签栏的第二个标签。即发现页。这个改变节省了大量的页面空间,旧版做成底部通栏按钮层级确实过高了,同时天气温度的标识也比较鸡肋。


(3)黄色:原来最难点击的图标按钮改成了现在最易点击的“我的”标签,提高了这个入口的辨识度。


(4)绿色:旧版首页分散的悬浮按钮统一到了右边,同时样式都改成了圆形的底板。略微降低了路线按钮的层级。这里有一个层级区分的设计小细节,下方常用的定位与路线按钮会比上方消息与地图类别按钮大10pt。


(5)灰色:原来右边的一些悬浮小工具按钮及快捷地址设置按钮都从首页去除,移动到了底部背板的隐形内容里。这样一来地图的显示区域也随之增加了,被移走的按钮会在后文提到。


小结:总体而言,首页的这次大改,主要是把交互区域都调整到屏幕的右下方。我猜测目的应该是考虑到了很多用户使用地图应用时是单手握持,处于边走边看的状态,增加用户的交互效率。另外,标签栏的使用也增加了入口的辨识度。在视觉感受上,新版首页会比旧版更简洁、清晰,同时具有结构性。


三、背板内容


接下来要说的就是背板上的内容,首先我们还是从内容布局上分析一下。


(1)搜索栏,在前面已经提到过


(2)工具箱,工具箱在这次改版中也是一个主要的更新点。在旧版中,工具箱的层级是很弱的,在我的页面里的二屏才能找到。这次移动到主页的背板中,显然也是提高了它的触达率。


同时,原工具箱中的工具较少。在新版中,工具箱中加入了很多的新功能,我数了数,新版比旧版多了16个功能。排列上使用了归类式的图片列表。在这里也有一个设计上的小细节,顶部我的工具的图标样式与下方的图标样式是有区分的,顶部图标统一加上了圆形彩色底托进行反白,突出了顶部图标的层级。具体参看下图:


另外,工具箱调整到首页以及加入的很多新功能会跟下面要讲的另一点更新有关。


(3)常用地点

即旧版的地点悬浮图标改成了现在的列表式按钮


(4)新手引导教程

点进去就是引导页,通过动效插画的形式向用户说明了本次更新的几大要点。


小结:如同上文所说,背板的使用是本次更新的主要承载区,综合考虑了手势交互、内容布局、内容优先级等因素,非常值得我们进行学习与参考。


 四、常用出行方式选择


在更新后首次打开应用时,有一段引导动画,主要告诉用户选择常用的出行方式,分别是公交与驾车。因为动画较长无法上传,有兴趣的朋友可以自己去看看,引导动画也是近期比较火的一种设计方式。

而选择不同的出行方式后,地图样式与工具箱的默认推荐工具也会有区别。

可以看到,选择公交后,地图里会主要突出公交站的图标,并弱化其它图标,让用户明确的知道哪里有公交站。


小结:让用户选择常用出行方式充分考虑了用户的出行场景,让用户主动选择出行方式进行用户划分,并据此提供更精准的服务内容。可以看出,在相对成熟的产品中,功能上的创新是一部分,但是能将已有的内容更贴切地服务于用户也能创造出很大的价值,并且能让产品更具备竞争力。


五、发现页


周边推荐时地图应用最能收获价值的内容板块,在这次更新中,发现页面不仅是入口做了调整,二级页面里的内容也有一定改变。两版的顶部区域内容是一样的,都是一个搜索框加宫格式分类入口。区别在于下方的瀑布流内容帖子。旧版使用了两个分段控件进行了更详细的分类,但新版做了减法,把所有的选择器都去掉了,同时也去掉了商户评分以及营业时间信息,仅保留了距离位置信息。另外使用了卡片区分不同商户内容。


小结:简化页面的好处在于有效地提高了浏览效率。而且仔细思考一下就会发现旧版的两个分段选择控件确实略显多余。顶部的宫格式分类入口就足以满足用户的搜索需求,做过多的分类反而会让用户困扰。但我个人认为评分信息还是可以保留的,毕竟是推荐内容,能给用户提供很大的参考价值。


六、总结


以上就是高德地图本次更新的主要内容。在这次更新中,我认为最值得我们学习的就是它整个改版逻辑是非常清晰的。从用户场景出发,考虑到用户的操作手势以及内容优先级,具体落实到了页面的布局。大家也可以从页面布局再反向思考到它的改版目的。多重复几遍就能更清晰地理解这次改版的核心。

转自-站酷

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

福格行为模型:让用户行动起来

鹤鹤

你还在做个单纯的画图仔吗?



  • A设计师接到需求,第一时间打开花瓣,不管三七二十一就是画图,沉浸在自我世界里无法自拔,后面和需求方一对接,发现完全没有理解需求方的意思,陷入无止境的改稿。

  • B设计师接到需求,先看看竞品截图下来拖到ps/sketch里面,抄抄这块抄抄那块,拼凑在一起,感觉很完美!然后交给产品就好交差了。

上面2种情况,B设计师会比A设计师好一点,但这样久而久之,完全处于被动的状态,失去了思考的能力,一边偷着懒一边抱怨着设计没有话语权;时间久了工作2-4年还是个碌碌无为的却有着“经验+”设计师,看着别的朋友已经在别的行业赚的盆满钵满,摸着自己头发开始怀疑人生,纠结自己是不是不适合设计,是不是该换行了,或者有的只是为了满足温饱的工资坚持着重复的工作。


  • 但其实想说如果不停留在表面的设计,你会发现设计真的很好玩,很有趣,涉及很宽很广,虽然自己现在也懂得很少,但每多看一个知识点,每多思考一些,觉得自己无比的充实!!!

  • 本文主要是围绕BJ fogg行为模型对用户行为的一些思考,运用到实际的工作中,让你的设计更加有理有据,更有说服力!!建议阅读10-15分钟~



生活中的行为问题


为什么很多人看到商场打折就会忍不住剁手?为什么那么多人痴迷于抖音?为什么女生很喜欢追泡沫剧?为什么很多人很喜欢发朋友圈?为什么到情人节买花的一大堆?....


再例如工作中:用户期望借助你的产品实现怎样的目的?用户为什么会购买你的的产品?用户基于什么理由去关注你的产品内容?用户为什么看了你的界面就没有下文了?用户是基于什么会再次回到你的产品?

这个模型可以很好的解释人所发生每一个行为,行为=动机+能力+触点


BJ Fogg’s behavior model


  • 这个模型是以耶鲁大学教师 Fogg2009 年发表的一篇论文为中心,总结了如何从设计上提高转化率,其关键是Motivation-Ability-Trigger(动机-能力-触发),三要素缺一不可;

  • 任何一个行为的发生,都需要满足以上三个要素——人们需要有产生行为的动机、要有发生行为的能力,以及正好有一个合适的触发点


  • 也就是说你如果想要用户发生某种行为,你必须给到用户足够的动机,并且让用户有能力去做到,而且有一种能触发用户行动的触发器来提醒


  • 根据这个原理马上可以解释:为什么很多人看到商场打折就会忍不住剁手?首先这个人有购物需要的动机,并且具备支付购物的能力,看到商城打折感觉很便宜这是触发点,最终触发人购物的行为。



已知:行为=动机+能力+触发;所以想要用户发生行为就要从这3个方面去入手


01、动机


  • 我们常说洞察用户需求,挖掘用户痛点,其实就是在寻找用户动机!


  • 做一件事的动机是什么呢?

    • 满足这几点:愉悦感(Pleasure)、期待(Hope)、归属感(Acceptance)

    • A不断买口红,因为不同口红可以最短时间能让自己瞬间变得美美哒,看着美美的自己忍不住的开心愉悦,还会期待新上架的口红色号,收集满满的口红让A很有归属感。

    • B不停刷抖音,生活无趣艰难,看着各种有趣好玩的视频就能获取快乐,上下一滑乐趣无限,期待别人更新更好玩有趣的视频,自己也可以发视频获得别人的赞和喜欢。

    • C经常看偶像剧,生活中平坦无趣,看着超甜欧巴满足自己所有的浪漫幻想,期待幻想自己也能成为剧中的女主角,沉迷其中,或者是觉得剧中人设是自己向往的期待,努力所要变成的样子。


  • 说到动机一定还要了解美国著名社会心理学家亚伯拉罕·马斯洛提出来马斯洛需求层次(Maslow's Hierarchy of Needs);总共有5个层次,每一层都有相对应不同的需求,且只要某一层次的需要相对满足了,就会向高一层次发展,追求更高一层次的需要就成为驱使行为的动力。相应的,获得基本满足的需要就不再是一股激励力量

  • 现在经济的发展普遍人都满足了基本的需求,开始有更高层次的需求;所以更需要上面3层成长性需求:情感和归属的需要、尊重的需要、自我实现的需要;

  • 挖掘用户的动机也就先了解目标用户人群的不同阶段需要,寻找其内在动机和外在动机,以下是在用户体验中应用,提升用户黏度的案例:

  • A:例如你是腾讯的VIP会员,你就可以比别人更早看到你心心念每天追【小欢喜】;——满足了用户觉得自己别人更有优越感,享受到更尊贵的服务

  • B:例如你的设计作品上了站酷首推,受到大家的一致点赞好评,你会更有动力监督自己发作品和学习;——让用户充满信心,获得平台的认可倍感成就

  • C:例如你在扇贝里背单词坚持了100天,在朋友圈晒打卡记录炫耀,塑造自己渴望成为的群体的对象;——满足用户成为自己渴望坚持不懈认真学习的人

02、能力


  • 有足够的动机之后,还必须要用户有能力来完成

  • 能力指人本身的能力(例如设计师很熟练使用ps、sketch、ae;年轻人普遍比老人更会用智能机器...);但有些能力不够的(例如老人、小孩、能力障碍者,以及有需求的新手)这个时候就需要降低门槛或者提高用户能力,因为是人性的弱点就是懒呀,就算有这个能力但是动机没那么强就不会引发行为了

  • a 降低门槛

  • 降低门槛也是降低用户成本(时间、金钱、精力...),让用户发生行为变得很容易;因为这个用户成本越低,越能引发用户行为时间,体力、脑力支出,社会舆论以及生活习惯...

  • 例如刷抖音,只需要上下滑动,双击屏幕即可点赞,沉浸式体验不干扰用户,可以让用户最简单的操作就可以获得无限的乐趣

  • 例如微信朋友圈点赞,总会存在一些用户没有东西发朋友圈,只想着看看朋友圈,随手点个赞,还会很有参与感

  • 例如常说的用户体验的三个要素:『不要让我等,不要让我烦,不要让我思考』。其本质就是降低用户成本,让用户发生行为变得很容易

  • 举个反面例子,拨打10086的人越来越少了,太麻烦了,记得以前拨打10086听一大堆废话按0才能人工服务,充个值还要跑营业厅


  • b 提高用户能力

  • 想要提高用户的能力,那就得有利益相关了

  • 例如:淘宝商家后台一开始是很不好用的,但是还是有很多商家入驻,为什么?因为要赚钱要赚钱呀!

  • 再例如:ps很容易学会吗?至少没有美图秀秀容易,但是设计师就不用学ps了吗?不会,设计师都会ps,当然也可以用sketch替代ps,但是设计师就要去学不同的设计技能软件



03、触发


  • 有动机并且有能力,触发才能有价值,用户的行为=动机+能力+触发;根据不同动机和不同能力来说用户的触发点也会不一样

  • 人们的行为并不完全是自己主动选择的,而是在社会情境和个人因素的双重作用下产生的。

  • 不同动机不同能力的用户需要不一样的刺激

  • 场景刺激:适合高动机的人

  • 高动机能力的人只需一个促发点即可。低门槛吸引力高的活动,我们只需要将参与的按钮做的醒目再醒目。例如很多活动会把按钮做的很有点击的欲望

  • 高动机能力则需要引导,例如APP大改版时,产品的新手引导;例如游戏刚注册都会有逐步学习阶段,都是从简单到难;


  • 利益刺激:适合低动机、高能力的人

  • 这种用户需要更多的事件来激发他们做某件事的动机;例如我本来没想点外卖的,朋友分享了一个饿了么红包给我,我点击领取了红包,心想这红包不能浪费呀,最终还是点个外卖,“红包”链接就是触发器,让我最终点了外卖。


  • 场景+利益刺激:适合低动机、高能力的人

  • 对于利益刺激没那么直接没那么诱惑的时候,可以场景和利益一起更强烈的刺激,例如饿了么的超级会员充值促销活动给人的感官意识是:充会员可以加送无门槛红包给你,超级划算超级便宜快来买我呀!



根据BJ fogg行为模型用户分类


  • 工作中根据用户不同的动机和能力可以分为4大类,并且制定不同的体验设计策略


  • 1.有动机有能力用户

  • 这类用户简直是真爱,不需要怎么管的,一些核心种子用户也是从这里产生的,一些新的功能可以让他们来测试。这类用户可以没那么需要关注,不需要太有个性的需求,适当提升其体验就行。


  • 2.有能力没动机用户

  • 这类用户需要激发动机,结合马斯洛需求层次找出用户不同阶段的需求,改变他的意识;内在动机是比较难挖掘发现的,如果感兴趣可以移步心理学类的书籍;外在动机送奖励,例如饿了么会有每天满20元送奖励金,分享出去有红包领取,每日签到送红包;还有滴滴打车初期送补贴。


  • 3.有动机没能力

  • 降低门槛,提高能力,同时要帮助和鼓励。这块就很需要建立用户心理模型,优化用户体验,精简用户操作步骤;例如微信男女老少都会用的产品。


  • 4.没动机,没能力

  • 这类用户可以直接放弃,投入产出比太低,需要降维,使其能力降到匹配意愿的层级。比如典型的微信朋友圈,总有那么些人不发朋友圈,不聊天,写评论也不知道写啥,但是他有夸奖别人的意愿,给他点个赞功能就行。






a、要有足够的动机。——即你的产品能满足用户什么层次的需求

b、要让用户有能力完成。——即你的产品是否能让目标用户觉得好用、还想用

c、恰如其好的外部触发。——即你的产品是否在用户刚好需要的时候出现并刺激到用户感官

这三步每一步都是息息相关的,设计师不但需要设计出刺激用户感官的场景界面,更需要设计出契合用户心智一用就会的产品,更需要明白了解目标用户不同层次的需求


为什么要强调设计师有更多思考,主要也是觉得互联网更新特别快,UI设计师从曾经炙手可热的职位,变成很多设计师难就业,很多公司却招不到人的状态;因为更新太快以至于大家都会处于不断焦虑迷茫的状态。于是要求更多技术傍身,UI设计师要会插画要会交互要会用研要会动效要会C4D...很多人觉得插画热赶紧去学插画,动效热门赶紧去学动效...但是好像缺少了什么??


在【破茧成蝶2】里面我看到更好的答案

里面说到互联网下半场的新角色:产品设计师。提出思维是1,技能是0,意思是对于产品设计师来说思维是最重要的,而其他的技能要素是1后面的无数个0,随着经验累计0会越来越多,你的个人价值也越来越大,但是如果没有前面那个1后面再多0也于事无补。

转自-站酷

蓝蓝设计www.lanlanwork.com )是一家专注而深入的界面设计公司,为期望卓越的国内外企业提供卓越的UI界面设计、BS界面设计  cs界面设计  ipad界面设计  包装设计  图标定制  用户体验 、交互设计、 网站建设 平面设计服务

iOS 13 隐秘的细节②:原生APP的细节变化·上

鹤鹤

拆解iOS 13原生APP的细节变化,及其“影响”。

undefined


0.前言

在上一篇《iOS 13全局组件》中,主要讲述了新版系统中的分段控件、Switch、Sheet弹窗、Context Menu等组件的细化及影响。

从这篇开始,开始讲述iOS 13原生APP的设计细节,以及对设计师的影响。


开始前,依旧先明确下文中用到的机型和系统版本:

设备1:iPhone 7,iOS 12.4

设备2:iPhone X,iOS 12.2

设备3:iPhone 6S,iOS 13 Developer beta 6


-


下面开始原生APP的相关内容:




2.1 计时器

iPhone的计时器是个特别好用的功能。

日常生活中,类似“小睡一会”、“蒸煮东西”、“女友敷面膜”这些场景都能用到计时器。过去4年,我平均每天使用8次以上计时器。


虽然iPhone的计时器已经非常好用,但在某些场景下,尚有不足:

比如,设置一个80分钟的计时,中途看时间,虽然屏幕上显示还剩28分钟。但却无法直观掌握计时的进度(百分比)。有时睡迷糊了,忘了最初设置的总时长,导致不清楚睡了多长时间...

在iOS 13新版计时器中,Apple做了一些调整,很好的解决了上述问题:


变化1:新增圆形的进度条,如下图:

进度条可以方便用户掌握计时进度。


变化2:新增“到点”的时间(几点几分)

用户不用自己换算,就能知道计时结束的具体时间是几点几分。


变化3:铃声入口位置下移:

一般而言,用户在使用计时器时,通常的操作是:第一步:选择时长、第二步:点击开始。

并不会出现调整铃声这步操作,可以说,过去铃声放在中间的布局就很鸡肋。要么碍事、要么被忽略...

PS:过去四年,我从未察觉到有设置铃声的功能。囧

前端学习与工作中常用网站推荐

seo达人

一.视频学习网站

1.慕课网(我的最爱,里面有很多免费的视频)



2.腾讯课堂 



。。。



当然还有很多其他的视频学习网站,但我觉得就这两个就够质够量了。



二.前端免费模板下载

1.html5tricks



有很多有趣的小程序



2.源码之家 



各类模板灰常之多,不过也有很多广告



3.代码家园



整个网站看起来舒服,广告很少



4.模板之家



广告较多



5.魔客吧



有些要money



6.站长之家



。。。



模板网站就推荐这些吧,差不多够用了。当然,我们下载这些模板的目的不是为了抄袭,而是为了参考学习。(手动滑稽:) )



三.图片图标logo素材

1.标志在线



免费设计logo



2.阿里巴巴矢量图标



图标特别多,而且基本上都是免费的



3.iconmonstr



免费图标下载



4.懒人图库



素材很多,不知道要不要钱



5.loading.io



看名字就知道是下什么的了吧



6.preloaders



进度条下载,有些要钱还是dollar,不过也有很多免费的



。。。



好吧,就这些。



四.其他

1.JS格式化



如果你的编辑器不支持格式化js代码的话可以试试



2.css代码兼容



css代码复制上去,自动会帮你生成兼容的css代码,是不是很厉害!不过兼容IE几我也不太清楚,你们自己去看看吧



3.配色



这是给你网站配色的,有兴趣的可以了解下



4.html、css、js压缩,js多文件合并



es6代码需先转es5再压缩,当然,也可以使用fis3构建压缩html,css,js;fis3还可以将图片转成webp格式(ios有兼容问题)



5.图片压缩



基本上是无损压缩,效果很不错



6.图片转换



转webp格式图片



7.雪碧图 (似乎访问不了了)



选中雪碧图中的图片,自动生成css代码。如:background: url('imgs/example.png') no-repeat -433px -51px;width: 33px;height: 33px;



8.html在线编辑工具



可以在线运行html代码



9.rgb,rgba,十六进制等颜色相互转换



10.HTML特殊字符编码对照表



11.改图宝



修改图片尺寸,生成二维码,生成印章,图片加水印...



。。。



 



最后,再推荐一些比较好的书



《css世界》、《ES6标准入门》阮一峰、《JavaScript权威指南》、《JavaScript高级程序设计》(红皮书)、《你不知道的JavaScript 上中下册》

————————————————


关于Costco,你可能不知道的10件事儿

涛涛

8月27日,中国大陆第一家Costco在上海开业,因为人满为患,上午开业,下午就被迫暂停营业了……

Costco开业的第二天,为了保证购物体验,Costco开始实行了限流政策,将卖场人数控制在2000人以内……

上海市民们依旧热情未减,有人早上4点半就去Costco门口排队了,大多数人6点半就到了,因为限流,来晚就进不去了……

27日晚上,我发了一条朋友圈,附了一张在Costco照的,抱着一大包狗粮的照片:

大家都问我是怎么挤进去的。

其实这不是在上海的Costco,而是在美国的Costco。

今年1月,我带队去美国游学,专门去参访了Costco公司的总部。

Costco的高管Jay B.Smith负责接待了我们,他给我们分享了很多Costco的经营细节,都是不为外界所知的。

同时,他告诉我们Costco很快就会在中国上海开业了,我们也代表中国消费者采访了他许多问题,特别有收获。

所以,今天,我想把这些“关于Costco,你可能不知道的事情”整理出来,独家分享给你。

01 会员制,并不是Costco成功的关键原因

Costco最早开始推行会员制的时候,其实遭遇了巨大的失败。

人们当时是不接受,也不理解会员制度的,没有多少人来办会员,Costco差点就死掉了。

那Costco是如何起死回生的呢?

它做了一个关键的改变:给高级会员2%的消费返点,每年的返点额度最高可以达到500美元。

高级会员每年的年费是120美元,一个家庭每个月只要在Costco消费500美元,一年下来,这120美元的会员费就可以返点回来了。

而如果你每个月消费500美元以上,你甚至还可以赚到额外的钱。

对于一个中产大家庭来说,平时需要购买食品、日用品、衣服等生活用品,偶尔还需要购买电子产品或者其它大件,每个月500美元的消费也不算太高。

加上Costco的商品物美价廉,本身就比别的渠道有价格优势,只要每个月消费500美元以上,省了会员费不说,还可以获得额外的返点,何乐而不为呢?

就这样,Costco迅速获得了第一批会员。

这些会员办了卡之后,既买到了物美价廉的商品,又拿到了额外的返点,同时还享受到了Costco把顾客宠上天的服务。

因此第二年的续费率高达96%,Costco也越做越成功。

02 Costco最不愿意做的事情就是扩张

Costco每年在全球范围内只扩张25家门店,相对来说,扩张速度算是比较慢的。

因为Costco最不愿意做的事情就是扩张。

为什么啊?

Jay B.Smith告诉我们:扩张,是最好的让客户失望的方法。

扩张太快,非常容易带来用户体验的下降,这是我们最不愿意看到的事情。

因此,对于扩张这件事,Costco一直是非常谨慎的。

03 25%自营商品+75%品牌商品

Costco的商品中,有25%是自有品牌的商品(比如它著名的自有健康品牌科克兰Kirkland Signature),剩下的75%是其他品牌的商品。

为什么这么分配呢?

因为它要用25%的自营品牌,来倒逼其他75%的品牌降价。

Costco有经营自己品牌的能力,因此它就有底气跟大品牌说:“你要是不降价,那我就用自己的品牌做了。”

这就导致了大品牌愿意降价来给Costco供货,Costco也因此能给用户提供比别的渠道便宜得多的商品。

一开始,很多大品牌是不愿意和Costco合作的,因为它们其他的零售店要保留高利润。

但是当Costco越做越大,越来越多的大品牌愿意来costco了,比如劳力士,比如爱马仕。

04 Costco一开始其实是面向中小企业的

很多人觉得Costco就像是沃尔玛旗下的山姆会员店;但其实,Costco一开始更像麦德龙。

Costco最初本来是打算做中小企业生意的,大包装仓储商品直接卖给企业,而不是卖给个人消费者。

但是因为覆盖面太小,Costco差点死掉。

之后Costco才转型,决定面向个人消费者。

05 Costco为什么非常重视肉类商品?

Costco为什么非常重视肉类商品?

因为肉类商品是非常有粘性的。

Jay B.Smith告诉我们:消费者非常喜欢Costco的肉类,肉类商品会吸引消费者一而再、再而三地来Costco购买。

不像可口可乐、薯片这种标准化商品,肉是非常差异化的商品,你在不同地方买到的肉,质量肯定是不一样的。

你只要把肉类这种差异化的商品做到极好,就会积累消费者的信任,增加消费者的粘性。

所以,Costco非常重视肉类商品的质量。

06 Costco为什么可以把东西卖这么便宜?

很多人都觉得,Costco可以把东西卖这么便宜,是因为它靠会员费赚钱。

但是靠会员费赚钱,只能说Costco有把东西卖便宜的动力。

那它把东西卖便宜的能力从何而来呢?

第一点,是因为它的包装很大。包装越大,就能卖得越便宜。

第二点,是因为它的品类很少。

沃尔玛有13万SKU(品种),而Costco只有4000个。

因为品类少,单个品类的销量就可以做到极高,Costco就拥有了很强的与供应商议价的能力。

第三点,是因为它很多商品是自营,可以自己控价。

比如,Costco有自己的养鸡厂,它砍掉了所有中间环节,最终一只能够喂饱全家的烤鸡,只卖4.99美元。

一只烤鸡4.99美元,35人民币,这在美国是极其便宜的。很多用户因为买到这么便宜又量大,味道还不错的烤鸡,简直幸福感爆棚。

07 Costco目前是全美最大的红酒厂商

还有一点你可能不知道,Costco目前是全美最大的红酒厂商。

因为Costco卖出的红酒量实在太大。

但是它并不卖很多种类,它只卖几款最畅销的红酒。

08 Costco其实还做金融生意

在美国,对很多人来说,Costco的会员卡同时也是银行卡。

Costco和Citibank(花旗银行)合作,发行了一种联名卡。

既可以作为Costco的会员卡,也可以当做信用卡使用,在Costco消费可以享受2%的返现。

这也就意味着,Costco其实同时也在做金融生意,帮助信用卡的发行方来发行信用卡,同时来分享信用卡的刷卡收益,这可能也是Costco一个非常重要的收入来源。

在中国,平安银行也和Costco发行了一种联名信用卡,会员费可以减100元,同时在Costco消费可以获得最高1%的返现,白金卡每年最高返现1440元。

09 Costco的周转率极高

像Costco这种零售企业,想要赚钱的一个特别重要的方法,就是提高周转率。

Costco的周转率非常高,是11.8,接近12。

什么意思?

Costco用一笔钱进货之后,一个月之内就能把货物卖出去。

这也就意味着,同一笔钱,Costco一年可以周转12次。

我们来算一笔简单的账。

假如一个货物放在一个普通超市,三个月才卖出去,那么用来进货的这笔钱,一年只能周转4次。

很多人都知道,Costco的利润率最高不超过14%。我们假设它的利润率是10%。

那么1块钱的进货款,在普通超市,一年周转4次,就只能赚4毛钱。

而Costco一年周转12次,就能赚1块2。

所以,周转速度越快,零售企业的利润就越大。

在Costco有一句名言,叫做,降低成本最好的办法,就是提高销售。

什么意思呢?

如果想要降低成本,就要提高每天的出货量,这样周转率就会非常高;周转率变得非常高,资金成本就会变得非常便宜。

所以,真正的成本,是资金成本。如果你理解了这件事儿,你就会理解到底什么是Costco。

10 Costco在中国会做电商吗?

Jay B.Smith告诉我们Costco马上就要在中国开店了。

我们当时问他:Costco会打算在中国做电商吗?

Jay B.Smith很谦虚地回答说:电商其实是我们一直不擅长的事,美国有一些企业做得特别好,比如亚马逊,我们要向它学习。

但是,我们还是希望专注于做自己擅长的事。Costco所擅长的,是在线下做供应链管理。

所以,Costco知道自己所长,也知道自己所短。

目前来看,就算Costco在中国要做电商,它也会把主要的精力放在线下,把线下的服务做到。

最后的话

最后,附上Jay B.Smith给我们分享的一组数据(截至2019年1月):

  1. Costco在全球共有736家门店,其中:美国516家,加拿大94家,墨西哥36家,英国28家,日本25家,韩国13家,中国台湾地区13家,澳大利亚8家,西班牙2家,冰岛1家;
  2. 拥有9270万持卡会员;
  3. 年营业额:1310亿美元;
  4. 会员续费率:90%;
  5. 全球拥有24万名员工 。

Costco是全球第二大零售商,第一是沃尔玛。

它是把零售效率做到的典型案例,是每一个零售企业学习的标杆。

参访完Costco,我自己是非常震撼的。它能够获得今天的成功,很大程度上,要归功于它死磕自己、为用户谋利的精神,以及它强大的供应链管理能力。

在中国,也有很多向Costco学习的企业,比如小米,比如拼多多。

最后,依然祝福Costco,希望它能够在中国,越走越远。

文章来源:人人都是产品经理

日历

链接

个人资料

蓝蓝设计的小编 http://www.lanlanwork.com

存档