Vue介绍、窗体内操作、窗体间操作学习

news2024/12/26 11:14:27

系列文章目录

第一章 基础知识、数据类型学习
第二章 万年历项目
第三章 代码逻辑训练习题
第四章 方法、数组学习
第五章 图书管理系统项目
第六章 面向对象编程:封装、继承、多态学习
第七章 封装继承多态习题
第八章 常用类、包装类、异常处理机制学习
第九章 集合学习
第十章 IO流、多线程学习
第十一章 仓库管理系统项目
第十二章 员工管理系统、多表查询、反射实现DBHelper学习
第十三章 DML、DDL、数据库对象学习
第十四章 网络编程、各种标签、CSS学习
第十五章 ECMAScript、BOM学习
第十六章 DOM、jQuery学习
第十七章 servlet、jsp、Cookie、Ajax学习
第十八章 融资管理系统项目
第十九章 MyBatis框架学习
第二十章 逆向工程、Spring框架IOC、AOP学习
第二十一章 SpringMVC框架学习
第二十二章 SpringBoot框架学习
第二十三章 招聘网站项目
第二十四章 Vue介绍、窗体内操作、窗体间操作学习


文章目录

  • 系列文章目录
  • 前言
  • 一、Vue介绍
    • 1. Vue框架介绍
    • 2. Vue组成部分
    • 3. Vue编程环境
  • 二、Vue窗体内操作
    • 1. 使用变量
    • 2. 渲染概念
    • 3. 条件渲染v-if / v-show
      • 3.1 条件渲染分类
      • 3.2 v-if/v-show代码示例
    • 4. 列表渲染v-for
    • 6. Css改变样式
    • 7. 表单处理——双向数据绑定v-model
      • 7.1 双向数据绑定v-model介绍
      • 7.2 代码实现
  • 三、Vue窗体间操作
    • 1. 窗体跳转
    • 2. 窗体间互相传值
      • 2.1 代码
      • 2.2 运行结果
      • 2.3 解析
      • 2.2.1 父窗体App传值到子窗体Menu使用props
      • 2.2.2 子窗体Menu传值到父窗体App使用自定义事件$emit
    • 3. 窗体的生命周期
      • 3.1 代码
      • 3.2 运行结果
  • 四、代码文件
    • 1. demo1.vue
    • 2. HelloWorld.vue
    • 3. Menu.vue
    • 4. App.vue
  • 总结


前言

本文会讲述:
Vue介绍;
窗体内操作;
窗体间操作。

在下是宇宙人,是称霸宇宙的究极生命体!!!


一、Vue介绍

1. Vue框架介绍

Vue框架是一款用于构建用户界面的 JavaScript 框架。它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。无论是简单还是复杂的界面,Vue 都可以胜任。

2. Vue组成部分

由三种语法构成

<template>
此处编写html组件标签
</template>

<script>
此处编写JavaScript函数变量
</script>

<style>
此处编写CSS样式
</style>

3. Vue编程环境

使用VSCode进行编程,其中安装了Vue相关插件,同时安装了Node.js进行运行

二、Vue窗体内操作

全部代码可以在总结前取到!!!
效果展示图同上位置!!!

代码结构:
在这里插入图片描述
所用到文件:demo1.vue、HelloWorld.vue、Menu.vue、App.vue(主要)

1. 使用变量

在Vue中,可以通过使用双大括号{{ 变量名 }}来在模板中引用变量,并将其作为文本内容进行显示。Vue的模板语法允许在双大括号中使用表达式,可以在大括号内使用任何有效的JavaScript表达式。标签属性里用不需要{{}}
在template部分:

<a href="https://blog.csdn.net/howwickhappy">{{ mess }}</a>

在script部分:

<script>
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      mess: "点击跳天选之人"
  }
}
</script>

运行结果:
在这里插入图片描述
在Vue中,script部分的变量必须放在
data() {return {变量1,变量2,变量3,变量4}}
两层大括号中
理由:
data()在这里虽然是用于存储变量的,但是其实是一个方法,html要使用这些变量时,其实默认调用了data方法,然后去找到这个变量,然后获取返回值

2. 渲染概念

在Vue中,渲染是指将Vue模板中的数据和逻辑转换为最终的可视化输出的过程。

3. 条件渲染v-if / v-show

3.1 条件渲染分类

条件渲染分为两种:v-if和v-show

两者有什么区别呢?
v-if:是在渲染元素前判断,if中的值是否为true,如果是,则渲染本元素,否则不进行渲染,是惰性的
v-show:是在渲染元素后判断,是否为true,如果是,则显示本元素,否则隐藏本元素
两者对比:v-if有更高的切换开销;v-show有更高的初始渲染开销
因此,如果需要频繁地切换,则使用v-show好;如果运行时条件改变较少,则使用v-if好

3.2 v-if/v-show代码示例

在template部分:

<ul>
  <li v-show="boo">起床吃早饭</li>
  <li>回去睡一觉</li>
  <li>起床吃午饭</li>
  <li>回去睡一觉</li>
  <li>起床吃晚饭</li>
  <li v-if="boo">突然一激灵</li>
  <li v-else>回去睡一觉</li>
</ul>

在script部分:

<script>
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      mess: "点击跳天选之人",
      boo: false
  }
}
</script>

运行结果:
在这里插入图片描述
我们使用boo布尔值变量来控制各个元素的显示与否,需要注意的是:v-if/v-else还有v-else-if作为同类
在这里提下:
ul和ol的区别:
ol标签内的子标签会以
1、回去睡一觉
2、回去睡一觉
3、回去睡一觉
的有序方式标注,ul内会以
·回去睡一觉
·回去睡一觉
·回去睡一觉
的无序方式标注

4. 列表渲染v-for

在template部分:

<select style="width: 100;height: fit-content;" @change="method1">
  <option v-for="(a, i) in names" :key="i">{{ a }}</option>
</select>

@change="method1"是方法的使用,大家不用着急,马上就会讲到
在script部分:

<script>
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
  		names: ["权拳到肉", "纸上谈兵", "严阵以待", "金戈铁马", "鸡飞蛋打"]
    }
  }
</script>

运行结果:
在这里插入图片描述

