vue系统指令二

vue系统指令二

v-model:双向数据绑定

重点:双向数据绑定,只能用于表单元素,或者用于自定义组件

之前的文章里,我们通过v-bind,给<input>标签绑定了data对象里的name属性。当data里的name的值发生改变时,<input>标签里的内容会自动更新。

可我现在要做的是:我在<input>标签里修改内容,要求data里的name的值自动更新。从而实现双向数据绑定。该怎么做呢?这就可以利用v-model这个属性。

区别

  • v-bind:只能实现数据的单向绑定,从 M 自动绑定到 V。
  • v-model:只有v-model才能实现双向数据绑定。注意,v-model 后面不需要跟冒号,

注意:v-model 只能运用在表单元素中,或者用于自定义组件。常见的表单元素包括:input(radio, text, address, email…) 、select、checkbox 、textarea。

代码举例如下:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>

    <style>
        .father {
            height: 300px;
            width: 300px;
            background: pink;
        }

        .child {
            width: 200px;
            height: 200px;
            background: green;
        }
    </style>

</head>

<body>
    
    <div id="test">

        <form v-bind:action="url" >

            <input type="text" v-bind:value="url" >
            <input type="text" id="username" v-model="myAccount.username">
            <input type="password" id="pwd" v-model="myAccount.userpwd">
    
            <input type="submit" v-on:click="submit1" value="submit1">
    

        </form>

       
    </div>


    <script>
        var vm = new Vue({
            el: '#test',
            data: {
                url: "http://www.baidu.com",
                name: "dany",
                myAccount: {userName: "wenqun", "pwd": 123456}
            },
            methods: {
                submit1: function () {
                    alert(this.myAccount.userName + "  pwd=" + this.myAccount.pwd);
                }
            }
           
        })
    </script>

</body>

</html>

v-model实现计算器

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="https://cdn.jsdelivr.net/npm/vue@2.6.10/dist/vue.js"></script>

    <style>
        .father {
            height: 300px;
            width: 300px;
            background: pink;
        }

        .child {
            width: 200px;
            height: 200px;
            background: green;
        }
    </style>

</head>

<body>
    
    <div id="test">

        <input type="text" v-model="n1">
        <select v-model="opt">
            <option value="+"> + </option>
            <option value="-"> - </option>
            <option value="*"> * </option>
            <option value="/"> / </option>

        </select>

        <input type="text" v-model="n2">
        <input type="button" value="=" @click="calc">
        <input type="text" v-model="result">
       
    </div>


    <script>
        var vm = new Vue({
            el: '#test',
            data: {
                n1: 0,
                n2: 0,
                result: 0,
                opt: "+"
            },
            methods: {
                // calc: function () {
                //     switch(this.opt){
                //         case "+":
                //             this.result = parseInt(this.n1) + parseInt(this.n2)
                //             break;
                //         case "-":
                //             this.result = parseInt(this.n1) - parseInt(this.n2)
                //             break;
                //         case "*":
                //             this.result = parseInt(this.n1) *  parseInt(this.n2)
                //             break;
                //         case "/":
                //             this.result = parseInt(this.n1) / parseInt(this.n2)
                //             break;
                //     }
                // }
                calc(){
                    this.result = eval( 'parseInt(this.n1)' + this.opt + 'parseInt(this.n2)');
                }
            }
           
        })
    </script>

</body>

</html>

v-bind 绑定属性

设置CSS样式

传统我们给元素添加样式的方式如下

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <style>
        .my-red {
            color: red;
        }

        .my-thin {
            /* 设置字体的粗细 */
            font-weight: 200;
        }

        .my-italic {
            font-style: italic;
        }

        .my-active {
            /* 设置字符之间的间距 */
            letter-spacing: 0.5em;
        }
    </style>
</head>

<body>
    <h1 class="my-red my-thin">我是千古壹号,qianguyihao</h1>
</body>

</html>

上面的效果,我们还可以用Vue来写。这就引入了本段要讲的方式。

方式1: 数组

直接传递一个数组。注意:这里的 class 需要使用 v-bind 做数据绑定。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="vue2.5.16.js"></script>
    <style>
        .my-red {
            color: red;
        }

        .my-thin {
            /* 设置字体的粗细 */
            font-weight: 200;
        }

        .my-italic {
            font-style: italic;
        }

        .my-active {
            /* 设置字符之间的间距 */
            letter-spacing: 0.5em;
        }
    </style>
</head>

<body>
    <div id="app">

        <!-- 普通写法 -->
        <h1 class="my-red my-thin">我是千古壹号,qianguyihao</h1>

        <!-- vue的写法1:数组的形式 -->
        <h1 :class="['my-red', 'my-thin']">我是qianguyihao,千古壹号</h1>

    </div>

    <script>

        var vm = new Vue({
            el: '#app'
        });

    </script>
</body>

</html>

上方代码中,注意,数组里写的是字符串;如果不加单引号,就不是字符串了,而是变量。

方式2: 三元表达式
 <div id="test">


        <h1 class="my-red my-thin">common mathod </h1>
        <br>
        <h1 v-bind:class="['my-red', 'my-thin']">vue method</h1>.
        <br>
        # 三元表达式
        <h1 :class="[flag ? 'my-active':'']">sanyuan</h1>

    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                flag: false
            }
        });

    </script>
方式三:在数组中使用 对象 来代替 三元表达式(提高代码的可读性)

上面的写法二,可读性较差。于是有了写法三。

写法三:在数组中使用对象来代替三元表达式

代码如下:

<body>
    <div id="app">
        <!-- vue的写法3:在数组中使用对象来代替三元表达式。-->
        <h1 :class="[ {'my-active':flag} ]">我是qianguyihao,千古壹号</h1>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                flag: true
            }
        });
    </script>
</body>
方式四:直接使用对象
        <!-- vue的写法4:直接使用对象-->
        <!-- 在为 class 使用 v-bind 绑定 对象的时候,对象的属性是类名。由于 对象的属性名可带引号,也可不带引号,所以 这里我没写引号;  属性的值 是一个标识符 -->
        <h1 :class="{style1:true, style2:false}">我是qianguyihao,千古壹号</h1>

上方代码的意思是,给<h1>标签使用样式style1,不使用样式style2。注意:

1、既然class样式名是放在对象中的,这个样式名不能有中划线,比如说,写成:class="{my-red:true, my-active:false},是会报错的。

2、我们也可以对象通过存放在 data 的变量中。也就是说,上方代码可以写成:

<body>
    <div id="app">
        <!-- vue的写法4:直接使用对象-->
        <!-- 在为 class 使用 v-bind 绑定 对象的时候,对象的属性是类名。由于 对象的属性名可带引号,也可不带引号,所以 这里我没写引号;  属性的值 是一个标识符 -->
        <h1 :class="classObj">我是qianguyihao,千古壹号</h1>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                classObj:{style1:true, style2:false}
            }
        });
    </script>
</body>

设置style行内样式

方式1:直接在元素上通过 :style 的形式,书写样式对象。
        <h1 :style="{color: 'red', 'font-size': '20px'}">我是千古壹号,qianguyihao</h1>
方式2:将样式对象,定义到 data 中,并直接引用到 :style 中。
<body>
    <div id="app">
        <h1 :style="styleObj">我是千古壹号,qianguyihao</h1>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                styleObj: { color: 'red', 'font-size': '20px' }
            }
        });
    </script>
</body>
方式3:写法二只用到了一组样式。如果想定义多组样式,可以用写法三。
<body>
    <div id="app">
        <h1 :style="[ styleObj1, styleObj2 ]">我是千古壹号,qianguyihao</h1>
    </div>

    <script>
        var vm = new Vue({
            el: '#app',
            data: {
                styleObj1: { color: 'red', 'font-size': '20px' },
                styleObj2: { 'font-style': 'italic' }
            }
        });
    </script>
</body>

v-for使用的几种方式

作用:

根据数组中的元素遍历指定模板内容生成内容。

比如说,如果我想给一个ul中的多个li分别赋值1、2、3…。如果不用循环,就要挨个赋值:

<body>
  <div id="app">
    <ul>
      <li>{{list[0]}}</li>
      <li>{{list[1]}}</li>
      <li>{{list[2]}}</li>
    </ul>
  </div>
</body>

<script>
  var vm = new Vue({
    el: '#app',
    data: {
      list: [1, 2, 3]
    }

  });
</script>

为了实现上面的效果,如果我用v-for进行赋值,代码就简洁很多了:

<div id="test">
        <ul>
            <li v-for="item in name">{{item}}</li>
        </ul>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                name: ['dany','wenqun','tianzeng','larissa','wancy']
            }
        });

    </script>
使用方式
方式1:普通数组的遍历

针对如下类型的数组:

<script>
  new Vue({
    el: '#app',
    data: {
      arr1: [2, 5, 3, 1, 1],
    }
  });
</script>

