当前位置: 首页 > news >正文

VUE之旅—day3

工程化开发和脚手架Vue CLI

开发Vue的两种方式:

  1. 核心包创痛开发模式:基于html/css/js文件,直接引入核心包,开发Vue。

  2. 工程化开发模式:基于构建工具(例如:webpack)的环境中开发Vue。

    源代码→自动化编译压缩组合→运行的代码

    意思即为 源代码(es6语法/typescript/less/sass)通过自动化编译压缩组合(webpack配置)转换成运行大代码(js/css)

    存在的问题:

    1. webpack配置不简单
    2. 雷同基础配置
    3. 缺乏统一标准

    解决方案:需要一个工具,生成标准化的配置

Vue CLI基本介绍

VueCLI是Vue官方提供的一个全局命令工具。

可以帮助我们快速创建一个开发Vue项目的标准化基础架子。【集成了webpack配置】

好处:

  1. 开箱即用,零配置
  2. 内置babel等工具
  3. 标准化

使用步骤:

1.全局安装(一次):yarn global add @vue/cli或 npm i @vue/cli -g

2.查看Vue 版本:vue–version

3.创建项目架子:vuecreateproject-name(项目名-不能用中文)

4.启动项目:yarn serve 或 npm run serve(找package.json)

在这里插入图片描述

脚手架目录文件介绍&项目运行流程

在这里插入图片描述

组件化开发&根组件

  1. 组件化:一个页面可以拆分成一个个组件,每个组件有着自己独立的结构、样式、行为。

    好处:便于维护,利于复用→提升开发效率

    组件分类:普通组件、根组件

  2. 根组件:所有应用最上层组件,包裹所有普通小组件。

    语法高亮插件 Vetur

    一个根组件App.vue,包含三个部分:

    • template结构(只能有一个根节点)
    • style样式(可以支持less,需要安装包less和less-loader)
    • script行为

在这里插入图片描述

<template><div id="app" @click="fn()">我是一个盒子<div class="box"></div></div>
</template><script>
// 导出的是当前组件的配置项
// 里面可以提供data(特殊) method computed watch 生命周期八大钩子
export default {created() {console.log("我是created");},methods: {fn() {alert('你好')}}
}
</script><style lang="less">
/*让style支持less
1.给style加上  lang="less"
2.安装依赖包 less 和 less-loaderyarn add less less-loader -D(开发依赖)
*/
#app {width:300px;height: 300px;background-color: pink;.box{width:100px;height: 100px;background-color: rgb(145, 181, 209);}
}
</style>

普通组件的注册使用

组件注册的两种方式:

  1. 局部注册:只能在注册的组件内使用
    • 创建.vue文件(单文件组件)
    • 在使用的组件内导入,并局部注册 components:{组件名:组件对象}
  2. 全局注册:所有组件内都能使用
    • 创建.vue文件(单文件组件)
    • main.js内导入,并全局注册Vue.component(组件名,组件对象)

使用:当成HTML标签使用 <组件名></组件名>

注意:组件名规范→大驼峰命名法,如MyHeader

技巧:一般都用局部注册,如果发现确实是通用组件,再抽离到全局。

局部注册

在这里插入图片描述

App.vue

<template><div class="vue"><!-- 头部组件 --><MyHeader></MyHeader><!-- 主体组件 --><MyMain></MyMain><!-- 尾部组件 --><MyFooter></MyFooter></div>
</template><script>
import MyFooter from './components/MyFooter.vue'
import MyHeader from './components/MyHeader.vue'
import MyMain from './components/MyMain.vue'
export default {components: {MyHeader,MyMain,MyFooter
}
}
</script><style>
.vue{width: 400px;height: 500px;background-color: pink;padding: 20px;font-size: 20px;margin: 0 auto;color: rgb(72, 77, 81);
}
</style>

components中的MyHeader.vue

<template><div class="my-header">我是MyHeader</div>
</template><script>
export default {}
</script><style>
.my-header{width: 100%;height: 80px;background-color: rgb(122, 186, 154);text-align: center;line-height: 80px;
}
</style>

components中的MyMain.vue

<template><div class="my-main">我是MyMain</div>
</template><script>
export default {}
</script><style>
.my-main{width: 100%;height: 300px;background-color: rgb(147, 198, 242);margin: 10px 0;text-align: center;line-height: 300px;
}
</style>

components中的MyFooter.vue

<template><div class="my-footer">我是MyFooter</div>
</template><script>
export default {}
</script><style>
.my-footer{width: 100%;height: 80px;background-color: rgb(242, 225, 147);text-align: center;line-height: 80px;
}
</style>
全局注册

在这里插入图片描述

在需要使用的地方直接标签导入即可。

组件拆分

页面开发思路:

  1. 分析页面,按模块拆分组件,搭架子(局部或全局注册)

  2. 根据设计图,编写组件html结构cSs样式(已准备好)

  3. 拆分封装通用小组件(局部或全局注册)

    将来→通过js 动态渲染,实现功能

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • ExcelVBA运用Excel的【条件格式】(三)
  • 【文档智能】LACE:帮你自动生成文档布局的方法浅尝
  • c++初阶学习----入门(上)
  • Cesium版本升级webgl问题,glsl代码关键字修改
  • 通过高德地图 JS API实现单击鼠标进行标注
  • 基于 sftp 的 NAS (局域网文件存储服务器)
  • Linux文件编程(打开/创建写入读取移动光标)
  • 语义言语流畅性的功能连接和有效连接
  • YOLOv5改进系列(32)——替换主干网络之PKINet(CVPR2024 | 面向遥感旋转框主干,有效捕获不同尺度上的密集纹理特征)
  • `DynamicDataSourceContextHolder` 是一个在Java应用程序中用于动态切换数据源的实用类
  • 蝙蝠优化算法(Bat Algorithm,BA)及其Python和MATLAB实现
  • springboot集成tika解析word,pdf,xls文件文本内容
  • 科普文:分布式系统的架构设计模式
  • 探索Conda世界:使用conda list命令的全面指南
  • 【LabVIEW学习篇 - 2】:LabVIEW的编程特点
  • 2018一半小结一波
  • docker-consul
  • ES6, React, Redux, Webpack写的一个爬 GitHub 的网页
  • Git初体验
  • iOS动画编程-View动画[ 1 ] 基础View动画
  • Java IO学习笔记一
  • overflow: hidden IE7无效
  • 阿里云应用高可用服务公测发布
  • 力扣(LeetCode)21
  • 爬虫模拟登陆 SegmentFault
  • 漂亮刷新控件-iOS
  • 国内开源镜像站点
  • 完善智慧办公建设,小熊U租获京东数千万元A+轮融资 ...
  • ‌JavaScript 数据类型转换
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #laravel部署安装报错loadFactoriesFrom是undefined method #
  • (1)Map集合 (2)异常机制 (3)File类 (4)I/O流
  • (17)Hive ——MR任务的map与reduce个数由什么决定?
  • (cljs/run-at (JSVM. :browser) 搭建刚好可用的开发环境!)
  • (HAL)STM32F103C6T8——软件模拟I2C驱动0.96寸OLED屏幕
  • (Pytorch框架)神经网络输出维度调试,做出我们自己的网络来!!(详细教程~)
  • (二)七种元启发算法(DBO、LO、SWO、COA、LSO、KOA、GRO)求解无人机路径规划MATLAB
  • (面试必看!)锁策略
  • (新)网络工程师考点串讲与真题详解
  • (学习总结16)C++模版2
  • (转)母版页和相对路径
  • .net core开源商城系统源码,支持可视化布局小程序
  • .NET/C# 使用反射调用含 ref 或 out 参数的方法
  • @ConditionalOnProperty注解使用说明
  • @RequestBody的使用
  • [ C++ ] template 模板进阶 (特化,分离编译)
  • [1] 平面(Plane)图形的生成算法
  • [2544]最短路 (两种算法)(HDU)
  • [5] CUDA线程调用与存储器架构
  • [BJDCTF2020]The mystery of ip
  • [C++]打开新世界的大门之C++入门
  • [CC2642r1] ble5 stacks 蓝牙协议栈 介绍和理解
  • [DevEpxress]GridControl 显示Gif动画
  • [Docker]三.Docker 部署nginx,以及映射端口,挂载数据卷
  • [mit6.s081] 笔记 Lab2:system calls