vue2语法-简略版

news2024/12/27 11:44:25
 内容不全,发现看官方文档效果更好。

介绍 — Vue.js

API — Vue.js

二、Vue指令

2.1 内容渲染指令 v-text,v-html

内容渲染指令用来辅助开发者渲染DOM元素的文本内容,常用的内容渲染指令有如下2个:

  • v-text(类似innerText)

使用语法:<p v-text="uname">hello</p>,意思是将uname值渲染到p标签中
类似innerText,使用该语法,会覆盖p标签原有内容

  • v-html(类似innerHTML)

使用语法:<p v-html="intro">hello</p>,意思是将intro值渲染到p标签中
类似innerHTML,使用该语法,会覆盖p标签原有内容,能够将HTML标签的样式呈现出来

2.2 条件渲染指令 v-show,v-if,v-else,v-else-if

条件判断指令,用来辅助开发者按需控制DOM的显示与隐藏。条件渲染指令有如下两个,分别是:

  • v-show

作用:控制元素显示隐藏
语法:v-show=“表达式” 表达式值为true显示,false隐藏
原理:切换display:none控制显示隐藏
场景:频繁切换显示隐藏的场景

  • v-if

作用:控制元素显示隐藏
语法:v-if=“表达式” 表达式值为true显示,false隐藏
原理:基于条件判断,是否创建或移除元素节点
场景:要么显示,要么隐藏,不频繁切换的场景

2.3 事件绑定指令 v-on (@)

为DOM注册事件,语法如下:

  • <button v-on:事件名=“内联语句”>按钮
  • <button v-on:事件名=“处理函数”>按钮
  • <button v-on:事件名=“处理函数(实参)”>按钮
  • v-on 简写为 @
  • v-on:click 可以缩写为 @click,其中@代表v-on:
2.4 属性绑定指令 v-bind (:)
  • 作用:动态设置html的标签属性,比如:src、url、title
  • 语法:v-bind:属性名=“表达式”
  • v-bind 缩写为 :
  • v-bind:href 可以缩写为 :href
2.5 v-bind对样式控制的增强
2.5.1 操作class

为了方便开发者进行样式控制,Vue扩展了v-bind的语法,可以针对class类名和style行内样式进行控制。

语法

  • 普通形式:

<div> :class = "对象/数组">这是一个div</div>
  • 对象语法: 
<div class="box" :class="{ 类名1: 布尔值, 类名2: 布尔值 }"></div>

当class动态绑定的是对象时,键就是类名,值就是布尔值,如果值是true,就有这个类,否则没有这个类

适用场景:一个类名来回切换

  • 数组语法:
<div class="box" :class="[ 类名1, 类名2, 类名3 ]"></div>

当class动态绑定的是数组时,数组中所有的类都会添加到盒子上,本质就是一个class列表

使用场景:批量添加或删除类

2.5.2 切换高亮
li a.active {
  background-color: #e01222;
  color: #fff;
}
<body>
  <div id="app">
    <ul>
      <li v-for="(item,index) in list" :key="item.id" @click="activeIndex=index">
        <a :class="{active:index==activeIndex?true:false}" href="#">{{item.name}}</a>
      </li>
    </ul>
  </div>
  <script src="./vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        activeIndex: 0,
        list: [
          { id: 1, name: '京东秒杀' },
          { id: 2, name: '每日特价' },
          { id: 3, name: '品类秒杀' }
        ]
      }
    })
  </script>
</body>
2.5.3 操作style
<div class="box" :style="{ CSS属性名1: CSS属性值, CSS属性名2: CSS属性值 }"></div>

2.6 列表渲染指令

Vue提供了v-for列表渲染指令,用来辅助开发者基于一个数组来循环渲染一个列表结构。

v-for指令需要使用(item , index) in arr形式的特殊语法,其中:

  • item是数组中的每一项
  • index是每一项的索引,不需要可以省略
  • arr是被遍历的数组
2.6.1 v-for中的key

语法:key=“唯一值”

作用:给列表项添加唯一的标识。便于Vue进行列表项的正确排序复用

