Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[vue] 在.vue文件中style是必须的吗?那script是必须的吗?为什么? #470

Open
haizhilin2013 opened this issue Jun 22, 2019 · 21 comments
Labels
vue vue

Comments

@haizhilin2013
Copy link
Collaborator

[vue] 在.vue文件中style是必须的吗?那script是必须的吗?为什么?

@haizhilin2013 haizhilin2013 added the vue vue label Jun 22, 2019
@Lan-megumi
Copy link

萌新试着回答....
都不是必须的
至于为啥...
我感觉其实都没有的话那就是一个静态网页

@maomao1996
Copy link

style 不是必须的,script 是必须的,而且必须要写上

export default {}

@wkjjkw
Copy link

wkjjkw commented Jun 29, 2019

都不是必须的

@suchanglin
Copy link

都不是必须的,但最好写上,至少script要写上。一切都是模块,因此最后都是转成JavaScript形式。

@h-chao
Copy link

h-chao commented Jul 2, 2019

都不是必须的
如果是普通组件那么只能是一个静态html
如果是函数式组件, 那么可以直接使用props等函数式组件属性
https://cn.vuejs.org/v2/guide/render-function.html#%E5%87%BD%E6%95%B0%E5%BC%8F%E7%BB%84%E4%BB%B6

@Liuhuang814
Copy link

style 不是必须的,script 是必须的,而且必须要写上

export default {}

可以不写的

@HerryBin
Copy link

HerryBin commented Sep 24, 2019

试验了下,在 .vue 文件中,template是必须的,而script与style都不是必须的。
如果没有 template,则 [Vue warn]: Failed to mount component: template or render function not defined.

@censek
Copy link

censek commented Oct 17, 2019

不是

@Ajaxlover
Copy link

.....萌新一瞧,你们到底谁说得对

@Error404ToT
Copy link

都不是必须的吧

@fm1234569
Copy link

管他三七二十一 vue点回车就行了

@czkm
Copy link

czkm commented Mar 1, 2020

都不是必须的

@mydaoyuan
Copy link

试验了下,在 .vue 文件中,template是必须的,而script与style都不是必须的。
如果没有 template,则 [Vue warn]: Failed to mount component: template or render function not defined.

提示说,在option上挂个render函数也可以,所以template也不是必须的。 可以这么说吧

@Good-XiaAo
Copy link

我想知道有很多问题有什么意义呢

@mingyec
Copy link

mingyec commented Mar 30, 2020

@HerryBin .vue文件也可以用作mixins使用,所以template并不是必须的。确切来讲,script | template

@Error404ToT
Copy link

都不是必须的

1 similar comment
@liushengguang
Copy link

都不是必须的

@hushichao
Copy link

我想知道有很多问题有什么意义呢

显得面试官 高大上哈,牛呗

@star-ll
Copy link

star-ll commented Jul 16, 2021

都不是必须的,但是这种问题感觉没太大意义

@pengshengguang
Copy link

pengshengguang commented Oct 30, 2021

都不是必须的,不过得分情况

一、.html文件

可以都没有,那就是一个静态文件

二、.vue文件

1、如果没有render函数,那么template是必须要有的,否则报错
2、如果有render函数,那么可以没有template,style,但是要有script
3、可以只有<template>,而script、style是非必须的

三、.js文件

直接tempalte、script、style都可以没有,也能够做组件!!!
只需如下即可
export default { props: [ 'title' ], render(createElement) { return createElement('h1', {}, 'Hello World') } }

@Tracymcgrady946
Copy link

在单文件组件(.vue 文件)中,<script> 标签是可选的,但通常是必须的。

<script> 标签用于编写组件的 JavaScript 代码,包括组件的逻辑、数据、计算属性、方法等。它是实现组件功能的关键部分,因此在大多数情况下,你会希望在 .vue 文件中包含 <script> 标签。 然而,有一些情况下 <script> 标签可以省略: 纯模板组件:如果你的组件仅包含模板,没有任何逻辑或交互行为,那么可以省略 <script> 标签。这种情况下,你可以只在 .vue 文件中编写 部分。 使用外部组件:当你在 .vue 文件中引用外部组件时,可以不包含 <script> 标签。这通常发生在使用第三方库或组件库时,你只需要在模板中使用这些组件,而不需要在当前组件中编写额外的逻辑。 尽管 <script> 标签是可选的,但它提供了编写组件逻辑的地方,让你能够控制组件的行为和交互。在大多数情况下,你会希望在 .vue 文件中包含 <script> 标签,并编写相应的 JavaScript 代码来完善组件的功能。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
vue vue
Projects
None yet
Development

No branches or pull requests