首页 > 其他分享 >day03

day03

时间:2024-02-19 22:57:18浏览次数:44  
标签:Vue less day03 App vue 注册 组件

day03

目录

Vue 生命周期

  • 思考:什么时候可以发送初始化渲染请求?(越早越好)什么时候可以开始操作 dom?(至少 dom 得渲染出来)

  • Vue 生命周期:就是一个 Vue 实例从创建到销毁的整个过程

  • 生命周期四个阶段:

    1. 创建阶段:创建响应式数据
    2. 挂载阶段:渲染模板
    3. 更新阶段:修改数据,更新视图
    4. 销毁阶段:销毁Vue实例

Vue 生命周期钩子

  • Vue 生命周期过程中,会自动运行一些函数,被称为生命周期钩子
    • 让开发者可以在特定阶段运行自己的代码

68206604029

  • 主要的就是

    • 响应式数据准备好之后:created()

      • 获取初始化数据
    • 模板渲染之后:mounted()

      • 在一进入页面就获取焦点

      • 获取初始化饼图([官方请查看](Apache ECharts) 点击快速入门)

        // <div id="main"></div> 放图的盒子
        
        // let myChart = echarts.init(document.getElementById('main'));
        // myChart.setOption({初始化的数据option})
        // 这样let的话除了这个方法内,外面都无法使用myChart,所以可以先挂载到实例上,直接用this:
        
        this.myChart = echarts.init(document.getElementById('main'));
        this.myChart.setOption({初始化的数据option})
        
        // 在需要更新图标的地方
        this.myChart.setOption({
        	// 只留下更新的部分即可,原有的保留的可以不写不操作,如:
        	series: [
            {
        			data: this.list.map(item => ({value: item.price, name: item.name}))
            }
        	]
        })
        
    • 也就组件时可能会用到卸载前:beforeDestory() 来清除掉一些 vue 以外的资源占用(定时器。延时器等)

工程化开发和脚手架

开发 Vue 的两种方式

  • 核心包传统开发模式:基于 html / css / js 文件,直接引入核心包,开发 Vue

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

    image-20231224001859789

    • 自己编写的代码要经过 webpack 配置(自动化编译压缩组合)才能变成浏览器可识别的代码
    • 配置不简单而且公司一般都不一样
  • 工程化开发模式优点:

    • 提高编码效率,比如使用 JS 新语法、Less/Sass、Typescript 等通过 webpack 都可以编译成浏览器识别的 ES3/ES5/CSS 等
  • 工程化开发模式问题:

    • webpack 配置不简单

    • 雷同的基础配置

    • 缺乏统一的标准

  • 为了解决以上问题,所以需要一个工具,生成标准化的配置,也就是 Vue CLI 脚手架

脚手架 Vue CLI

基本介绍

  • Vue CLI 是 Vue 官方提供的一个全局命令工具

  • 可以帮助我们快速创建一个开发 Vue 项目的标准化基础架子

    • 集成了 webpack 配置
  • vue2 用到 vue cli 较多,vue3 又出了 vite 代替 cli

好处

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