将数组中的赋给li:

    <div id="test">
        <ul>
            <li v-for="(item, indx) in name">{{item}} -----{{indx}}</li>
        </ul>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                name: ['dany','wenqun','tianzeng','larissa','wancy']
            }
        });

    </script>

效果如下

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方式2:对象数组的遍历

如下数组形式

 <script>
        var vm = new Vue({
            el: '#app',
            data: {
                //对象数组
                dataList: [
                    { name: 'smyh', age: '26' },
                    { name: 'vae', age: '32' },
                    { name: 'xiaoming', age: '20' }
                ]
            }
        });
    </script>

遍历代码如下:

<div id="test">
        <ul>
            <li v-for="(item, indx) in dataList">{{item}}-------{{item.name}} ---{{item.age}}--{{indx}}</li>
        </ul>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                dataList: [
                    { name: 'smyh', age: '26' },
                    { name: 'vae', age: '32' },
                    { name: 'xiaoming', age: '20' }
                ]
            }
        });

    </script>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方式3:对象的遍历

针对如下数组

<script>
  new Vue({
    el: '#app',
    data: {
      obj1: {
        name: 'qianguyihao',
        age: '26',
        gender: '男'
      }
    }
  });
</script>
 <div id="test">
        <ul>
            <li v-for="(value, key, indx) in obj1">{{key}} ---{{value}}--{{indx}}</li>
        </ul>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                obj1: {
                    name: 'qianguyihao',
                    age: '26',
                    gender: 'femal'
      }
            }
        });

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

方式4:遍历数字、字符串
 
    <div id="test">
        <ul>
            <li v-for="(value, key, indx) in obj1">{{key}} ---{{value}}--{{indx}}</li>
        </ul>
        <ul>
            <!-- ??????? -->
            <!-- ??:???? v-for ??????,??? myCount ?? 1 ???? -->
        <li v-for="myCount in 10">{{myCount}}</li>
        <li v-for="myCount in obj1.name">{{myCount}}</li>
        </ul>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                obj1: {
                    name: 'qianguyihao',
                    age: '26',
                    gender: 'femal'
      }
            }
        });

    </script>

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

注意事项

注意:在 Vue 2.2.0+ 版本里,当在组件中使用 v-for 时,key 属性是必须要加上的。

这样做是因为:每次 for 循环的时候,通过指定 key 来标示当前循环这一项的唯一身份

当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。

为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。

key的类型只能是:string/number,而且要通过 v-bind 来指定。

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="vue2.5.16.js"></script>
</head>

<body>
    <div id="app">

        <div>
            <label>Id:
                <input type="text" v-model="id">
            </label>

            <label>Name:
                <input type="text" v-model="name">
            </label>

            <input type="button" value="添加" @click="add">
        </div>

        <!-- 注意: v-for 循环的时候,key 属性只能使用 number 或者 string -->
        <!-- 注意: key 在使用的时候,必须使用 v-bind 属性绑定的形式,指定 key 的值 -->
        <!-- 在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果 v-for 有问题,必须 在使用 v-for 的同时,指定 唯一的 字符串/数字 类型 :key 值 -->
        <p v-for="item in list" :key="item.id">
            <input type="checkbox">{{item.id}} --- {{item.name}}
        </p>
    </div>

    <script>
        // 创建 Vue 实例,得到 ViewModel
        var vm = new Vue({
            el: '#app',
            data: {
                id: '',
                name: '',
                list: [
                    { id: 1, name: 'smyh' },
                    { id: 2, name: 'vae' },
                    { id: 3, name: 'qianguyihao' },
                    { id: 4, name: 'xiaoming' },
                    { id: 5, name: 'xiaohong' }
                ]
            },
            methods: {
                add() { // 添加方法
                    this.list.unshift({ id: this.id, name: this.name })
                }
            }
        });
    </script>
</body>

</html>

v-if 设置元素的显示和隐藏

作用:

根据表达式的值的真假条件,来决定是否渲染元素,如果为false则不渲染(达到隐藏元素的目的),如果为true则渲染。

在切换时,元素和它的数据绑定会被销毁并重建。

举例:

举例如下:(点击按钮时,切换和隐藏盒子)

    
    <div id="test">
        <button v-on:click="toggle">show/hide</button>
        <div v-if="flag">I'm a police</div>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                flag:true
            },
            methods: {
                toggle() {
                    this.flag = !this.flag
                }
            }
        });

    </script>

点击button页面上的字会来回切换

v-show 设置元素的显示和隐藏(在元素上添加/移除style="display:none"属性)

作用:

根据表达式的真假条件,来切换元素的 display 属性。如果为false,则在元素上添加 display:none属性;否则移除display:none属性。

举例

如下:(点击按钮时,切换和隐藏盒子)我们直接把上一段代码中的v-if改成v-show就可以了:

    <div id="test">
        <button v-on:click="toggle">show/hide</button>
        <div v-show="flag">I'm a police</div>
    </div>

    <script>

        var vm = new Vue({
            el: '#test',
            data:{
                flag:true
            },
            methods: {
                toggle() {
                    this.flag = !this.flag
                }
            }
        });
    </script>
与v-if的区别
  1. v-if:每次都会重新添加/删除DOM元素
  2. v-show:每次不会重新进行DOM的添加/删除操作,只是在这个元素上添加/移除style="display:none"属性,表示节点的显示和隐藏。
优缺点
  1. v-if:有较高的切换性能消耗。这个很好理解,毕竟每次都要进行dom的添加/删除操作
  2. v-show:有较高的初始渲染消耗。也就是说,即使一开始v-show="false",该节点也会被创建,只是隐藏起来了。而v-if="false"的节点,根本就不会被创建。
  3. 如果元素涉及到频繁的切换,最好不要使用 v-if, 而是推荐使用 v-show
  4. 如果元素可能永远也不会被显示出来被用户看到,则推荐使用 v-if

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

未来五十年,智能科技将如何改变传统行业格局?

未来五十年内&#xff0c;随着人工智能&#xff08;AI&#xff09;和智能科技的不断发展&#xff0c;许多行业将面临被取代的风险。虽然这种趋势可能会带来一些担忧&#xff0c;但也将为人类社会带来巨大的变革。下面将详细探讨哪些行业可能会在未来被智能科技所取代。 ▶ 制造…

攻防世界fileclude题解

攻防世界fileclude题解 ​​ 题目要求file1和file2参数不能为空 且file2这个文件内容值为hello ctf&#xff0c;用php://input 然后POST体内输入hello ctf即可满足这个if条件 满足这个条件后就会包含file1变量所指定的那个文件。用php伪协议来跨目录包含一下flag.php文件就可以…

群组分析方法

目录 1.什么是群组分析方法 2.基本原理 3.群组分析方法分类 3.1.层次方法 3.2.划分方法 3.3.密度基方法 ​​​​​​​3.4.模型基方法 4.群组评估 5.应用步骤 1.什么是群组分析方法 群组分析&#xff08;Cluster Analysis&#xff09;是数据分析中的一种重要方法&…

【第3节】“茴香豆“:搭建你的 RAG 智能助理

目录 1 基础知识1.1.RAG技术的概述1.2 RAG的基本结构有哪些呢&#xff1f;1.3 RAG 工作原理&#xff1a;1.4 向量数据库(Vector-DB )&#xff1a;1.5 RAG常见优化方法1.6RAG技术vs微调技术 2、茴香豆介绍2.1应用场景2.2 场景难点2.3 茴香豆的构建&#xff1a; 3 论文快读4 实践…

Swift - Playground

文章目录 Swift - Playground1. 新建Playground2. View3. 图片4. ViewController5. Playground - 多Page6. 注释6.1 Playground的注释支持markup语法&#xff08;与markdown相似&#xff09;6.1.1 语法 Swift - Playground Playground可以快速预览代码效果&#xff0c;是学习语…

SpringCloud系列(15)--Eureka自我保护

前言&#xff1a;在上一章节中我们说明了一些关于Eureka的服务发现功能&#xff0c;也用这个功能进行接口的实现&#xff0c;在本章节则介绍一些关于Eureka的自我保护 1、Eureka保护模式概述 保护模式主要用于一组客户端和Eureka Server之间存在网络分区场景下的保护。默认情况…

chrome插件 脚本 使用和推荐

chrome插件使用 在极简插件中可以进行下载并进行安装, 内部有安装教程在极简插件中搜索"油猴",下载一个油猴插件,并安装,可以用于下载很多的用户脚本用户脚本下载地址Greasy Fork,里面有很多实用的用户脚本供下载,并在油猴中进行管理 推荐的插件 Tampermonkey 篡改…

动态规划---斐波那契数列模型

目录 一、斐波那契数列的基本概念 二、动态规划在斐波那契数列中的应用与优势 三、实际案例&#xff1a;使用动态规划解决斐波那契数列问题 四、动态规划问题的做题步骤 五、例题 1、第N个泰波那契数---点击跳转题目 2、三步问题----点击跳转题目 3、最小花费爬楼梯---…

SparkSQL---简介及RDD V.S DataFrame V.S Dataset编程模型详解