{{ a }} 此子标签使用v-for指令遍历names数组,并生成option标签: **(a, i) in names** 表示将数组的所有元素赋值给a变量,且i作为下标; **:key="i"** 可以获取i变量的值,并作为此option的key,以便后期处理; **{{ a }}** 代表a变量的值作为选项的文本内容 ## 5. 事件处理v-on **在template部分:** ```html
编号姓名年龄性别
{{ i }}{{ e.name }}{{ e.age }}{{ e.sex }}
``` **在script部分:** ```javascript ``` **运行结果:** ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/bdd2baf1263f4d1e9a0feae06e309f60.png) ![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/3cd7d72a16bc4d2a8cc381d2a62437a2.png) 上图第一个是show函数的弹窗,对应列表的点击事件: 点击事件的标准格式是v-on:click="show(e.name)" 但是我们可以简写为@click="show(e.name)",使用@代替v-on:是一种简写格式

第二个是method1函数的弹窗,对应下拉列表的改变事件,对应4. 列表渲染v-for 的事件

6. Css改变样式

在template部分:

<template>
  <a v-bind:class="{ cla: !boo }" :href="aaa">{{ mess }}</a>
  <!-- v-bind:class="{ cla: !boo }",v-bind可省略,例如href的-->
  <!-- 其中boo、aaa、mess是变量-->
  <button @click="changeurl">点击更换a地址</button>
</template>

在script部分:

<script>
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      str: "我是APP页面!",
      mess: "点击跳天选之人",
      boo: false,
      aaa: "https://blog.csdn.net/howwickhappy"
  }
}, methods: { // 设置事件绑定函数
  changeurl() {
    this.aaa = "http://localhost:8080/";
  }
}
</script>

在css部分:

<style type="text/css">
.cla {
  color: red;
  font-size: 20px;
}
</style>

运行结果:
在这里插入图片描述
":“能够表示后面”"内的是变量名,而不是普通的字符串
这段代码可以实现:
1、在页面的超链接显示mess变量值;
2、可以跳转到aaa网页;
3、可以通过boo布尔值判断是否给超链接加cla对应样式,使用v-bind:进行绑定样式,v-bind:class指令也可以使用缩写形式:class
4、通过点击按钮可以更改本超链接的地址

7. 表单处理——双向数据绑定v-model

7.1 双向数据绑定v-model介绍

template部分表单元素的值与script部分同名的变量进行同步,语法实现是加v-model,能够实现快速方便的值的传递、数据的双向更新。
底层实现是默认的一个onchange
值从文本框《==》成员变量自动同步

7.2 代码实现

在template部分:

<template>
  <!--双向绑定步骤:1.标签里 v-model="变量名"2.js中的成员变量里,要同名变量-->
  <form>
    用户名: <input type="text" v-model="uname" /><br />
    密码: <input type="text" v-model="pwd" /><br />
    性别: <input type="radio" v-model="sex" name="a" value="1" /><input type="radio" v-model="sex" name="a" value="2" /><br />
    <input type="button" value="登录" @click="login"/>
  </form>
</template>

在script部分:

<script>
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      uname: "",
      pwd: "",
      sex: ""
    }
  }, methods: { // 设置事件绑定函数
  login(){ 
    alert(this.uname+";"+this.pwd+";"+this.sex+"进行登录");
  }
}
</script>

运行结果:
在这里插入图片描述
在这里插入图片描述
实现了数值的自动同步

三、Vue窗体间操作

1. 窗体跳转

demo1.vue文件

<template>
    <div>
        <h1>{{ str }}</h1>
    </div>
</template>

<script>
export default {
    name: "demo1",
    data(){
        return{
            str:"我是demo1组件"
        }
    }
}
</script>

<style></style>

在template部分:

<template>
  <demo1/>
</template>

在script部分:

<script>
/* 导入组件 */
import demo1 from './components/demo1.vue';
export default {
  name: 'App', // 当前页面名字
  components:{ /* 记录导入的组件名称 */
    demo1
  }
</script>

运行结果:
在这里插入图片描述
1、创建新的组件
2、导入组件:import demo1 from ‘./components/demo1.vue’;
3、记录组件:components:{ demo1 }
4、在template调用:< demo1/>

2. 窗体间互相传值

2.1 代码

Menu.vue文件

<template>
    <div>
        <ul>
            <li v-for="(e,i) in news" :key="i">{{ e }}</li>
        </ul>
        <input type="button" value="传值" @click="method1"/>
    </div>
</template>

<script>
export default {
    name:"Menu",
    props:{ // 接受其他组件传递过来的数据,变量名= :属性名
        news: Array 
    },
    data(){ // 存储成员变量
        return{
            str: "我是menu组件"
        }
    },
    methods:{ // 事件绑定的函数
        method1(){
            this.$emit("getVal", this.str); 
            // $emit用于自组件传递给父组件,第一个参数是父组件的事件名,第二个是要传递的参数
        }
    }
}
</script>

<style></style>

App.vue文件

<template>
  <div id="app">
    <Menu :news="menu1" @getVal="getStr"/>
    <Menu :news="menu2"/>
  </div>
</template>
<script>
/* 导入组件 */
import Menu from './components/Menu.vue';
export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      menu1:["农业新闻","教育新闻","天气新闻"],
      menu2:["国际新闻","军事新闻","体育新闻","民生新闻"]
    }
  }
  , methods: { // 设置事件绑定函数
    getStr(str){
      alert("传递过来的值是"+str);
    }
  },
  components:{ /* 记录导入的组件名称 */
    demo1,Menu
  }
}
</script>
<style type="text/css"></style>

2.2 运行结果

在这里插入图片描述
在这里插入图片描述
提示:第二个按钮传值的alert不会成功,因为我们没有监听该方法,所以程序不知道该干啥

2.3 解析

本部分的传值涉及到两个方面:App给Menu;Menu给App我们会分别进行讲解

2.2.1 父窗体App传值到子窗体Menu使用props

子窗体用props接收父窗体传过来的数据,我们使用传来的数据menu1:["农业新闻","教育新闻","天气新闻"]构建Menu的组件

props:{ // 接受其他组件传递过来的数据,变量名= :属性名
    news: Array 
}

2.2.2 子窗体Menu传值到父窗体App使用自定义事件$emit

子窗体传值到父窗体的过程有点像控制电梯,像是我在父窗体十一楼,按父窗体十一楼按钮电梯按钮,在子窗体一楼数据电梯就会传回父窗体升上来
我们先介绍下@getVal是什么:
@getVal是一个事件监听器,用于监听子窗体Menu触发的getVal事件。表示当Menu窗体触发getVal事件时,会调用父窗体的getStr方法。

method1(){
    this.$emit("getVal", this.str); 
    // $emit用于自组件传递给父组件,第一个参数是父组件的事件名,第二个是要传递的参数
}

$ emit是Vue提供的方法,用于触发自定义事件。当App窗体的按钮被点击时,method1方法会被调用,然后通过this.$emit(“getVal”, this.str)语句,触发了名为getVal的自定义事件,并将this.str作为参数传递给父组件。

3. 窗体的生命周期

3.1 代码

Menu.vue文件

<template>
  <div>
    <h1 @click="changeText">{{ info }}</h1>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data(){
    return{
      info:"介绍组件的生命周期"
    }
  },
  methods:{
    changeText(){
      this.info="我是刺客!图穷匕见!喝啊!!!!";
    }
  },
  beforeCreate(){console.log("————建组件前");},
  created(){console.log("————创建组件后");},
  beforeMount(){console.log("————数据渲染前");},
  mounted(){console.log("————数据渲染后");},
  beforeUpdate(){console.log("————修改前");},
  updated(){console.log("————修改后");},
  beforeDestroy(){console.log("————组件销毁前");},
  destroyed(){console.log("————组件销毁后");}
}
</script>

<style></style>

App.vue文件

<template>
  <div id="app">
    <HelloWorld/>
  </div>
</template>

<script>
/* 导入组件 */
import HelloWorld from './components/HelloWorld.vue'
export default {
  name: 'App', // 当前页面名字
  components:{ HelloWorld }
}
</script>

<style type="text/css"></style>

3.2 运行结果

未点击前:
在这里插入图片描述
点击后:
在这里插入图片描述

四、代码文件

1. demo1.vue

<template>
    <div>
        <h1>{{ str }}</h1>
    </div>
</template>

<script>
export default {
    name: "demo1",
    data(){
        return{
            str:"我是demo1组件"
        }
    }
}
</script>

<style></style>

2. HelloWorld.vue

<template>
  <div>
    <h1 @click="changeText">{{ info }}</h1>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data(){
    return{
      info:"介绍组件的生命周期"
    }
  },
  methods:{
    changeText(){
      this.info="我是刺客!图穷匕见!喝啊!!!!";
    }
  },
  beforeCreate(){console.log("————建组件前");},
  created(){console.log("————创建组件后");},
  beforeMount(){console.log("————数据渲染前");},
  mounted(){console.log("————数据渲染后");},
  beforeUpdate(){console.log("————修改前");},
  updated(){console.log("————修改后");},
  beforeDestroy(){console.log("————组件销毁前");},
  destroyed(){console.log("————组件销毁后");}
}
</script>

<style></style>

3. Menu.vue

<template>
    <div>
        <ul>
            <!--
            <li>体育新闻</li>
            <li>农业新闻</li>
            <li>娱乐新闻</li>
            -->

            <li v-for="(e,i) in news" :key="i">{{ e }}</li>
        </ul>
        <input type="button" value="传值" @click="method1"/>
    </div>
</template>

<script>
export default {
    name:"Menu",
    props:{ // 接受其他组件传递过来的数据,变量名= :属性名
        news: Array 
    },
    data(){ // 存储成员变量
        return{
            str: "我是menu组件"
        }
    },
    methods:{ // 事件绑定的函数
        method1(){
            this.$emit("getVal", this.str); // $emit用于自组件传递给父组件,第一个参数是父组件的事件名,第二个是要传递的参数
        }
    }
}
</script>

<style></style>

4. App.vue

<template>
  <div id="app">
    <demo1/>
    <Menu :news="menu1" @getVal="getStr"/>
    <Menu :news="menu2"/>
    <HelloWorld/>

    <a :class="{ cla: !boo }" :href="aaa">{{ mess }}</a>
    <!-- v-bind:class="{ cla: !boo }",v-bind可省略-->

    <button @click="changeurl">点击更换a地址</button>
    <ul>
      <li v-show="boo">起床吃早饭</li>
      <li>回去睡一觉</li>
      <li>起床吃午饭</li>
      <li>回去睡一觉</li>
      <li>起床吃晚饭</li>
      <li v-if="boo">突然一激灵</li>
      <li v-else>回去睡一觉</li>
    </ul>
    <!--  -->
    罪人!!罪有应得!!
    <br />
    <select style="width: 100;height: fit-content;" @change="method1">
      <option v-for="(a, i) in names" :key="i">{{ a }}</option>
    </select>

    <table>
      <tr>
        <td>编号</td>
        <td>姓名</td>
        <td>年龄</td>
        <td>性别</td>
      </tr>
      <tr v-for="(e, i) in objs" :key="i" v-on:click="show(e.name)">
        <td>{{ i }}</td>
        <td>{{ e.name }}</td>
        <td>{{ e.age }}</td>
        <td>{{ e.sex }}</td>
      </tr>
    </table>

    <hr />
    <!--双向绑定步骤:1.标签里 v-model="变量名'2.js中的成员变量里,要同名变量-->
    <form>
      用户名: <input type="text" v-model="uname" /><br />
      密码: <input type="text" v-model="pwd" /><br />
      性别: <input type="radio" v-model="sex" name="a" value="1" /><input type="radio" v-model="sex" name="a" value="2" /><br />
      <input type="button" value="登录" @click="login"/>

    </form>

  </div>
</template>

<script>
/* 导入组件 */
import demo1 from './components/demo1.vue';
import Menu from './components/Menu.vue';

import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App', // 当前页面名字
  data() { // 设置当前页面的成员变量
    return {
      str: "我是APP页面!",
      mess: "点击跳天选之人",
      boo: false,
      aaa: "https://blog.csdn.net/howwickhappy",
      age: 23,
      names: ["权拳到肉", "纸上谈兵", "严阵以待", "金戈铁马", "鸡飞蛋打"],
      objs: [{name: '金睛火猿', age: 20, sex: '男'},
        {name: '金睛水猿', age: 20, sex: '男'}, 
        {name: '金睛木猿', age: 20, sex: '男'}, 
        {name: '金睛金猿', age: 20, sex: '男'}, 
        {name: '金睛土猿', age: 20, sex: '男'}],
      uname: "",
      pwd: "",
      sex: "",
      menu1:["农业新闻","教育新闻","天气新闻"],
      menu2:["国际新闻","军事新闻","体育新闻","民生新闻"]

    }

  }
  , methods: { // 设置事件绑定函数
    show(name) {
      alert("你要删除" + name + "嘛?");
    },
    method1() {
      alert("选择了新的选项!");
    },
    changeurl() {
      this.aaa = "http://localhost:8080/";
    },
    login(){
      alert(this.uname+";"+this.pwd+";"+this.sex+"进行登录");
    },
    getStr(str){
      alert("传递过来的值是"+str);
    }
  },
  components:{ /* 记录导入的组件名称 */
    demo1,
    Menu,
    HelloWorld
  }

}
</script>

<style type="text/css">
.cla {
  color: red;
  font-size: 20px;
}
</style>

总结

本文讲述了:
Vue介绍:一款方便整洁的操作前端的框架;
窗体内操作:使用变量、渲染概念、条件渲染v-if/v-show、列表渲染v-for、Css改变样式、表单处理—双向数据绑定v-model;
窗体间操作:窗体跳转、窗体间互相传值、窗体的生命周期。

在下好累,同前言好了:在下是宇宙人,是称霸宇宙的究极生命体!!!

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

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

相关文章

树莓派5上手

1 安装系统 Raspberry Pi OS 是基于 Debian 的免费操作系统&#xff0c;针对 Raspberry Pi 硬件进行了优化。Raspberry Pi OS 支持超过 35,000 个 Debian 软件包。树莓派 5 可以安装各种系统&#xff0c;但是如果对于系统没有特殊的要求&#xff0c;还是安装 Raspberry Pi OS …

【MySQL】MySQL索引与事务的透析——(超详解)

前言 &#x1f31f;&#x1f31f;本期讲解关于MySQL索引事务&#xff0c;希望能帮到屏幕前的你。 &#x1f308;上期博客在这里&#xff1a;【MySQL】MySQL表的增删改查&#xff08;进阶篇&#xff09;——之查询操作&#xff08;超级详解&#xff09;-CSDN博客 &#x1f308;感…

CSP-CCF★★★201903-2二十四点★★★

目录 一、问题描述 二、解答 方法一&#xff1a;穷举法&#xff08;只列举了一部分&#xff09; 方法二&#xff1a;中缀表达式直接求值&#xff0c;两个栈&#xff0c;一个存放数值&#xff0c;一个存放符号 方法三&#xff1a;将中缀表达式转换为后缀来计算注意&#xff…

台风,也称为热带气旋,是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件:

台风&#xff0c;也称为热带气旋&#xff0c;是一种在热带海洋上形成的强烈风暴系统。台风的形成需要满足以下几个条件&#xff1a; 1. **温暖的海水**&#xff1a;台风通常在海面温度至少达到26.5C&#xff08;79.7F&#xff09;的海域形成&#xff0c;因为温暖的海水能够提供…

八股(8)——Spring,SpringBoot

八股&#xff08;8&#xff09;——Spring&#xff0c;SpringBoot 基础1.Spring 是什么&#xff1f;特性&#xff1f;有哪些模块&#xff1f;Spring 有哪些特性呢&#xff1f; 2.Spring 有哪些模块呢&#xff1f;3.Spring 有哪些常用注解呢&#xff1f;Web 开发方面有哪些注解呢…

利用模糊综合评价法进行数值评分计算——算法过程

1、‌模糊综合评价法概述 ‌模糊综合评价法是一种基于模糊数学的综合评价方法&#xff0c;它通过模糊数学的隶属度理论将定性评价转化为定量评价&#xff0c;适用于解决复杂、难以量化的问题。该方法具有结果清晰、系统性强的特点&#xff0c;能够处理多种因素制约下的综合评价…

热门数据恢复软件大盘点

现在大家的数据都喜欢存放在一些电子设备里保存吧。这样既方便存放&#xff0c;也方便我们查找。但是这些设备可能因为病毒、误删除等原因造成数据的丢失。这篇文章我将介绍几款类似易我数据恢复软件的数据恢复工具&#xff0c;减少为数据丢失给我们造成损失。 1.FOXIT数据恢复…

vue国际化

前言 现在的大公司都走国际化路线&#xff0c;我们应用程序也不例外。今天就在 Vue3 项目中整一个比较简单的国际化 背景 之前搞国际化的时候&#xff0c;也搜索了很多帖子&#xff0c;但是没有一个可以完整的实现。今天有空搞了一版&#xff0c;大家有什么问题欢迎留言探讨…

Java设计模式—面向对象设计原则(五) ----->迪米特法则(DP) (完整详解,附有代码+案例)

文章目录 3.5 迪米特法则(DP)3.5.1 概述3.5.2 案例 3.5 迪米特法则(DP) 迪米特法则&#xff1a;Demeter Principle&#xff0c;简称DP 3.5.1 概述 只和你的直接朋友交谈&#xff0c;不跟“陌生人”说话&#xff08;Talk only to your immediate friends and not to stranger…

【CSS in Depth 2 精译_031】5.3 Grid 网格布局的两种替代语法

当前内容所在位置&#xff08;可进入专栏查看其他译好的章节内容&#xff09; 第一章 层叠、优先级与继承&#xff08;已完结&#xff09; 1.1 层叠1.2 继承1.3 特殊值1.4 简写属性1.5 CSS 渐进式增强技术1.6 本章小结 第二章 相对单位&#xff08;已完结&#xff09; 2.1 相对…

Linux服务器配合Xshell+Tensorboard实现深度学习训练过程可视化

问题背景&#xff1a; 在深度学习领域&#xff0c;监控模型的训练过程是非常重要的。TensorBoard 是 TensorFlow 提供的一个可视化工具&#xff0c;可以帮助我们直观地理解模型的训练和验证过程。我们一般在 Windows 系统只需要在自己的浏览器输入localhost:6006就可以观察训练…

[Linux]:进程间通信(上)

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;Linux学习 贝蒂的主页&#xff1a;Betty’s blog 1. 进程间通信介绍 1.1 进程间通信的概念 进程间通信简称IPC&#xff08;In…

[通信原理]绪论1:信号 × 通信系统

1、消息、信号与信息 消息&#xff1a; 通信系统要传输的对象&#xff0c;是具体的、物理上存在的东西。也是信息的载体。形式多种&#xff1a; 连续消息&#xff1a;语音、温度、活动图片.离散消息&#xff1a;数据、符号、文字. 信息&#xff1a; 消息中所蕴含的内容&…

MySQL练手题--公司和部门平均工资比较(困难)

一、准备工作 Create table If Not Exists Salary (id int, employee_id int, amount int, pay_date date); Create table If Not Exists Employee (employee_id int, department_id int); Truncate table Salary; insert into Salary (id, employee_id, amount, pay_date) va…

ESP8266+httpServer+GET+POST实现网页验证密码

1. 代码 #include "esp_http_server.h" #include "esp_log.h" #include "web_server.h"// 辅助宏&#xff0c;用于计算两个数中的较小值 #define MIN(a, b) ((a) < (b) ? (a) : (b))static const char *TAG "wifi web_server";c…

游戏算法专题之PRD算法:听说你想凭运气抽中荣耀水晶?

PRD算法全称Pseudo-Random Distribution。是概率分布中的一种常见算法&#xff0c;在游戏开发领域中很常用。 PRD用于控制随机事件的触发概率&#xff0c;使其表现得更加符合预期&#xff0c;相比于传统得随机数生成&#xff0c;PRD算法可以平滑得控制随机事件的触发次数&…

cJSON-轻量级解析模块、字符串的神——编织STM32C8T6与阿里云信息传递的纽带

编写方向&#xff1a;本人就不泛泛的编写一篇什么一文学会cJSON了&#xff0c;没什么突出点&#xff0c;也就我水水字数&#xff0c;你们看来看去也不懂&#xff0c;本人是从上阿里云传信息接触的cJSON的&#xff0c;我就此写一篇针对性的文章&#xff0c;希望对大家有用&#…

通信工程学习:什么是UNI用户网络接口

UNI&#xff1a;用户网络接口 UNI&#xff08;User Network Interface&#xff09;用户网络接口&#xff0c;是网络通信中的一个重要概念&#xff0c;它连接了用户设备与智能光网络或其他类型的网络。以下是关于UNI用户网络接口的详细解释&#xff1a; 一、定义与功能 定义&am…

VSCode C++(Code Runner)+ OpenSSL开发环境搭建

本章教程,主要介绍在VSCode中配置OpenSSL环境。 一、安装 OpenSSL 首先,我们需要安装OpenSSL,并配置OpenSSL系统环境变量。 1、下载OpenSSL 下载地址:https://slproweb.com/products/Win32OpenSSL.html 如果下载慢可以通过下方网盘进行下载: 通过网盘分享的文件:Win64Op…

Geneformer AI 模型,有限数据也能解锁基因网络

目录 类似于 BERT 的单单元数据参考模型 NVIDIA Clara 工具组合用于药物研发 用于疾病建模的基础 AI 模型 Geneformer 是最近推出的 和功能强大的 AI 模型&#xff0c;可以通过从大量单细胞转录组数据中进行迁移学习来学习基因网络动力学和相互作用。借助此工具&#xff0c;…