百科狗-知识改变命运!
--

优先级 C 的规则:推荐 (将选择和认知成本最小化) - vue 风格指南

是丫丫呀12个月前 (11-21)阅读数 13#技术干货
文章标签组件

优先级 C 的规则:推荐 (将选择和认知成本最小化)

组件/实例选项的顺序

组件/实例的选项应该有统一的顺序。这是我们为组件选项推荐的默认顺序。它们被划分为几大类,你能够由此知道新的 property 应该被放到哪里。

  1. 全局感知(要求在组件以外被感知)
    • name
  2. 模板编译选项(改变模板编译的方式)
    • compilerOptions
  3. 模板依赖(模板内使用的资源)
    • components
    • directives
  4. 组合(合并 property 至选项内)
    • extends
    • mixins
    • provide/inject
  5. 接口(组件的接口)
    • inheritAttrs
    • props
    • emits
    • expose
  6. 组合式 API(使用组合式 API 的入口点)
    • setup
  7. 本地状态(本地的响应式 property)
    • data
    • computed
  8. 事件(通过响应式事件触发的回调)
    • watch
    • 生命周期事件(按照它们被调用的顺序)
      • beforeCreate
      • created
      • beforeMount
      • mounted
      • beforeUpdate
      • updated
      • activated
      • deactivated
      • beforeUnmount
      • unmounted
      • errorCaptured
      • renderTracked
      • renderTriggered
  9. 非响应式的 property(不依赖响应性系统的实例 property)
    • methods
  10. 渲染(组件输出的声明式描述)
    • template/render


元素 attribute 的顺序

元素(包括组件)的 attribute 应该有统一的顺序。这是我们为组件选项推荐的默认顺序。它们被划分为几大类,你能够由此知道新添加的自定义 attribute 和指令应该被放到哪里。

  1. 定义(提供组件的选项)
    • is
  2. 列表渲染(创建相同元素的多个变体)
    • v-for
  3. 条件(元素是否渲染/显示)
    • v-if
    • v-else-if
    • v-else
    • v-show
    • v-cloak
  4. 渲染修饰符(改变元素的渲染方式)
    • v-pre
    • v-once
  5. 全局感知(要求在组件以外被感知)
    • id
  6. 唯一性 Attribute(需要唯一值的 attribute)
    • ref
    • key
  7. 双向绑定(结合了绑定与事件)
    • v-model
  8. 其他 Attribute(所有普通的、绑定或未绑定的 attribute)
  9. 事件(组件事件监听器)
    • v-on
  10. 内容(覆写元素的内容)
    • v-html
    • v-text


组件/实例选项中的空行

你可能想在多个 property 之间增加一个空行,特别是在这些选项多到一屏放不下,需要滚动才能看完的时候。当你开始觉得组件密集或难以阅读时,在多个 property 之间添加空行可以使其重新变得易于阅读。在一些诸如 Vim 的编辑器里,被这样格式化后的选项还能通过键盘快速导航。

props: {
  value: {
    type: String,
    required: true
  },

  focused: {
    type: Boolean,
    default: false
  },

  label: String,
  icon: String
},

computed: {
  formattedValue() {
    // ...
  },

  inputClasses() {
    // ...
  }
}

// 在组件仍然能够被轻松阅读与定位时
// 没有空行也挺好

props: {
  value: {
    type: String,
    required: true
  },
  focused: {
    type: Boolean,
    default: false
  },
  label: String,
  icon: String
},
computed: {
  formattedValue() {
    // ...
  },
  inputClasses() {
    // ...
  }
}


单文件组件的顶级元素的顺序

优先级 C 的规则:推荐 (将选择和认知成本最小化) - vue 风格指南

单文件组件应始终保持...

...
/* ... */
...

/* ... */

优先级 C 的规则:推荐 (将选择和认知成本最小化) - vue 风格指南

反面例子

...
/* ... */
...
/* ... */
...

/* ... */
...

/* ... */

鹏仔微信 15129739599 鹏仔QQ344225443 鹏仔前端 pjxi.com 共享博客 sharedbk.com

免责声明:我们致力于保护作者版权,注重分享,当前被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自自研大数据AI进行生成,内容摘自(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供学习参考,不准确地方联系删除处理!邮箱:344225443@qq.com)

图片声明:本站部分配图来自网络。本站只作为美观性配图使用,无任何非法侵犯第三方意图,一切解释权归图片著作权方,本站不承担任何责任。如有恶意碰瓷者,必当奉陪到底严惩不贷!

内容声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。部分内容参考包括:(百度百科,百度知道,头条百科,中国民法典,刑法,牛津词典,新华词典,汉语词典,国家院校,科普平台)等数据,内容仅供参考使用,不准确地方联系删除处理!本站为非盈利性质站点,本着为中国教育事业出一份力,发布内容不收取任何费用也不接任何广告!)