-
2022-03-10 13:54:28更多相关内容
-
Vue.js教程-Vue项目的目录结构和.vue文件的构成
2020-07-28 00:59:54Vue.js教程-Vue项目的目录结构和.vue文件的构成前言Vue项目的目录结构(Vue-cli3/4版本).vue文件的构成Html区域(template)script区域export default区域style区域总结 前言 本章介绍vue项目的目录结构和一个.vue文件...Vue.js教程-Vue项目的目录结构和.vue文件的构成
前言
- 本章介绍vue项目的目录结构和一个.vue文件的三部分,分别是template、script和style。
- 上一篇文章说到为什么同样都是.vue文件,为什么存在于不同的文件夹下,下面先解释一下目录结构。
- 因为Vue属于单页面开发方式,构成这个页面的元素就是组件,各个小组件组成一个大组件,各个大组件组成这个页面,在实际操作中只需要刷新对应组件即可,节省了任务量。通俗一点解释就是:单页面作为一棵树的根结点,它的子结点就是大组件,子结点的子结点就是小组件,以此类推。
Vue项目的目录结构(Vue-cli3/4版本)
-
先看一下整体的目录,还是用上一篇的vue工程。
-
众所周知,源码都放在src文件夹里,其他的要么是配置文件,要么是项目里需要的相关依赖。
-
assets文件夹:经常有两个子文件夹,分别是CSS和icon(就是存图片的)。
-
components文件夹:顾名思义存的是组件,这种组件全是vue文件,但这里经常放的是能够在不同的项目中进行重复使用的组件,例如移动端开发的Tabbar,或者是PC端的左侧导航栏等等,在不同的项目中直接复制粘贴这个文件夹就能使用了,也是Vue组件化开发的一大特点,就是复用性高。
-
router文件夹:里面只有一个文件——index.js,里面可以配置路由,路由的两种跳转方式有hash和history,上篇文章里简要说了一下他俩最主要的区别,可以去看。代码可以照下面的方式去练习,我使用的是箭头函数,属于ES6中function的简便写法,后面会细说一下。path代表路径,redirect代表重定向,component代表在这个路径下出现的组件,属于组件化开发的直观体现。
-
store文件夹:这个文件夹是Vuex自动创建的,里面也有一个index.js,但这里默认有四个东西:
- state: 存公用的一些变量,例如登录信息啥的。
- mutations:其实就是methods,主要用于修改state里的数据。
- actions:进行异步操作,但还是通过mutations里的function操作state,不能直接修改state。
- modules:里面可以定义许多个module,每个module里也有state、mutations和actions,相当于一个小型的vuex,我是这么理解的,可以看大佬们的精细讲解。
-
view文件夹:就是存放大组件的,也就是构成这个单页面的最大子组件,里面也是vue文件。
-
App.vue:是vue文件,也就是这个项目的入口,经常配合router-view使用,router-view用于显示该路由对应的组件,相当于是给了一个显示组件的区域。
-
main.js:引入全局的一些东西,并初始化Vue,一般一个项目里只用初始化一个Vue,.$mount(’#app’)就是el : ‘app’,两者是同一个意思,只不过mount写在后面,el卸载大括号里面,都可以。一般自己后安装的插件想要全局使用的话都要在main.js进行使用,也就是
Vue.use(插件名)
,当然要先import,例如使用axios进行异步请求,但最好还是按需使用,不要全局使用,因为有些时候使用父传子或子传父就能够实现数据传递,这样只需要在大组件里使用即可达到目的。
.vue文件的构成
- 先创建一个vue文件,我创建的是Home.vue
Html区域(template)
- template里面只能有一个div,如果还需要div,可以在这唯一的div里进行使用,但最外层必须用div包上。
- 该组件的所有代码都会写在这个区域内,如果使用子组件只需要先import再使用,如何引入和使用会在下个部分讲。
script区域
- 在这里写js代码。
- 先解决如何确定父子关系,如图:
- 先在script区域内引入该组件,具体路径根据你创建的组件位置进行引入,然后在export default中的components写上引入的组件,此时父子关系确定了,因为Tabbar这个组件是位于Home组件内,所以Home是父组件,在html区域内直接写上
<子组件名>
这样就能让子组件在父组件中显示了。
export default区域
- 意思是将这里的东西默认抛出,这样在别的组件中可以使用这些东西,也就是在别的组件中可以完全引入。
- 里面经常有五个常用的东西:
- data:写法上面的图片有,具体的数据写在return里就行了,可以是数组、对象或者某个变量。
- computed:意思是计算属性,经常用于监控自己定义的变量啥的,处理相关数据并返回一个结果,例如购物车的总金额啥的。
- methods:就是一些方法,常见的是一些事件,向后台请求数据或传递数据,其实就是js的函数,这里可以定义多个函数。
- watch:经常用于监控vue实例,或监控父组件中data中数据改变的状况,经常用于同步刷新。
- components:就是引用子组件。
style区域
- 写Css的地方,因为存在复用的情况,所以这个区域被包含在这个组件中,一个组件移到另一个项目中可以直接使用,就不用自己写了。
- 好像也没别的了,还有就是用什么类型的Css,可以自己安装,例如sass啥的,都可以。
总结
- 主要是了解Vue的目录结构,如果哪里写的不全欢迎补充,也可以去看大佬们的博客进行学习,先了解每个文件夹都是干什么的,防止以后不好维护。
- 父子组件的传参和相关知识后面也会讲,先提一下混个脸熟就ok了。
-
vue文件怎样运行?
2021-06-11 01:36:30vue文件怎样运行?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。1、首先,列出来我们需要的东西:node.js环境(npm包管理器)vue-cli 脚手架构建工具cnpm npm的TB...vue文件怎样运行?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。
1、首先,列出来我们需要的东西:
node.js环境(npm包管理器)
vue-cli 脚手架构建工具
cnpm npm的TB镜像
2、如果你是用vue-cli webpack builid之后,
放到web服务器,访问index.html就可以运行了。
常见的web服务器有tomcat,nginx等。
推荐使用nginx。
3、在项目目录中,运行命令 npm run dev ,会用热加载的方式运行我们的应用,热加载可以让我们在修改完代码后不用手动刷新浏览器就能实时看到修改后的效果。
4、这里简单介绍下 npm run dev 命令,其中的“run”对应的是package.json文件中,scripts字段中的dev,也就是 node build/dev-server.js命令的一个快捷方式。
项目运行成功后,浏览器会自动打开localhost:8080(如果浏览器没有自动打开,可以手动输入)。
更多web前端开发知识,请查阅 HTML中文网 !!
-
vue文件中如何注释?
2021-06-13 13:51:14vue文件里是可以写注释的。在每个代码块内,注释的时候,需要使用各自语言的注释语法去注释(HTML、CSS、JavaScript、Jade 等)。在文件最顶部注释的时候用HTML的注释语法: 。html 注释:CSS注释:/*多行注释*/js ...vue文件里是可以写注释的。在每个代码块内,注释的时候,需要使用各自语言的注释语法去注释(HTML、CSS、JavaScript、Jade 等)。在文件最顶部注释的时候用HTML的注释语法: 。
html 注释:
CSS注释:/*
多行注释
*/
js 注释:// 单行注释
/*
多行注释
多行注释
*/
var a = 'abc'; // 行末注释
xml 注释:
文件注释规范
单个文件注释规范,每个独立的VUE文件开头都要进行注释,表明该文件的描述信息、作者、创建时间等。
效果:
方法注释规范
VUE文件中method中的方法注释/**
* @description: 方法描述
* @param {参数类型} 参数名称
* @param {参数类型} 参数名称
* @return 没有返回信息写 void / 有返回信息 {返回类型} 描述信息
*/
效果:
变量的注释
vue文件中data声明的变量的注释:
或者
在变量的后面进行变量的注释说明,可以不行注释,当时最好注释(是否注释根据自己需要)
行内注释和代码块的注释
当我们在写一个比较复杂的方法的时候,需要进行注释,这时需要确定是否使用行级注释还代码块的注释
代码块的注释:
或者
行级代码的注释
其他
当我我们在引用其他方法时,也需要进行引用,例如:
当我们引入的方法过多时,要进行换行(换行标准自己定义)
更多web前端开发知识,请查阅 HTML中文网 !!
-
IDEA: vue文件 File is read-only
2022-03-08 07:38:17今天有个同学问我是vue文件设置了什么权限吗?文件只读操作。 解决方法;这是因为文件主动或者被动被锁定了,选择相应文件,点击File---Make File Writable处理解决即可。 -
如何运行单个.vue文件
2021-04-09 17:50:431.全局安装Vue ...3.在本地新建一个Vue文件: <template> <h1>Hello!我是安安</h1> </template> 4.在这个 .vue 文件所在的目录下运行: vue serve 5.在浏览器打开如下地址就可 -
什么是.vue文件,它的作用是什么
2021-09-20 13:12:26.vue文件就是一个(或局部)组件,又或者说是一个对象在导出时。 在Vue.createApp({ app}) app是一个.vue文件,里面包括三个部分template 和 js css,。然后再对比下面图片,是不是很像,下面一个注册一个组件需要... -
在一个vue文件里使用另外的vue文件
2019-12-24 10:57:34这篇文章演示的是如何用Vue.js官方命令行快速搭建的项目中如何在App.vue中使用其他的vue文件(组件)。 快速搭建的vue项目中目录结构有src下的components和App.vue。 如下图: components是用来存放组件文件。 App.... -
使用vscode创建vue文件时,自动生成vue文件模板
2020-04-10 11:42:11在vscode中没有像hubilder一样,创建vue文件后就自动生成vue模板。 但是我们可以自己创建vue.json文件自定义配置。 记录一下我自己配置的过程???? 1.打开vscode,在菜单栏中选择 文件 / 首选项 / 用户代码片段 这时... -
Vue中的.vue文件的使用
2020-02-13 13:54:37需要安装vue-loader npm i vue-loader vue-template-complier -D 然后在配置文件中新增匹配规则 ...1. 定义.vue文件 <template> <!--这里定义html模板--> </template> <script> //这里定义... -
.vue文件如何跳转页面?
2021-06-11 14:46:31.vue文件如何跳转页面?下面本篇文章给大家介绍一下。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。vue在使用的过程中, .vue文件之间的跳转,常常通过 实现。 组件用于设置一个导航链接,切换... -
Vue文件上传、下载
2021-07-29 13:55:18代码示例:文件上传到接口,对接口返回的文件进行下载。 <template> <div class="hello"> <h1>{{ msg }}</h1> <input type="file" @change="uploadFile($event)" accept=".sql,.... -
Vue项目中创建vue文件并运行(开发工具:idea)
2020-02-24 19:49:26文章目录前言新建 vue 文件修改新建的 vue 文件增加标签和样式在 App.vue 的文件中增加信息index.js 文件的修改运行测试 前言 首先,把新创建的项目导入 idea 中。 不修改任何文件内容,直接运行,可以看到成功之后... -
vue-3-vue文件导入另一个vue文件
2019-09-19 22:10:42新建一个 testtem.vue 文件 和 index.vue 同级 在testtem.vue 创建一个模板 <template> <div id="tem_test"> test。。。。。。 </div> </template> <script> export ... -
Vue文件命名规范
2020-08-17 16:33:01Vue项目中的文件/文件夹命名规范 1、components、views下文件夹/文件命名 a、文件夹命名使用大写字母开头PascalBase风格 b、必须包含index.vue c、其他文件名以大写开头PascalBase风格 eg: [components] ... -
IDEA无法识别.vue文件
2021-07-21 17:57:59记录一下使用IDEA导入springboot项目后,无法识别.vue文件。所有.vue文件都是灰色……在网上找到了很多资料,且试了多种方式,最终搞定了。请看下面内容: 解决方法: 先下载vue插件,然后打开IDEA–>setting–&... -
让vue文件直接在浏览器中运行
2021-02-15 16:01:13让 Vue 原生支持在浏览器中直接运行 .vue 文件,这才符合“渐进式框架”的定位!webpack 学不好或者不想学或者嫌麻烦,就可以使用插件在浏览器中直接编译运行 .vue 文件!这样... -
vue文件上传成功后清空文件
2020-08-28 16:07:44在项目中我们使用input标签设置type属性为file,上传文件后需要清空选中的文件, <input type="file" ref="clearFile" name="file" id="file"> <button @click="clearFile"></button> <... -
在vue项目中如何在.js文件调用.vue文件中函数方法
2020-12-24 17:04:291 在vue文件中 queryTage为vue文件中的函数方法 通过挂载在window上实现 mounted() { window.queryTage=this.queryTage; }, 2 在js文件如何调用 window.queryTage() -
初识 Vue.js 中的 *.Vue文件
2018-05-23 00:23:49什么是Vue.js?vue.js是一套构建用户界面的渐进式框架,它采用自底向上增量开发的设计。(自底向上设计方法是根据系统功能要求,从具体的器件、逻辑...另一方面,当与单文件组件和Vue生态系统支持的库结合使用时,V... -
让Vue文件直接在浏览器中运行
2021-02-10 14:31:20首先说,Vue自创的单文件组件这个太好用了,封着性好,开发组件没什么学习成本,好用! 但是,Vue虽然号称“渐进式框架”,但如果【不想】只使用基本语法做点小玩意,【想】使用组件搞Vue开发,却必须依赖Webpack这... -
单独运行Vue文件
2020-04-13 16:58:29场景:想单独运行某个Vue文件,不依赖src,类似运行单独的HTML文件 1.安装vue serve 2.运行 npm install -g @vue/cli-service-global 3.安装完成之后cd到需要单独运行的Vue目录下,执行 vue serve XXX ... -
vue loader配置及对vue文件(vue单文件组件)的处理
2019-08-03 20:49:51通常情况下,我们会使用vue cli直接创建一个项目的脚手架,如果我们要自己用webpack来配置vue项目的话,就要用到vue loader vue loader的配置 处理资源路径 使用预处理器 ... -
Vue3.0之.vue文件出现红色波浪线
2021-08-25 16:11:44在我们使用Vue3.0构建项目之后我们会发现.vue文件中出现了红色波浪线的检测提示问题。 这里是因为我们用的Vetur插件的template模板检测没有对Vue3.0做兼容,所以需要我们手动去关掉template模板检测。 找到VSCode... -
vscode vue文件代码无颜色 解决办法
2021-07-28 19:47:00只需要安装Vetur插件即可 -
Vue 怎么引入其它Vue文件
2019-05-23 17:27:17我需要在App.vue中引入HelloWorld.vue //引入导航栏组件 Nav 相当于一个变量,名字可以随意 后面路径一定要对 import Nav from '@/components/HelloWorld.vue' //注册组件 放在default{}里 组件名称要与引入的变量 ... -
idea中编辑*.vue文件没有任何提示
2021-02-19 12:54:38idea开发java程序使用频次较高,开发前端项目貌似较少,至少我们公司前端开发使用的是vs,如下图,编辑vue文件时,没有任何提示,代码也是清一色的,不太友好。如何在idea中安装vue相关插件呢? 打开设置中心,... -
vue文件快速生成页面模板
2020-10-25 10:33:30一Vscode新建模板 1菜单选择 2新建全局代码片段 二模板内容 ... "prefix": "vue", "body": [ "<!-- $1 -->", "<template>", "<div class='$2'>$5</div>", "</tem... -
antd vue 文件上传实例
2020-03-16 17:47:06antd vue 文件上传实例 说明 该实例是后端进行文件上传至minio服务器 这里仅仅是展示前端antd vue得代码 限制文件类型配置查看 这里 <template> <a-upload :headers="headers" :action="url" :... -
vue的.vue文件是怎么run起来的(vue-loader)
2019-02-22 15:04:30引子:vue的.vue文件是怎么跑起来的? 答:通过vue-loader,解析.vue文件,在webpack解析,拆解vue组件 1、vue-loader做了什么? vue-loader是一个webpack加载器,这是vue组件的格式: <template> .....