【发布时间】:2019-05-25 05:40:25
【问题描述】:
Vue 组件有没有系统的结构?计算、方法、组件、挂载的手表等应该按什么顺序编写?
【问题讨论】:
标签: vue.js vuejs2 vue-component
Vue 组件有没有系统的结构?计算、方法、组件、挂载的手表等应该按什么顺序编写?
【问题讨论】:
标签: vue.js vuejs2 vue-component
更新
对于component,我更喜欢将script 标签放在html 标签之前。作为我们主要用来玩js 的想法,所以我觉得总是在页面中向下移动。否则根据您的喜好进行布局
根据 Vue 官方风格指南 -
组件/实例选项的顺序应该一致。
这是我们推荐的组件选项的默认顺序。它们被分为几类,因此您会知道从插件中添加新属性的位置。
副作用(在组件外触发效果)
el
全球意识(需要组件以外的知识)
name
parent
组件类型(改变组件的类型)
functional
模板修饰符(改变模板的编译方式)
delimiters
comments
模板依赖(模板中使用的资产)
components
directives
filters
组合(将属性合并到选项中)
extends
mixins
接口(组件的接口)
inheritAttrs
model
props/propsData
本地状态(本地反应属性)
data
computed
事件(由反应事件触发的回调)
watch
Lifecycle Events (in the order they are called)
beforeCreate
created
beforeMount
mounted
beforeUpdate
updated
activated
deactivated
beforeDestroy
destroyed
非反应性属性(独立于反应性系统的实例属性)
methods
渲染(组件输出的声明性描述)
template/render
renderError
更多推荐style-guide 或Vue - 看这里vue-style-guide
【讨论】:
vue官方指南设计的项目使用 eslint-plugin-vue - 非常有帮助- 欢迎
不,没有。 100% 个人喜好。我喜欢从数据、方法开始,通常以生命周期方法结束。这类似于它通常在文档中的位置,并且看起来很方便,因为数据和方法发生了很大变化,而生命周期方法则没有那么多。但是,没有理由从框架中这样做。去你的游戏。
【讨论】:
在 JavaScript 中实际上可以保持对象键的顺序,但是这个 isn't guaranteed 用于 ES5 规范,Vue 支持。因此,不应期望框架会依赖于定义组件属性的顺序。
组件函数可以像其他答案解释的那样保持一定的一致性顺序,但它们不应该。这纯粹是风格问题。
【讨论】: