首页 > 其他分享 >(二)vue组件化基础跟脚手架vue-cli/vite

(二)vue组件化基础跟脚手架vue-cli/vite

时间:2023-04-15 11:58:02浏览次数:30  
标签:vue cli Vue 注册 使用 组件 vite CLI

  • vue组件化开发思想

  •  组件化的思想:

    • 将一个页面的所有的处理逻辑放到一起,处理起来就会非常复杂,而且不利于后续的管理以及扩展;
    • 如果,将一个页面拆分为一个个小功能块,每个功能块完成属于自己这部分独立的功能,那么之后整个页面的管理和维护就变得非常容易了;
    • 就像搭积木一样来搭建我们的项目;
  • 用组件化思想来思考整个应用程序:

    • 我们将一个完整的页面分成很多个组件;
    • 每个组件都用于实现页面的一个功能块
    • 而每一个组件又可以进行细分;
    • 组件本身又可以在多个地方进行复用;

注册组件的方式

  • 我们现在有一部分内容(模板、逻辑等),希望将这部分内容抽取到一个独立的组件中去维护,这个时候需要注册一个组件。

  • 注册组件分为两种:

  • 全局组件:在任何其他的组件中都可以使用的组件

    • 全局组件需要使用我们全局创建的app来注册组件;
    • 全局组件的特点:一旦注册成功后,可以在任意其他组件的template中使用
    • 通过component方法传入组件名称、组件对象即可注册一个全局组件了;
    • 之后我们可以在App组件的template中直接使用这个全局组件。
    •  

  • 局部组件:只有在注册的组件中才能使用的组件;

    • 局部注册是在我们需要使用到的组件中,通过components属性选项来进行注册的;
    • 在App组件中,我们有data、computed,methods等选项,其实还可以有一个,components选项
    • 该components选项对应的是一个对象,对象中的键值对是组件的名称:组件对象;

组件的名称

  • 在使用app.component注册一个组件的时候,第一个参数是组件的名称,定义组件名的方式有两种:

    • 方式一:使用kebab-case(短横线分隔符)

    • 方式二:使用PascalCase(大驼峰标识符)

如何支持SFC

  • 如果我们想要使用这一的SFC的vue文件,比较常见的是两种方式:

    • 方式一:使用vue.CLI来创建项目,项目会默认帮助我们配置好所有的配置选项,可以在其中使用.vue文件;  

    • 方式二:自己使用webpack或rollup或vite这类打包工具,对其进行打包处理;

  • 一般都是用vue CLI的方式来完成。

Vue CLI脚手架

  • 脚手架其实是建筑工程的一个概念,在我们软件工程中也会将一些帮助我们搭建项目的工具称之为脚手架;
  • Vue的脚手架就是Vue CLI:
    • CLI是Command-Line Interface,翻译为命令行界面;
    • 我们可以通过CLI选择项目的配置和创建出我们的项目;
    • Vue CLI已经内置了webpack相关的配置,我们不需要从零来配置;

Vue CLI安装和使用

  • 安装Vue CLI
  • 进行全局安装:npm install @vue/cli -g
  • 升级vue Cli:可以用npm update @vue/cli -g

补充内容

  •  jsconfig.json的演练
    • 作用:给vscode进行读取,vscode在读取到其中的内容时,给我们的代码更好的提示;
  •  引入的vue的版本
    • 默认vue版本:runtime,vue-loader完成template的编译过程
    • vue.esm-bundler:runtime+complie,对template进行编译。
  •  单文件vue style是有自己的作用域的
    • 给自己.vue的文件里面style加上scoped就可以形成单独文件的作用域
  • vscode插件:vetur.vu2/vue3,volar

vite创建vue项目

  •  1.安装一个本地工具:create-vue;
  •  2.使用create-vue创建一个vue项目;
    • npm init vue@latest

标签:vue,cli,Vue,注册,使用,组件,vite,CLI
From: https://www.cnblogs.com/ffhyy/p/17308514.html

相关文章

  • vue3 父子组件共享响应式对象
    父组件<templatelang=""><div><divclass="greetings">按钮值:{{num}}</div><div><button@click="num++">按钮</button></div><div>iamparent</div&......
  • 论Vue和React的不同之处
    论Vue和React的不同之处Vue和React都是用于构建UI界面的流行框架。它们的哲学也有很多相似的地方,我们可以认为这些特性是流行前端框架的一个趋势。它们是:组件化。将结构、样式、脚本进行耦合,让界面一部分区域能够独立出来,并可以提供复用;声明式。摒弃了JQuery那种手动......
  • typescript vue3 VueDraggable 报错 Uncaught TypeError: Cannot read properties of
    UncaughtTypeError:Cannotreadpropertiesofnull(reading'element')nnotreadpropertiesofnull(reading'index')错误写法就是说子组件需要用div包着,你用其他东西,他无法添加key,然后就会报错。<template#item="{element}"><Todo:detail=......
  • vue2源码-五、将模板编译解析成AST语法树1
    将模板编译成ast语法树complileToFunction方法vue数据渲染:template模板->ast语法树->render函数,模板编译的最终结果结果就是render函数。在complileToFunction方法中,生成render函数,需要以下两个核心步骤:通过parserHTML方法:将模板(template或html)内容编译成ast语法树通过co......
  • OpenSSL s_client测试子命令
    载第三方的最新的PEM(privacy-enhancedmail)格式的可信证书库wget--no-check-certificatehttps://curl.haxx.se/ca/cacert.pemopenssls_client-CAfilecacert.pem-connectwww.baidu.com:443-msg显示证书链openssls_client-CAfilecacert.pem-connectwww.baid......
  • VUE框架中实现HTML页面(局部)内容转PDF下载
    有一朋友想把网页内容变成PDF下载下来。问我有没有好办法。这还真巧了,咱公司也有这个需求,就是网页生成合同,然后可以直接打印合同内容。最早吧,就是可以直接打印就好了。当时为解决完美打印的问题,挺费劲的,当时第三方插件还有BUG(当然把解决放给发给作者了,作者早已经修复了),正经反复......
  • 使用cups + ipp 协议client 进行网络打印处理
    实际上日常中我们已经使用了网络打印了(比如公司内部使用的共享打印机),现在大家会有使用基于部分厂商开发的的网络打印进行资料打印从技术实现上基本都是基于网络打印技术,然后通过控制程序对于打印机进行操作,然后平台会按照不同的打印模式收取不同的费用,用户可以自己去固定网点去取......
  • Docker CLI docker compose create常用命令
    Docker是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍DockerCLI中d......
  • vue3微信公众号商城项目实战系列(4)第一个页面
    在开始写第一个页面之前,先简单看下index.html、App.vue、main.js、HelloWorld.vue、TheWelcome.vue、WelcomeItem.vue这几个页面及文件是怎么运作的,然后再新建2个页面,完成从一个页面跳转到另一个页面这个最简单的操作。 index.html和main.js代码如下:index.html文件的......
  • Vue Props 定义类型时报对象属性 unknown 错误
    如上图所示,在模板中使用itemprop时,surface属性是unknown类型。下面是props类型定义:typeIWorks=Partial<{id:string;text:string;content:string;desc:string;date:string;view:string;comm:string;digg:string;surface:string;......