vue学习汇总

目录

一、vue基本语法

1.插值表达式 {{}} 

2.显示数据(v-text)和(v-html)

3.事件处理(v-on)

4.循环遍历(v-for)

5.判断语法(v-if)

6.元素显示与隐藏(v-show)

7.动态设置属性(v-bind)

8.数据双向绑定(v-model)

9.计算属性

二、vue组件

1.使用组件的三个步骤

2.注册组件的两种方式

 3.组件嵌套

 4.认识vue文件

 5.创建组件并暴露的写法

三、axios异步请求

1.引入axios

2.get和post请求

3.vue+axios

四、创建 vue-cli 脚手架

1.什么是npm

2.使用webpack手动执行(不用脚手架)

3.创建脚手架步骤

4.npm run serve 命令可能出现的问题

5.vue脚手架项目结构

6.项目创建步骤示例(脚手架中执行)

五、vuex

六、vue-router 前端路由

1.基本使用

2.路由嵌套

七、Vue插件库的使用


一、vue基本语法

1.插值表达式 {{}} 

插值表达式用户把vue中所定义的数据,显示在页面上.。 

el挂载点:设置Vue实例挂载(管理)的元素

语法{{ 变量名/对象.属性名 }}

案例:

<div id="one">
    {{message}}
</div>
<script>
    var v1 = new Vue({
      el: "#one",
      data: {
        message: "hello world!"
      },
    })
</script>

2.显示数据(v-text)和(v-html)

v-test和v-html都是专门用来展示数据,其作用和插值表达式类似。并且还可以解决因网速慢差值表达式会显示原始的{{}}问题。

区别

v-text:把数据当作纯文本显示.
v-html:遇到html标签,会正常解析

示例 

<div id="one" >
    <div v-text="message"></div>
    <div v-html="message"></div>
</div>
<script>
    var v = new Vue({
      el: '#one',
      data: {
        message: "<h3>哈哈哈</h3>"
    }
    });
</script>

结果 

3.事件处理(v-on)

​ Vue中也可以给页面元素绑定事件.如元素点击click事件,提交submit事件,回车keyup.enter事件。

  • 语法
<!--完整写法-->
<button v-on:事件名="函数名/vue表达式">点击</button>
<!--简化写法-->
<button @事件名="函数名/vue表达式">点击</button>
  • 案例
<div id="one">
  <button v-on:click="addition()">加1</button>
  <button v-on:click="subtraction()">减1</button>
  <h1>{{score}}</h1>
</div>
<script>
  var app = new Vue({
    el:"#one",
    data:{
      score: 60
    },
    methods: {
      // 加1  
      addition() {
        this.score+=1;
      },
      // 减1
      subtraction() {
        this.score-=1;
      },
    }
  });
</script>

4.循环遍历(v-for)

1.遍历数组

  • 语法
v-for="item in items" // 遍历数组
v-for="(item,index) in items" // 遍历数组加下标
  • 示例 
<div id="one">
    <li v-for="user in users">{{user}}</li>
    <li v-for="(user,index) in users">{{user}}--{{index}}</li>
</div>
<script>
    var v1 = new Vue({
      el: "#one",
      data: {
        users: ['user1','user2','user3','user4','user5']
      },
    })
</script>

2.遍历对象

  • 语法
v-for="value in object"
v-for="(value,key) in object"
v-for="(value,key,index) in object"
  • 示例 
<div id="one">
    <li v-for="key in person">{{key}}</li>
    <li v-for="(key,value) in person">{{key}}--{{value}}</li>
    <li v-for="(key,value,index) in person">{{key}}--{{value}}--{{index}}</li>
</div>
<script>
    var v1 = new Vue({
      el: "#one",
      data: {
        person: {"username":"lisi","age":"20","gender":"男"}
      },
    })
</script>

3.向数组中添加或删除元素

  • 示例
<div id="one">
    <button @click="add">添加</button>
    <button @click="remove">移除</button>
    <li v-for="user in users">{{user}}</li>
</div>
<script>
    var v1 = new Vue({
      el: "#one",
      data: {
        users: ['user1','user2','user3','user4','user5']
      },
      methods: {
          // 向users数组中添加元素
        add() {
          this.users.unshift("user6");
        },
        // 移除users中的元素
        remove() {
          this.users.shift();
        },
      }
    })
</script>

5.判断语法(v-if)

  • 语法
v-if="判断语句"
v-else-if="判断语句"
v-else
  • 示例 