一、SparkSQL简介 SparkSQL&#xff0c;就是Spark生态体系中的构建在SparkCore基础之上的一个基于SQL的计算模块。SparkSQL的前身不叫SparkSQL&#xff0c;而叫Shark&#xff0c;最开始的时候底层代码优化&#xff0c;sql的解析、执行引擎等等完全基于Hive&#xff0c;总之Sha…

ElasticSearch:查询操作合集

先看下我的数据&#xff1a; 1、查询所有文档&#xff1a; GET /cartest/_search或者 GET /cartest/_search {"query": {"match_all": {}} }2、匹配查询&#xff1a; match匹配类型查询&#xff0c;会把查询条件进行分词&#xff0c;然后进行查询&…

el-table 三角形提示

<template><div><el-table :data"tableData" style"width: 100%"><el-table-column prop"ddd" label"日期2" width"150" /><el-table-column prop"ddd" label"日期2" width…

Apifox接口调试工具

1、Apifox简介 Apifox 是集 API 文档、API 调试、API Mock、API 自动化测试多项实用功能为一体的 API 管理平台&#xff0c;定位为 Postman Swagger Mock JMeter。旨在通过一套系统、一份数据&#xff0c;解决多个工具之间的数据同步问题。只需在 Apifox 中定义 API 文档&a…

线性模型算法-完结总结篇

简介 该篇文章就是在CSDN上更新的最终版本。 本文章将介绍&#xff1a;机器学习中的线性模型有关内容&#xff0c;我将尽可能做到 详细地介绍线性模型的所有相关内容,模块如下&#xff0c;希望这些将有助于读者了解这种最初步但却强大的算法&#xff1a; 线性回归逻辑回归 S…

Day22 SSH远程管理服务

sshd服务&#xff0c;系统自带&#xff0c;默认开机自启运行 云/物理服务器的安全组和防火墙默认放行该端口 软件包&#xff1a;openssh-server&#xff08;服务端&#xff09;&#xff1b;openssh-client&#xff08;客户端&#xff09;&#xff1b; 格式&#xff1a;ssh I…

抖音小店没有流量怎么办?这两点做对!别人羡慕你赚的盆满钵满

哈喽~我是电商月月 电商行业&#xff0c;说一句实在的话&#xff0c;每一年都有一批人说电商不好做&#xff0c;但每一年都有人从电商行业赚到钱 做抖音小店没流量出不出单的原因其实很简单&#xff0c;就是思维不同&#xff0c;导致的结果差异 我们做抖店并不是赚一单就满足…

三维点云处理-滤波器

前言&#xff1a; 点云中往往会存在很多噪声&#xff0c;也就是常说的离群点&#xff0c;如下左图中的黑色圈位置&#xff0c;可能会对有效数据的提取分析造成影响&#xff0c;因此在数据分析前通常会考虑采用滤波器&#xff08;Filter&#xff09;等手段进行一些预处理的操作。…

东北大学工程训练CNC加工中心(坤图)

东北大学加工中心&#xff08;CNC&#xff09;采用的系统为FANUC系统。 要求学生自主设计图样&#xff0c;编写GCODE文件&#xff0c;操作电脑使机床按设计路径铣出图案。 本人设计的图样为坤坤图 图为用CAD设计绘制的图样。 计算坐标&#xff0c;设计铣刀轨迹&#xff0c;得…

解析社交电商:从私域流量到移动突破口

亲爱的朋友们&#xff0c;我是微三云的周丽&#xff0c;一名专注于私域电商模式创新的探索者。 随着互联网的迅速发展和科技的不断进步&#xff0c;社交电商作为新型商业模式不断崛起。在这个时代&#xff0c;私域流量、社群电商、社区电商以及移动电商等概念层出不穷&#xf…

成功密码期刊投稿简介

《成功密码》综合版是由国家新闻出版总署批准&#xff0c;江西省教育厅主管的正规期刊&#xff0c;"以培养担当民族复兴大任的时代新人为着眼点&#xff0c;强化教育引导、实践养成、制度保障"&#xff0c;倡导教育研究的学术水准&#xff0c;注重理论与实践的有机结…

Linux消息队列信号量(了解)

消息队列 要实现进程间通信我们必须得让不同的进程看到同一份资源&#xff0c; 根据这个资源的不同&#xff08;文件缓冲区&#xff0c; 内存块&#xff0c; 队列&#xff09; 我们将通信方式分为管道&#xff0c;共享内存&#xff0c;以及我们接下来要讲的消息队列。 消息队…