为什么加key:Vue的默认行为会尝试原地修改元素(就地复用

注意:

  1. key的值只能是字符串或数字类型
  2. key的值必须具有唯一性
  3. 推荐使用id作为key(唯一),不推荐使用index作为key(会变化,不对应)
2.9 双向绑定指令 v-model

所谓双向绑定就是:

  1. 数据改变后,呈现的页面结果会更新
  2. 页面结果更新后,数据也会随之改变

语法:v-model=“变量”

作用:给表单元素(input、radio、select)使用,双向绑定数据,可以快速获取或设置表单元素内容

2.10 v-model在其它表单元素的使用

常见的表单元素都可以用v-model绑定关联,快速获取或设置表单元素的值

它会根据控件类型自动选取正确的方法来更新元素

输入框 input:text ——> value
文本域 textarea ——> value
复选框 input:checkbox ——> checked
单选框 input:radio ——> checked
下拉菜单 select ——> value

<div id="app">
    <h3>小黑学习网</h3>

    姓名:
    <input type="text" v-model="username">
    <br><br>

    是否单身:
    <input type="checkbox" v-model="isSingle">
    <br><br>

    <!-- 
      前置理解:
        1. name:  给单选框加上 name 属性 可以分组 → 同一组互相会互斥
        2. value: 给单选框加上 value 属性,用于提交给后台的数据
      结合 Vue 使用 → v-model
    -->
    性别:
    <input v-model="gender" type="radio" name="gender" value="1">男
    <input v-model="gender" type="radio" name="gender" value="2">女
    <br><br>

    <!-- 
      前置理解:
        1. option 需要设置 value 值,提交给后台
        2. select 的 value 值,关联了选中的 option 的 value 值
      结合 Vue 使用 → v-model
    -->
    所在城市:
    <select v-model="city">
      <option value="101">北京</option>
      <option value="102">上海</option>
      <option value="103">成都</option>
      <option value="104">南京</option>
    </select>
    <br><br>

    自我描述:
    <textarea v-model="desc"></textarea>

    <button>立即注册</button>
  </div>
  <script src="./vue.js"></script>
  <script>
    const app = new Vue({
      el: '#app',
      data: {
        username: '',
        isSingle: false,
        gender: 1,
        city: '102',
        desc: "暂无"
      }
    })
  </script>
2.11 指令修饰符

什么是指令修饰符?

所谓指令修饰符就是通过“.”指明一些指令后缀,不同的后缀封装了不同的处理操作 ->简化代码

按键修饰符

  • @keyup.enter:当点击enter键的时候才触发

v-model修饰符

  • v-model.trim:去除首位空格
  • v-model.number:转数字

事件修饰符

  • @事件名.stop:阻止冒泡
  • @事件名.prevent:阻止默认行为
  • @事件名.stop.prevent:可以连用,即阻止事件冒泡也阻止默认行为

三、computed与methods属性

3.1基础语法

computed概念

基于现有的数据,计算出来的新属性。依赖的数据变化,自动重新计算。

3.2 computed计算属性 VS methods方法

computed计算属性

作用:封装了一段对于数据的处理,求得一个结果

methods计算属性
作用:给Vue实例提供一个方法,调用以处理业务逻辑

总结

  1. computed有缓存特性,methods没有缓存
  2. 当一个结果依赖其他多个值时,推荐使用计算属性
  3. 当处理业务逻辑时,推荐使用methods方法,比如事件的处理函数
3.3 计算属性的完整写法

计算属性默认的简写,只能读取访问,不能“修改”,如果要修改,需要写计算属性的完整写法。

四、watch侦听器(监听器)

4.1 基础语法

作用:

监视数据变化,执行一些业务逻辑或异步操作

语法:

  • watch同样声明在跟data同级的配置项中
  • 简单写法:简单类型数据直接监视
  • 完整写法:添加额外配置项
data: { 
  words: '苹果',
  obj: {
    words: '苹果'
  }
},

watch: {
  // 该方法会在数据变化时,触发执行
  数据属性名 (newValue, oldValue) {
    一些业务逻辑 或 异步操作。 
  },
  '对象.属性名' (newValue, oldValue) {
    一些业务逻辑 或 异步操作。 
  }
}
4.3 完整写法

语法

完整写法,添加额外的配置项

  • deep:true 对复杂类型进行深度监听
  • immediate:true 初始化立即执行一次
<template>
  <div>
    <!-- 条件选择框 -->
    <div class="query">
      <span>翻译成的语言:</span>
      <select  v-model="obj.lang">
        <option value="italy">意大利</option>
        <option value="english">英语</option>
        <option value="german">德语</option>
      </select>
    </div>

    <!-- 翻译框 -->
    <div class="box">
      <div class="input-wrap">
        <span><i>⌨️</i>文档翻译</span>
      </div>
      <div class="input-wrap">
        <textarea v-model="obj.words"></textarea>
      </div>
      <div class="Qinput-wrap">
        <textarea v-model="words"></textarea>
      </div>
      <div class="output-wrap">
        <div class="transbox">{{result}}</div>
      </div>
    </div>
  </div>
</template>

<script>


export default {
  data() {
    return {
      words:'',
      obj: {
        words: '',
        lang: 'english',
      },
      result: '',//翻译结果
      timer: null//延时器i
    }
  },
  watch: {
    // //该方法在数据变化时调用执行
    // words(newValue, oldValue) {
    //   console.log("", newValue, oldValue)
    //   clearTimeout(this.timer)
    //   this.timer = setTimeout(async () => {
    //     var num = newValue.length + 101;
    //     this.result = Math.floor(Math.random() * num);
    //   }, 300)
    // },

    // 'obj.words'(newValue) {
    //   //防抖:延迟执行
    //   clearTimeout(this.timer)
    //   this.timer = setTimeout(async () => {
    //     var num = newValue.length + 101;
    //     this.result = Math.floor(Math.random() * num);
    //   }, 300)
    // },

    words: {
      handler(newValue, oldValue) {
        console.log("words handler", newValue, oldValue)
        clearTimeout(this.timer)
        this.timer = setTimeout(async () => {
          var num = newValue.length + 101;
          this.result = Math.floor(Math.random() * num);
        }, 300)
      },
      immediate: true,
    },

    obj: {
      deep: true, 
      immediate: true,
      handler(newValue, oldValue) {
        console.log("1:", newValue, oldValue)
        clearTimeout(this.timer)
        this.timer = setTimeout(async () => {
          var num = newValue.words.length + 101;
          this.result = Math.floor(Math.random() * num);
        }, 300)
      }
    },
  },

}
</script>

九、组件

9.1 组件的三大组成部分
9.1.1 scoped解决样式冲突

默认情况写在组件中的样式会全局生效,因此很容易造成多个组件之间的样式冲突问题。

  • 全局样式:默认组件中的样式会作用到全局,任何一个组件中都会受到此样式的影响。
  • 局部样式:可以给组件加上scoped属性,可以让样式只作用于当前组件。
<style scoped></style>
9.1.2 data必须是一个函数

一个组件的data选项必须是一个函数。目的是为了:保证每个组件实例,维护独立的一份数据对象。

每次创建新的组件实例,都会执行一次data函数,得到一个新对象。

<script>
export default {
  data: function () {
    return {
      count: 100,
    }
  },
}
</script>
9.2组件通信
9.2.1父子通信

什么是组件通信

组件通信,就是指组件与组件之间的数据传递

  • 组件的数据是独立的,无法直接访问其他组件的数据。
  • 想使用其他组件的数据,就需要组件通信

组件关系分类

  • 父子关系
  • 非父子关系

通信解决方案

父子关系:props 和 $emit

非父子关系:provide & inject 和 eventbus

通用解决方案:Vuex

父子通信流程

  • 父组件通过props将数据传递给子组件
  • 子组件利用$emit通知父组件修改更新

父向子传值步骤

  1. 给子组件以添加属性的方式传值
  2. 子组件内部通过props接收
  3. 模板中直接使用props接收的值

子向父传值步骤

  1. $emit触发事件,给父组件发送消息通知
  2. 父组件监听$emit触发的事件
  3. 提供处理函数,在函数的形参中获取传过来的参数

9.2.2 props
9.2.2.1 什么是props

props是组件上注册的一些自定义属性

可以向子组件传递数据

特点:

  • 可以传递任意数量的prop
  • 可以传递任意类型的prop
9.2.2.2 props校验

作用:为组件的prop指定验证要求,不符合要求,控制台就会有错误提示,帮助开发者快速发现错误

语法:

  • 类型校验
  • 非空校验
  • 默认值
  • 自定义校验
9.2.2.3 props校验完整写法
props: {
  校验的属性名: {
    type: 类型,  // Number String Boolean ...
    required: true, // 是否必填
    default: 默认值, // 默认值
    validator (value) {
      // 自定义校验逻辑
      return 是否通过校验
    }
  }
},
9.2.2.4 props和data、单向数据流

共同点:都可以给组件提供数据

区别:

  • data的数据是自己的,可以随便改
  • prop的数据是外部的,不能直接改,要遵循单向数据流

单向数据流:父级props的数据更新,会向下流动,影响子组件。这个数据流动是单向的

9.2.3非父子通信 略
9.2.3.1 event bus事件总线 略

9.2.3.2  provide&inject 略

十、进阶语法

10.1 v-model原理

作用

提供数据的双向绑定

  • 数据变,视图跟着变 :value
  • 视图变,数据跟着变 @input

语法

v-model本质上是一个语法糖。例如应用在输入框上,就是value属性和input事件的合写

<template>
  <div id="app" >
    <input v-model="msg" type="text">
    <input       :value="msg"     @input="msg = $event.target.value" type="text">
    <input v-bind:value="msg" v-on:input="msg = $event.target.value" type="text">
  </div>
</template>

注意

$event用于在模板中,获取事件的形参

:model是Element属性

:model相当于v-bind:model的缩写—— 对model属性 绑定对应的data

10.2 v-model简化代码

目标

父组件通过v-model简化代码,实现子组件和父组件数据双向绑定

如何简化

v-model其实就是:value和@input事件的简写

  • 子组件:props通过value接收数据,事件触发input
  • 父组件:v-model直接绑定数据

父组件

<BaseSelect v-model="selectId"></BaseSelect>

子组件

<select :value="value" @change="handleChange">...</select>
props: {
  value: String
},
methods: {
  handleChange (e) {
    this.$emit('input', e.target.value)
  }
}

10.3 表单类组件封装

需求目标

实现子组件和父组件数据的双向绑定

App.vue

<template>
  <div class="app">
    <BaseSelect :cityId="selectId" @changeId="selectId = $event"></BaseSelect>
  </div>
</template>

<script>
import BaseSelect from './components/BaseSelect.vue'
export default {
  data() {
    return {
      selectId: '102',
    }
  },
  components: {
    BaseSelect,
  }
}
</script>

<style></style>

BaseSelect.vue

<template>
  <div>
    <select :value="cityId" @change="handleChange">
      <option value="101">北京</option>
      <option value="102">上海</option>
      <option value="103">武汉</option>
      <option value="104">广州</option>
      <option value="105">深圳</option>
    </select>
  </div>
</template>

<script>
export default {
  props: {
    cityId: String
  },
  methods: {
    handleChange(e) {
      this.$emit('changeId', e.target.value)
    }
  }
}
</script>

<style></style>
10.4 .sync修饰符

作用

可以实现子组件与父组件数据的双向绑定,简化代码

简单理解:子组件可以修改父组件传过来的props值

场景

封装弹框类的基础组件,visible属性true显示false隐藏

本质

.sync修饰符就是 :属性名 和 @update:属性名 合写

语法

父组件

//.sync写法
<BaseDialog :visible.sync="isShow" />
--------------------------------------
//完整写法
<BaseDialog :visible="isShow" @update:visible="isShow = $event" />

子组件

props: {
  visible: Boolean
},

this.$emit('update:visible', false)
10.5 ref 和 $refs

作用

利用 ref 和 $refs 可以用于获取dom元素或组件实例

特点

查找范围在当前组件内(更精确稳定)

10.5.1 获取dom语法
  • 给要获取的盒子添加ref属性

<div ref="mychart" class="base-chart-box">子组件</div>
  • 获取时通过$refs获取

const myChart = echarts.init(this.$refs.mychart)

注意

之前只用document.querySelect(‘.base-chart-box’)获取的是整个页面中的盒子

10.5.2 获取组件语法
  • 目标组件添加ref属性
<BaseForm ref="baseForm"></BaseForm>
  • 恰当时机,通过this.$refs.xxx,获取目标组件,就可以调用组件对象里面的方法
this.$refs.baseForm.组件方法()
10.6 异步更新、&nextTick

需求

编辑标题,编辑框自动聚焦

  1. 点击编辑,显示编辑框    2 .让编辑框立刻获取焦点

问题

“显示之后”,立刻获取焦点是不能成功的     原因:Vue是异步更新DOM(提升性能)

解决方案

$nextTick : 等DOM更新后,才会触发执行此方法里的函数体

this.$nextTick(() => {
  this.$refs.inp.focus()
})

十一、自定义指令 略

十二、插槽

12.1 默认插槽

作用

让组件内部的一些结构支持自定义

语法

使用slot

<template>
  <div>
    <slot></slot>
  </div>
</template>

<template>
  <div>
    <AppSon>slot中显示内容</AppSon>
  </div>
</template>

显示效果

12.3 具名插槽

作用

多个slot使用name属性区分名字

语法

v-slot简写

v-slot写起来太长,vue给我们提供了一个简单写法 #

在vue2.6.0之前使用slot="插槽名"定义。

<template>
  <div>
    <slot name="head">默认数据</slot>
    <slot name="content"></slot>
    <slot name="footer"></slot>
  </div>
</template>

<template>
  <div>
    <AppSon >
      <template v-slot:head>slot head中显示内容</template>
      <template v-slot:content>slot content中显示内容</template>
      <template v-slot:footer>slot footer中显示内容</template>
    </AppSon>
--------------------------
    <AppSon >
      <template #head>slot head中显示内容</template>
      <template #content>slot content中显示内容</template>
      <template #footer>slot footer中显示内容</template>
    </AppSon>
--------------------------
    <AppSon >
      <template #head></template>
      <template #content>slot content中显示内容</template>
      <template #footer>slot footer中显示内容</template>
    </AppSon>
  </div>
</template>

显示效果

12.4 作用域插槽 略

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1521955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

一文全面了解向量数据库

1. 什么是向量数据库&#xff1f;** 首先&#xff0c;我们需要理解什么是向量&#xff1f; 向量是基于不同特征或属性来描述对象的数据表示。每个向量代表一个单独的数据点&#xff0c;例如一个词或一张图片&#xff0c;由描述其许多特性的值的集合组成。这些变量有时被称为“…

Linux内核--基本概念/基本结构和组件

提示&#xff1a;本系列文章重点学习Linux内核 Linux内核--基本概念/基本结构和组件 简介一、基础概念1.六项工作内容2.根文件系统&#xff08;Root File System&#xff09;&#xff1a;3.交叉编译&#xff08;Cross-Compilation&#xff09;&#xff1a;4.设备树&#xff08;…

释放人工智能的力量:GPU服务器托管和高电机柜托管的关键作用

随着人工智能技术的不断发展&#xff0c;GPU服务器托管和高电机柜托管也变得愈发重要。这些技术在人工智能领域发挥着关键作用&#xff0c;为AI算法的训练和推理提供了强大的计算支持。 GPU服务器托管是指将GPU服务器放置在专门的数据中心中&#xff0c;通过云服务提供商提供的…

【敬伟ps教程】制图操作

文章目录 一寸照片制作自动生成全景照片服装操控变形内容识别比例调图画笔高级设置复制技术一寸照片制作 一寸照片规格: 2.5cm*3.5cm 1、新建文档 2、将照片拖拽至2.5*3.5cm文档中,调整至合适大小(人像的面部居中在文档中),可以使用自由变换(Ctrl+T)来调整,按住 Alt 等…

flutter 开发app可以做的事情

热更新文件/图片 预览组件/文件上传分片/动态多语言/兼容web缓存管理页面动画封装公用组件库日志系统/日志规范/错误定位低代码实现/探索/落地网络延迟脚本字体包优化web 页面浏览器刷新没有历史路径&#xff0c;导致报错选择多语言之后&#xff0c;退出再次进入&#xff0c;没…

Tiktok在线网页版和Tiktok安卓解锁版教程(Tiktok免登录国内直接看)

TikTok和抖音作为众所周知的一对兄弟&#xff0c;所开创的市场前景不可估量。它们不仅颠覆了很多传统认知&#xff0c;也直接让更多人接受了这些新奇事物。然而&#xff0c;TikTok的版本受限于国外&#xff0c;需要特定网络环境&#xff0c;一旦识别为国内&#xff0c;将无法使…

pytorch 入门基础知识二(Pytorch 02)

一 微积分 1.1 导数和微分 微分就是求导&#xff1a; %matplotlib inline import numpy as np from matplotlib_inline import backend_inline from d2l import torch as d2l def f(x):return 3 * x ** 2 - 4 * x 定义&#xff1a; 然后求 f(x) 在 x 1 时的导数&#xff…

数据结构:基于数组实现简单的数据缓存区(简单队列)

1 前言 在我们使用CAN或者以太网调试时&#xff0c;经常需要缓存最近n次收到的数据&#xff0c;以便于我们对数据进行分析。 实现这一想法我们很容易就会想到队列&#xff0c;队列就是一种先进先出的数据结构&#xff0c;之前在《数据结构&#xff1a;基于数组的环形队列&…

C#Socket通信实现

1.编写服务端代码&#xff0c;以原石兑换码为例&#xff08;分别建立两个控制台应用&#xff0c;一个用于服务端&#xff0c;一个用于客户端&#xff09; using System.Net.Sockets; using System.Net; using System.Text;namespace 网络游戏服务器 {internal class Program{s…

机器学习是什么?

机器学习是一种人工智能&#xff08;AI&#xff09;的分支&#xff0c;其主要目标是使计算机系统能够通过数据和经验来改进和学习&#xff0c;而无需明确地编程。在机器学习中&#xff0c;计算机系统会通过对大量数据进行学习和分析&#xff0c;从中发现模式和规律&#xff0c;…

LeetCode每日一题——移除元素

移除元素OJ链接&#xff1a;27. 移除元素 - 力扣&#xff08;LeetCode&#xff09; 题目&#xff1a; 思路&#xff1a; 题目给定要求只能使用O(1)的额外空间并且原地修改输入数组&#xff0c;然后返回移除后的数组行长度。那 么我们就可以确我没有办法建立临时的数组存放我…

总要做一回书里的国风少女吧,女儿的新中式套装美出新高度了~

超有质感的新中式国风短袖 采用经典立领设计 活里内衬柔软舒适 搭配浅色系马面裙 如书中温婉气质的千金小姐~

20240304 json可以包含复杂数组(数组里面套数组)

欣赏一下我的思维&#xff0c;它会以漫画&#xff0c;表格&#xff0c;文字。。。各种各样的形式呈现 对于问题1问题2 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式&#xff0c;易于人阅读和编写&#xff0c;同时也易于机器解析和生成。JSON本质上是一种文本…

【MASM汇编语言快速入门】8086MASM汇编深入理解指令对标志位的影响

8086MASM汇编深入理解指令对标志位的影响 文章目录 8086MASM汇编深入理解指令对标志位的影响0. 指令对标志位影响1. 指令对标志位影响速查表2. flags标志寄存器: 标志位含义解读flags1. 状态标志cf, pf, af, zf, sf, of2. 控制标志df, if, tf 详解&#xff1a;1. 传送指令2. 算…

管理类联考–复试–政治--二十大--记忆宫殿

文章目录 整体记忆宫殿门床头柜床书桌阳台 口诀记忆法 整体 记忆宫殿 要有逻辑的放到房间了 何为逻辑&#xff0c;如下大佬总结的便是&#xff0c;或者可自行总结&#xff0c;有前后顺序&#xff0c;做事逻辑即可 第一步&#xff1a;将逻辑的点放到房间里的点&#xff0c;…

旅游管理系统 |基于springboot框架+ Mysql+Java+Tomcat的旅游管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 目录 前台功能效果图 管理员功能登录前台功能效果图 系统功能设计 数据库E-R图设计 lunwen参考 摘要 研究…

LCD屏的应用

一、LCD屏应用 Linux下一切皆文件&#xff0c;我们的LCD屏再系统中也是一个文件&#xff0c;设备文件&#xff1a;/dev/fb0。 如果要在LCD屏显示数据&#xff0c;那我们就可以把数据写入LCD屏的设备文件。 1.显示颜色块 LCD屏分辨&#xff1a;800*480 像素 32位:说明一个像…

一文搞懂PCL中自定义点云类型的构建与函数使用

上周猛男快乐开发时遇到个bug&#xff0c;要用pcl的函数对自定义的点云进行处理。一起解决问题时遇到了很多问题&#xff0c;解决后整理出来分享给各位参考&#xff0c;以免踩一样的坑&#x1f60a;。文章中自定义的点我用PointT来表示&#xff0c;自定义点云一般指的是pcl::Po…

C++:类之六脉神剑——默认成员函数

个人主页&#xff1a;日刷百题 系列专栏&#xff1a;〖C/C小游戏〗〖Linux〗〖数据结构〗 〖C语言〗 &#x1f30e;欢迎各位→点赞&#x1f44d;收藏⭐️留言&#x1f4dd; ​ ​ 一、默认成员函数 如果一个类中什么成员都没有&#xff0c;简称为 空类 。 空类中真的什么都…

linux最佳入门(笔记)

1、内核的主要功能 2、常用命令 3、通配符&#xff1a;这个在一些启动文件中很常见 4、输入/输出重定向 意思就是将结果输出到别的地方&#xff0c;例如&#xff1a;ls标准会输出文件&#xff0c;默认是输出到屏幕&#xff0c;但是用>dir后&#xff0c;是将结果输出到dir文…