<div id="one">
    请输入你的成绩:<input type="text" v-model.number="score">
    <div v-if="score>=90"> <h2>优秀!</h2></div>
    <div v-else-if="score>=80"> <h2>良好!</h2> </div>
    <div v-else-if="score>=70"> <h2>中等!</h2> </div>
    <div v-else-if="score>=60"> <h2>及格!</h2> </div>
    <div v-else><h2>不及格!</h2> </div>
</div>
<script>
    var app = new Vue({
      el:"#one",
      data:{
        score: 60
      },
    });
</script>

6.元素显示与隐藏(v-show)

条件满足(为true)时,显示元素,反之不显示。但是此元素依然存在,只是其CSS属性display变为none了。

<div id="one" >
    <h1 v-show="show">hello world!</h1>
</div>
<script>
    var v = new Vue({
      el: '#one',
      data: {
        show: true
    }
    });
</script>

当show设置为false时: 

7.动态设置属性(v-bind)

常用于动态设置标签的属性值,如src,href,value,class等等

  • 语法
v-bind:value=""  //正常写法
:value=""        //简写
  • 示例
<div id="one">
    <input type="button" v-bind:value="message">
</div>
<script>
    var v1 = new Vue({
      el: "#one",
      data: {
        message: "哈哈"
      },
    })
</script>

8.数据双向绑定(v-model)

数据双向绑定可以实现数据变化的时候,页面会自动刷新,页面变化的时候,数据也会自动变化

双向绑定只能绑定文本框,单选框,复选框,文本域以及下拉列表等表单元素。

1.绑定文本框

<div id="one">
    <input type="text" v-model="message">
    <span>{{message}}</span>
</div>
<script>
    var v1 = new Vue({
        el:"#one",
        data:{
            // 该属性和文本框的属性保持一致
            message: ""
        },
    });
</script>

2.绑定单个复选框

<div id="one">
    <input type="checkbox" v-model="message">同意<br>
    <span>{{message}}</span>
</div>
<script>
    var v1 = new Vue({
        el:"#one",
        data:{
            // 该属性和文本框的属性保持一致
            message: false
        },
    });
</script>

3.绑定多个复选框

<div id="one">
    <input type="checkbox" v-model="message" value="Java">Java<br>
    <input type="checkbox" v-model="message" value="Python">Python<br>
    <input type="checkbox" v-model="message" value="C++">C++<br>
    <span>{{message}}</span>
</div>
<script>
    var v1 = new Vue({
        el:"#one",
        data:{
            // 数组中的值就是被选中的元素的value属性值
            message: []
        },
    });
</script>

9.计算属性

1.计算属性很重要的特性: 带缓存, 性能极强

2.在第一次使用该属性时进行计算, 计算后将结果缓存起来, 后面如果还有其他地方用到, 会直接从缓存中取值, 不会再次计算。

3.如果方法中的某些数据更新了,与此相关的方法都会重新执行一遍。

  • 语法 
computed: {
    
}
  • 示例
<div id="one">
  {{currentTime_methods()}}<br>   <!-- methods里的方法调用要加() -->
  {{currentTime_computed}}        <!-- computed里的方法调用不加   计算属性 -->
</div>
<script>
  var v1 = new Vue({
    el: "#one",
    data: {
      message: "hello world!"
    },
    methods: {
        currentTime_methods: function () {
            return Date.now();
        }
    },
    // 计算属性
    computed: {
        currentTime_computed: function () {
            return Date.now();
       }
    }
});

二、vue组件

1.使用组件的三个步骤

  1. 创建一个组件 (Vue.extend)
  2. 注册组件
  3. 使用组件
<div id="root">
    <!-- 3.使用student组件 -->
    <student></student>
    <school></school>
</div>
<!--<script src="vue/vue.min.js"></script>-->
<script>
    // Vue.config.devtools = true
  // 1. 创建student组件
  let student = Vue.extend({
    template: `<div>
                   <h1>{{ id }}--{{ name }}</h1>
               </div>`,
    data(){
      return{
          id: '11',
          name: 'lisi',
      }
    }
  })
    // 创建组件可以简写
    // let student = {
    //     template: `<div>
    //                <h1>{{ id }}--{{ name }}</h1>
    //            </div>`,
    //     data(){
    //         return{
    //             id: '11',
    //             name: 'lisi',
    //         }
    //     }
    // }

  // 1. 创建school组件
  let school = Vue.extend({
       template: `<div>
                   <h1>{{ schoolName }}--{{ address }}</h1>
               </div>`,
       data(){
            return{
                schoolName: '实验小学',
                address: '陕西省咸阳市',
            }
       }
  })
  new Vue({
    el: '#root',
    data: {
    },
    // 2.注册组件(局部注册)
    components: {
      student,
      school
    }
  });

2.注册组件的两种方式

  1. 局部注册
  2. 全局注册
// 局部注册组件
new Vue({
    el: '#root',
    data: {
    },
    // 2.注册组件(局部注册)
    components: {
      student
    }
  });

// 全局注册组件 可以在任何div容器下使用该组件标签
Vue.component('student',student)

 3.组件嵌套

<script> 

// 如下school组件中嵌套了student组件

// 1. 创建student组件
  let student = Vue.extend({
    template: `<div>
                   <h1>{{ id }}--{{ name }}</h1>
               </div>`,
    data(){
      return{
          id: '11',
          name: 'lisi',
      }
    }
  })
  // 1. 创建school组件
  let school = Vue.extend({
       template: `<div>
                   <h1>{{ schoolName }}--{{ address }}</h1>
                 </div>`,
       data(){
            return{
                schoolName: '实验小学',
                address: '陕西省咸阳市',
            }
       },
      components: {
           // 组件嵌套
           student
      }
  })
</script>

 4.认识vue文件

<template>
  <!-- 组件的结构 (模版里必须要有一个根元素,用div)包裹 -->
  <div>
      ...
  </div>
</template>

<script>
// 组件交互相关的代码(数据,方法等等)
// export 暴露导出模块
export default {
  name: "App" // 组件名
}
</script>

<style scoped>
/*组件的样式*/
</style>

 5.创建组件并暴露的写法

// 如下写法其实是一种简写
export default {
    
}

// 完整如下
export const Student = Vue.extend({
  
})
export default(Student)
// 或者

export let Student = Vue.export({

})

三、axios异步请求

axios是一个基于 promise 的 HTTP 库, 主要用于:发送异步请求获取数据

1.引入axios

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

2.get和post请求

语法

// 方法一默认为正常响应回的数据,方法二为错误信息
axios.get("地址?key1=value1&key2=value2").then(function(response){},function(err){})
axios.post("地址",{key1:value1,key2:value2}).then(function(response){},function(err){})

示例

<script>
    // get请求
    axios.get("地址?key1=value1&key2=value2").then(
          // then中的第一个方法是响应成功返回的数据,第二个方法是返回的错误信息
          function (response) {
             console.log(response);
          },
          function (err) {
             console.log(err);
          }
    )

    //post请求
    axios.post("地址",{
        // 请求参数
        username: "lisi",
        password: "123"
    }).then(
        // then中的第一个方法是响应成功返回的数据,第二个方法是返回的错误信息
        function (response) {
           console.log(response);
        },
        function (err) {
            console.log(err);
        }
    )
</script>

3.vue+axios

<script>
  var v1 = new Vue({
    el: "#one",
    data: {
      user: {}
    },
    // 当页面加载完毕后
    created() {
      axios.get("info/userinfo",{
        // get请求的参数
        params: {
          username: "admin",
          password: "123",
        },
        // 响应数据格式为json
        responseType: "json",
      }).then(ret => {
        // 打印响应数据
        console.log(ret.data);
        // 把响应数据赋值给vue中的user属性
        this.user=ret.data;
      }).catch(err => {
        // 打印错误信息
        console.log(err);
      });
    }
  });
</script>

四、创建 vue-cli 脚手架

1.什么是npm

npm是JS的一个包管理程序,相当于后端的maven,Node Package Manager 。

2.使用webpack手动执行(不用脚手架)

// 1.创建项目
vue init webpack 项目名
// 2,进行该项目
cd 项目
// 3.安装运行环境
npm install
// 4.启动项目
npm run dev
// 5.结束项目
ctrl+c

// 由于JS文件引入使用了import,是es6语法,浏览器不认识,需要将该Js文件通过webpack
// 打包成一个新的压缩的JS文件后,再引入HTML文件中

// 对JS文件打包成压缩的浏览器认识的JS文件,需要在webpack.confog.js
// 文件中配置【注意//webpack.confog.js配置文件的位置】
//module.exports = {
//    entry: './modules/main.js',      // 程序入口
//    output: {
//        filename: './js/bundle.js'   // 打包生成的JS文件位置
//    }
//}
webpack //打包命令



 可能出现的问题

解决办法

对 node_global文件node_cache文件 右键->属性->安全->编辑,全勾上。

3.创建脚手架步骤

  • 1. 创建vue项目 
vue create 项目名
  • 2.进入该项目
cd 项目名
  • 3.启动项目 
npm run serve
  • 4.结束项目
ctrl + c

4.npm run serve 命令可能出现的问题

原因是存在语法检查,组件命名没有按照它规范来。

解决办法:在vue.config.js文件中添加如下代码即可。

lintOnSave: false

5.vue脚手架项目结构

6.项目创建步骤示例(脚手架中执行)

  1. 首先创建两个vue文件(Student和School)
  2. 再创建一个vue文件(App),该文件嵌套上面两个文件(组件引入)
  3. 再创建一个JS文件(main),引入App.vue文件
  4. 最后创建一个HTML文件(index),并引入使用webpack打包而成的JS文件
  5. 最后在当前项目下使用 npm run serve 命令启动项目

首先创建两个vue文件(Student和School)

School.vue文件

<template>
<!-- 组件的结构 (模版里必须要有一个根元素) -->
  <div>
    <h2>学校名称:{{name}}</h2>
    <h2>学校地址:{{address}}</h2>
    <button @click="showName">点我提示学校名</button>
  </div>
</template>

<script>
// 组件交互相关的代码(数据,方法等等)
// export 将。。。暴露
export default {
  name: "School",  //组件名,最好跟文件名相同
  data() {
    return {
      name: '希望中学',
      address: '陕西省西安市'
    }
  },
  methods: {
    showName: function () {
      alert(this.name);
    }
  }
}
</script>

<style scoped>
  /*组件的样式*/
</style>

student.vue文件

<template>
  <div>
    <h2>学生姓名:{{name}}</h2>
    <h2>学生年龄:{{age}}</h2>
    <button @click="showName">点我提示学生名</button>
  </div>
</template>

<script>
export default {
  name: "Student",
  data() {
    return {
        name: '张三',
        age: '18'
    }
  },
  methods: {
    showName: function () {
      alert(this.name);
    }
  }

}
</script>

<style scoped>

</style>

再创建一个vue文件(App),该文件嵌套上面两个文件(即引入两个vue文件)

<template>
<!--  使用这两个组件-->
  <div>  <!-- 切记模版里必须要有一个根元素 -->
    <School></School>
    <Student></Student>
  </div>
</template>

<script>
  // 导入这两个组件
  import School from './components/School.vue'
  import Student from './components/Student.vue'

  export default {
    name: "App",
    data() {
    },
    components: {
      School,
      Student
    }
  }
</script>

<style scoped>

</style>

再创建一个JS文件(main),引入App.vue文件

// 引入vue组件
import Vue from 'vue'
// 引入App组件
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
}).$mount('#app')

最后创建一个HTML文件(index)

<!DOCTYPE html>
<html lang="">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

文件创建完毕,使用如下命令启动项目

npm run serve

五、vuex

实现多组件共享数据,管理数据的一个插件。

六、vue-router 前端路由

1.基本使用

1.安装vue-router

// 1.安装vue路由,3表示路由版本是3版本,路由3版本对应vue2版本
npm i vue-router@3

2.编写router配置项(js文件)

/**
 *   该文件专门用来创建应用的路由器
  */

// 引入vue-router
import VueRouter from 'vue-router'

// 引入路由对应的组件
import Student from './Student.vue'
import School from './School.vue'

// 创建并暴露一个路由器
export default new VueRouter({
    // 如下,一个routers可以有一对或者多对 路径和组件
    routers: [
        {
            path: '/allstudents',      // 路径
            component: 'Student', // 组件名 前提是得引入组件
        },
        {
            path: '/allschools',
            component: 'School',
        }
    ]
})

3.引入路由器(main.js文件中)

import Vue from 'vue'
import App from './App.vue'

// 引入路由器(源自配置项中的路由器)
import router from './router'

Vue.config.productionTip = false

new Vue({
  render: h => h(App),
  router: router  // 设置路由器
}).$mount('#app')

3.实现切换(vue文件中的模版里不能再使用a标签,要替换成vue-router提供的router-link标签 )

<router-link to="/allstudents"></router-link>
<router-link to="/allschools"></router-link>

4.指定展示位置

<router-view></router-view>

2.路由嵌套

// 引入vue-router
import VueRouter from 'vue-router'

// 引入路由对应的组件
import Student from './Student.vue'
import Student1 from './student1.vue'
import Student2 from './student2.vue'

// 创建并暴露一个路由器
export default new VueRouter({
    routers: [
        {
            path: '/allstudents',      // 路径
            component: Student,        // 组件名 前提是得引入组件
            children: [                // 组件嵌套
                {
                    path: 'student1',  // 嵌套的二级路由不用加斜杠
                    component: Student1
                },
                {
                    path: 'student2',
                    component: Student2
                }
            ]
        },
        
    ]
})

七、Vue插件库的使用

以vue-router为例

1.引入插件库

import VueRouter from 'vue-router'

2.应用插件

Vue.use(VueRouter)

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

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

相关文章

Spring Boot发送邮件时如何支持定时功能?

如何使用Spring Boot结合AokSend以实现高效邮件发送&#xff1f; 如何高效地进行sendmail发送邮件并支持定时功能是一个值得探讨的问题。本文将详细介绍如何在Spring Boot中实现定时sendmail发送邮件&#xff0c;并结合AokSend工具实现高效邮件发送。 Spring Boot发送邮件&am…

【Go专家编程——并发控制——三剑客】

并发控制 我们考虑这么一种场景&#xff0c;协程在A执行过程中需要创建子协程A1、A2、A3…An&#xff0c;协程创建完子协程后就等待子协程退出。 针对这种场景&#xff0c;Go提供了三种解决方案&#xff1a; Channel&#xff1a;使用channel控制子协程 优点&#xff1a;实现…

6.1 Go 数组

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

Spring Cloud Alibaba-06-Sleuth链路追踪

Lison <dreamlison163.com>, v1.0.0, 2024.4.03 Spring Cloud Alibaba-06-Sleuth链路追踪 文章目录 Spring Cloud Alibaba-06-Sleuth链路追踪为什么使用链路追踪常见链路追踪解决方案Sleuth概述概述Sleuth术语 Sleuth Zipkin 原理Sleuth原理简述Zipkin 原理简述 Sleut…

永恒之蓝(MS17-010)详解

这个漏洞还蛮重要的&#xff0c;尤其在内网渗透和权限提升。 目录 SMB简介 SMB工作原理 永恒之蓝简原理 影响版本 漏洞复现 复现准备 复现过程 修复建议 SMB简介 SMB是一个协议服务器信息块&#xff0c;它是一种客户机/服务器、请求/响应协议&#xff0c;通过SMB协议…

[ARM-2D 专题] 1.开始:基本工程搭建,编译和开发环境配置问题解决

要开始使用ARM-2D&#xff0c;前期两个准备工作需要完成&#xff1a; 一块mcu内核为cortex-M的板子&#xff0c;带显示屏&#xff08;彩色TFT屏&#xff0c;分辨率建议320x240或以上&#xff0c;带TP更佳&#xff09;。基于这个板子可以正常运行的keil MDK的工程。 好了&#…

科技守护,河流水文监测保障水资源安全!

中小河流是城乡水资源的补给&#xff0c;又是不可或缺的排放渠道&#xff0c;维系着城乡水资源的平衡与生态的健康。然而&#xff0c;随着工业化、城市化的快速推进&#xff0c;河流生态环境面临着越来越大的压力。为了有效保护和合理利用河流资源&#xff0c;河流水文监测成为…

vs code 中使用SSH 连接远程的Ubuntu系统

如下图&#xff0c;找到对应的位置 在电脑上找到以下位置 打开配置如下&#xff0c;记住&#xff0c;那个root为你的用户名&#xff0c;这个用户名&#xff0c;具体根据你的用户名来设置&#xff0c;对应的密码就是你登录Ubuntu时的密码 Host root192.168.0.64User rootHostNa…

第98天:权限提升-WIN 全平台MSF 自动化CS 插件化EXP 筛选溢出漏洞

目录 思维导图 前置知识 案例一&#xff1a; Web&Win2008-人工手动&全自动msf-筛选&下载&利用 手动 全自动msf 案例二: Web&Win2019-CS 半自动-反弹&插件&利用 思维导图 前置知识 提权方式&#xff0c;这里讲的是溢出漏洞 windows权限 常…

实时合成 1 秒频订单簿快照:DolphinDB INSIGHT 行情插件与订单簿引擎应用

INSIGHT 是华泰证券依托大数据存储、实时分析等领域的技术积累&#xff0c;整合接入国内多家交易所高频行情数据&#xff0c;为投资者提供集行情接入、推送、回测、计算及分析等功能于一体的行情数据服务解决方案。基于 INSIGHT 官方提供的行情数据服务 C SDK&#xff08;TCP 版…