使用步骤

  1. 全局安装(只需安装一次即可) yarn global add @vue/cli 或者 npm i @vue/cli -g
  2. 查看 vue/cli 版本:vue --version
  3. 创建项目架子:找到需要的目录下 vue create project-name(项目名不能使用中文)
  4. 启动项目:cd 进入项目目录里 yarn serve 或者 npm run serve(命令不固定,找 package.json
    • 这里的 serve 是因为在项目中的 package.json"scripts":{ "serve": "......" } 是写的 serve,所以命令不固定,要找 package.json

项目目录介绍和运行流程

项目目录介绍

  • 下述图片是用 yarn 创建的项目的脚手架的目录

68209214852

  • 虽然脚手架中的文件有很多,目前咱们只需人事三个文件即可

    • main.js:入口文件
    • App.vue:App 根组件
    • index.html:模板文件
  • 运行需要 Ctrl + `

    • 打开终端,yarn serve 或者 npm run serve 运行
  • 核心入口文件是 main.js,核心作用:导入 App.vue,基于 App.vue 创建结构渲染页面

    • 内容有:

      • import xxx from 'yyy' 导入

      • Vue.config.productionTip = false 提示当前处于什么环境(生产 / 开发),true 的时候才会在页面控制层看到 You are running Vue in development mode 就是开发环境的意思

      • new Vue({ ...... }) vue 实例化,提供 render 方法,基于 App.vue 创建结构渲染页面

        new Vue({
          el:'#app', 
          render: h => h(App), 
        })
        
        // 两种写法一个作用,el和$mount都是用于指定Vue所管理的容器
        
        new Vue({
          render: h => h(App), 
        }).$mount('#app')
        
        // 下述是完整写法(上面的是简写,h是形参)
        
        new Vue({
          render: (createElement) => {
            // 基于App创建元素结构
            return createElement(App)
          } 
        }).$mount('#app')
        

运行流程

  • 下图是以 yarn 为例

image-20231224155736591

组件化开发

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

  • 好处:便于维护,利于复用

    • 提升开发效率
  • 组件分类:普通组件、根组件

根组件 App.vue

  • 整个应用最上层的组件,包裹所有普通小组件
  • 例:
    • App 根组件
      • 头部组件
      • 主体组件
      • 底部组件

组件是由三部分构成

  • 语法高亮插件:Vetur

  • 三部分构成(在 vue 文件中可以输入 <vue> 找到 <vue> with default.vue 回车即可生成

    • template:结构(有且只能一个根元素)
    • script: 行为(js 逻辑)
    • style: 样式(可支持 less,需要装包)
  • 让组件支持 less

    • style 标签里加上:lang="less" (开启 less 功能)
    • 安装依赖包:yarn add less less-loader -D 或者 npm i less less-loader -Dlessless-loader 两个都要装)
  • 注意:.vue<template> 标签内部只能有一个根标签

    • vue3 不再限制一个根标签了
    <!--  以下结构就会报错  --> 
    <template>
    	<div>
        xxxx
      </div>
    	<div>
        yyy
      </div>	
    </template>
    
    <!--  下述结构就没有问题了  --> 
    <template>
    	<div>
        <div>
          xxxx
        </div>
        <div>
          yyy
        </div>	
      </div>
    </template>
    
  • vue 三大基础结构

普通组件的注册使用 — 局部注册

特点

  • 只能在注册的组件内使用

步骤

  1. 创建 .vue 文件(三个组成部分)
  2. 在使用的组件内先导入再注册,最后使用

使用方式

  • 当成 html 标签使用即可 <组件名></组件名>
  • 可以直接输入 组件名 然后按 tab 键就可以补全尖括号了
    • 没有的就点击 VS 左下角的设置图标,选择设置,搜索 trigger on tab,第一个就会显示复选框:启用后,按下 TAB 键,将展开 Emmet 缩写
    • 选中后别忘了重启生效

注意

  • 组件名规范:大驼峰命名法

语法

  • 例:

    // 导入
    import 组件对象 from '.vue文件路径'
    import HmHeader from './components/HmHeader'
    
    export default {  // 局部注册
      components: {
       '组件名': 组件对象,
        HmHeader:HmHeaer,
        HmHeader // 简写
      }
    }
    

普通组件的注册使用 — 全局注册

特点

  • 全局注册的组件,在项目的任何组件中都能使用

步骤

  1. 创建 .vue 组件(三个组成部分)
  2. main.js 中进行全局注册

使用方式

  • 当成 html 标签直接使用 <组件名></组件名>

注意

  • 组件名规范 —> 大驼峰命名法

语法

  • Vue.component('组件名', 组件对象)

  • 例(main.js 中跟着已有的 import 后面继续写):

    // 导入(这里以HmButton为例)
    import HmButton from './components/HmButton'
    
    // 全局注册
    Vue.component('HmButton', HmButton)
    
    • 注意,在 import 时,最后不管加不加 .vue 都可以成功导入

标签:Vue,less,day03,App,vue,注册,组件
From: https://www.cnblogs.com/zhu-ya-zhu/p/18022113

相关文章

  • day03_计算机硬件
    昨日作业传统运维没有接触到云计算,没有接触云服务器的,运维工程师得维护企业内部的硬件设备,服务器,以及机房的维护主要维护是企业内部的,不经常变化,且没有超大流量的内部应用(crm,企业内部的邮件系统,办公应用系统)HR。老板,同事,人事,财务,维护的软件,面向企业内部人员云计算运......
  • Day03-Helloworld-IDEA
    Helloworld1.新建一个文件夹,用于存放代码。2.新建后缀名为java的文件。​文件命名组成是:Hello.java​文件打开方式为notepad++3.编写代码:publicclassHello{ publicstaticvoidmain(String[]args){ System.out.print("Hello,World!"); }}4.编译:把写的......
  • day03
    多态多态是在继承、实现情况下的一种现象,表现为:对象多态、行为多态多态前提:有继承/实现关系;存在父类引用子类对象;存在方法重写多态的好处:解耦:在多态形式下,右边的代码是解耦合的,更便于扩展和维护。拓展性强:定义方法时,使用父类类型作为形参,可以接收一切子类对象,扩展性更......
  • MetaGPT day03 MetaGPT 订阅智能体
    订阅智能体基本介绍#什么是订阅智能体MetaGPT提供了Agent的开发能力,Agent可以协助我们解决日常的一些问题,其中一个应用场景就是我们可以让Agent为我们关注某些想关注的信息,当有我们关注的事件发生时,Agent获取信息并进行处理,然后通过一些如邮件、微信、discord等通知渠道将处理......
  • day03 转义字符和注释
    转义字符注意:韩顺平教育/r北京输出结果:北京平教育。意思是回车回到当前行韩顺平教育/r/n北京输出结果:韩顺平教育换行后北京注释单行注释//xxx多行注释/*xxx*/文档注释,对类进行注释,用javadoc可以生成HTML文件/***xxx*/java代码规范......
  • day03 代码随想录算法训练营 203. 移除链表元素
    题目:203.移除链表元素我的感悟:题目里的节点是已经给好的,创建虚拟节点,是为了方便处理头节点。加油,我可以的!!!!!理解难点:节点已经给好的创建虚拟节点代码难点:p是临时变量,类似于foriinrange(10)这里的i,本身是用完就扔的。返回值为什么不能是p.next?因为p是一个指针,......
  • 代码随想录day03 链表删除 链表类的实现 反转链表
    首先是链表的删除操作热身题这里使用了一个新的头指针这样在删除头指针的时候就不需要进行额外的判断然后是链表类的实现需要一点背诵加上深刻理解有时候理解了但是写起来还是会有些指针边界的小问题应该多写写多记一下就会好了还有就是手写链表要常复习吧学习新......
  • day03 Redis
    day03RedisRedis是一个基于内存的key-value结构数据库,方便存储。1.1Redis服务启动与停止服务启动命令redis-server.exeredis.windows.conf修改Redis配置文件设置Redis服务密码,修改redis.windows.con重启Redis后,再次连接Redis时,需加上密码,否则连接失败。redis......
  • Day03-04英语名词
    Day03-04英语名词解释1.Commentanduncommentcode:对代码进行注释和取消注释。“Comment”:在代码中添加注释“uncomment”:删除注释。2.shortcut:快捷方式,简化的方法3.compatible:兼容的4.assign是一个英语单词,意思是“分配;指派;赋值”。5.primitive:“原始的;简单的;6.vulner......
  • Day03转义字符
    Day03转义字符\n:换行符,用于在文本中插入一个新行。\r:回车符,用于将光标移动到当前行的开头。\t:制表符,用于在文本中插入一个制表位。\":双引号,用于在字符串中插入一个双引号字符。\':单引号,用于在字符串中插入一个单引号字符。\\:反斜杠,用于在字符串中......