HTML静态网页成品作业(HTML+CSS)——动漫海贼王介绍网页(1个页面)

&#x1f389;不定期分享源码&#xff0c;关注不丢失哦 文章目录 一、作品介绍二、作品演示三、代码目录四、网站代码HTML部分代码 五、源码获取 一、作品介绍 &#x1f3f7;️本套采用HTMLCSS&#xff0c;未使用Javacsript代码&#xff0c;共有1个页面。 二、作品演示 三、代…

超分论文走读

codeFormer 原始动机 高度不确定性&#xff0c;模糊到高清&#xff0c;存在一对多的映射纹理细节丢失人脸身份信息丢失 模型实现 训练VQGAN 从而得到HQ码本空间作为本文的离散人脸先验。为了降低LQ-HQ映射之间的不确定性&#xff0c;我们设计尽量小的码本空间和尽量短的Code…

人人都是产品经理,尼恩产品经理面试宝典(史上最全、定期更新)

《人人都是产品经理&#xff0c;尼恩产品经理面试宝典》&#xff08;史上最全、定期更新&#xff09; 本文版本说明&#xff1a;V1 IT不老新物种 的定义 大龄男IT &#xff1a;APM 架构经理 项目经理 高级开发&#xff0c;没有中年危机 大龄女IT&#xff1a;DPM 产品经理 …

Simulink从0搭建模型07-P8for循环的使用

Simulink从0搭建模型07-P8for循环的使用 今日学习内容1. For Iterator Subsystem模块介绍1.1. 累加器1.2. For Iterator1.3.小结 2. states介绍3. Set next i&#xff08;相当break)学习心得 今日学习内容 b站视频 【Simulink 0基础入门教程 P8 for循环的使用 For Itrator Sub…

Power Bi 自定义进度条,圆角框,矩阵图标的实现

最近项目在做Power BI&#xff0c;我总结了几个常用的自定义样式&#xff0c;分享一下做法。 比如我们要实现如图这样的一个样式&#xff1a; 这包含了一个带文字的自定义进度条&#xff0c;矩阵有树型展开以及图标显示&#xff0c;最外面有圆角框包围。我觉得这几个样式出现…

ATA-2021B高压放大器在锂电池超声检测中的应用

锂电池一种高能量密度的电池&#xff0c;已经广泛应用于可穿戴设备、移动电话、笔记本电脑和电动汽车等领域中。然而&#xff0c;其在使用过程中存在着一定的安全隐患&#xff0c;锂电池内部的化学反应和充放电过程可能会导致电池发热&#xff0c;甚至发生燃烧。Aigtek安泰电子…

走进数字艺术的世界:一种创新的艺术表达方式

进入数字时代&#xff0c;计算机将我们生活的方方面面都进行了转化。当然艺术领域也不例外。随着数字技术和计算机程序的发展和普及&#xff0c;“数字艺术”的概念应试而生。那么&#xff0c;所谓的数字艺术到底是什么呢&#xff1f;数字艺术的作用是什么&#xff1f;新手如何…

在项目中集成Web端数据库操作:推荐工具一览

在项目中集成Web端数据库操作&#xff1a;推荐工具一览 博主猫头虎的技术世界 &#x1f31f; 欢迎来到猫头虎的博客 — 探索技术的无限可能&#xff01; 专栏链接&#xff1a; &#x1f517; 精选专栏&#xff1a; 《面试题大全》 — 面试准备的宝典&#xff01;《IDEA开发秘籍…

基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真

目录 1.程序功能描述 2.测试软件版本以及运行结果展示 3.核心程序 4.本算法原理 4.1 块定义与相似度计算 ​4.2 贝叶斯框架下的加权融合 4.3 加权最小均方误差估计 5.完整程序 1.程序功能描述 基于分块贝叶斯非局部均值优化(OBNLM)的图像去噪算法matlab仿真&#xff0c…

CASS+arcgis实现图斑的分割

1、在CASS中将图形绘制好&#xff0c;待分割图形为闭合线&#xff0c;使用线段将其分割成很多块&#xff0c;如下&#xff1a; 2、保存文件。打开arcgisPro&#xff0c;加载dwg图形&#xff0c;如下&#xff1a; 效果如下&#xff1a; 3、分别将面和线导出&#xff0c;如下&…