【Vue】Vue2使用ElementUI

目录

  • Element UI
    • 介绍
    • 特点
    • Vue2使用Element
      • 安装
      • 引入ElementUI组件库
    • 使用ElementUI
      • 用户注册
      • 列表展示
      • 其他
  • mint-ui
    • 介绍
    • 特点
    • 安装组件
    • 引入组件
    • Mint-ui相关组件

Element UI

介绍

  • 官网(基于 Vue 2.x ):https://element.eleme.cn/#/zh-CN

  • ElementUI 是一个基于 Vue.js 的桌面端组件库,由饿了么前端团队开发并维护。它提供了一套丰富的 UI 组件和布局,以及一些常用的功能组件,让开发者可以快速搭建美观、可用的 Web 应用。

  • ElementUI 的组件库包括按钮、表单、输入框、下拉菜单、表格、弹窗等等,它们都具有一致的样式和交互效果,可以方便地进行组合和定制。ElementUI 还提供了一些常用的功能组件,如日期选择器、分页器、消息提示等,这些组件可以大大简化开发过程,提高效率。

  • ElementUI 的设计风格简洁大方,符合现代化的 UI 设计规范。它使用了灵活的栅格系统来布局页面,可以适应不同尺寸的屏幕。同时,ElementUI 支持多语言和主题定制,开发者可以根据自己的需求进行配置。

  • ElementUI 提供了详细的文档和示例代码,可以帮助开发者快速上手并解决问题。此外,ElementUI 还有一个活跃的社区,开发者可以在社区中分享经验、提问问题,并获取帮助。

  • ElementUI 是一个功能强大、易于使用的前端组件库,适用于快速构建漂亮且可用的 Web 应用。无论是个人项目还是企业级应用,ElementUI 都能提供良好的支持,让开发变得更加高效和愉快。
    在这里插入图片描述

特点

ElementUI 的特点有以下几个:

  1. 简洁美观:ElementUI 的设计风格简洁大方,符合现代化的 UI 设计规范。它提供了一致的样式和交互效果,使得应用看起来非常美观,并且可以适应不同尺寸的屏幕。

  2. 丰富的组件:ElementUI 提供了一套丰富的 UI 组件,包括按钮、表单、输入框、下拉菜单、表格、弹窗等等。这些组件具有灵活的用法和丰富的功能,可以满足各种需求。

  3. 响应式布局:ElementUI 使用了灵活的栅格系统来布局页面,可以适应不同尺寸的屏幕。它支持响应式布局,使得应用在不同设备上都能有良好的展示效果。

  4. 高度可定制:ElementUI 支持多语言和主题定制,开发者可以根据自己的需求进行配置。它提供了丰富的主题和样式变量,可以方便地定制组件的外观和样式。

  5. 完善的文档和示例:ElementUI 提供了详细的文档和示例代码,开发者可以通过阅读文档和参考示例来快速上手和解决问题。它还有一个活跃的社区,开发者可以在社区中分享经验、提问问题,并获取帮助。
    在这里插入图片描述

Vue2使用Element

安装

npm下载ElementUI:npm install element-ui@2.15.3或者npm i element-ui -S

引入ElementUI组件库

在main.js中内容:

import Vue from 'vue'
import App from './App.vue'
import ElementUI from 'element-ui';
//样式文件需要单独引入
import 'element-ui/lib/theme-chalk/index.css';
Vue.use(ElementUI);
Vue.config.productionTip = false

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

使用ElementUI

其实在官网有很多很多案例,这里我准备了一个用户注册的form表单案例,和一个表格展示案例

用户注册

<template>
  <div>
      <el-form :model="user" status-icon :rules="rules" ref="user" label-width="100px" class="demo-user">
          <el-form-item label="账号" prop="userCode">
              <el-input type="text" v-model="user.userCode" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="姓名" prop="userName">
              <el-input type="text" v-model="user.userName" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="密码" prop="userPassword">
              <el-input type="userPassword" v-model="user.userPassword" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="确认密码" prop="checkPass">
              <el-input type="password" v-model="user.checkPass" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="性别" prop="">
              <el-radio-group v-model="user.gender">
                  <el-radio-button label="0" ></el-radio-button>
                  <el-radio-button label="1" ></el-radio-button>
              </el-radio-group>
          </el-form-item>
          <el-form-item label="出生年月" prop="birthday">
              <el-date-picker
                  v-model="user.birthday"
                  align="right"
                  type="date"
                  placeholder="选择日期"
                  :picker-options="pickerOptions">
              </el-date-picker>
          </el-form-item>
          <el-form-item label="地址" prop="address">
              <el-input type="text" v-model="user.address" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="手机号" prop="phone">
              <el-input type="text" v-model="user.phone" autocomplete="off"></el-input>
          </el-form-item>
          <el-form-item label="角色" prop="userRole">
              <el-select v-model="user.userRole" placeholder="请选择">
                  <el-option
                      v-for="item in roleList"
                      :key="item.value"
                      :label="item.name"
                      :value="item.value"
                      :disabled="item.disabled">
                  </el-option>
              </el-select>
          </el-form-item>
          <el-form-item label="兴趣爱好" prop="hobbys">
              <el-checkbox-group
                  v-model="user.hobbys"
                    max="3">
                  <el-checkbox v-for="hobby in hobbys" :label="hobby" :key="hobby">{{hobby}}</el-checkbox>
              </el-checkbox-group>
          </el-form-item>
          <el-form-item>
              <el-button type="primary" @click="submitForm('user')">提交</el-button>
              <el-button @click="resetForm('user')">重置</el-button>
          </el-form-item>
      </el-form>
  </div>
</template>
<script>
export default {
    // eslint-disable-next-line vue/multi-word-component-names
    name:'Register',
    data() {
    	//自定义校验规则
        var validatePass2 = (rule, value, callback) => {
            if (value === '') {
                callback(new Error('请再次输入密码'));
            } else if (value !== this.user.userPassword) {
                callback(new Error('两次输入密码不一致!'));
            } else {
                callback();
            }
        };
        return {
            hobbys:["唱","跳","RAP","打篮球"],
            roleList:[
                {name:'系统管理员',value:1},
                {name:'管理员',value:2},
                {name:'会员',value:3},
                {name:'游客',value:4}
            ],
            //表单数据绑定
            user:{
                userCode:'',
                userName:'',
                userPassword:'',
                gender:0,
                birthday:'',
                phone:'',
                address:'',
                userRole:4,
                hobbys:[],
                checkPass:''
            },
            //定义表单基本的验证
            rules: {
                userCode: [
                    { required:true,trigger: 'blur', message: '请输入账号',  }
                ],
                userName: [
                    { required:true,trigger: 'blur', message: '请输入用户名',  }
                ],
                userPassword: [
                    { required:true,trigger: 'blur', message: '请输入密码',  }
                ],
                checkPass: [
                    { validator: validatePass2, trigger: 'blur' }
                ],
            },
            //日期插件设置
            pickerOptions: {
                disabledDate(time) {
                    return time.getTime() > Date.now();
                },
                shortcuts: [{
                    text: '今天',
                    onClick(picker) {
                        picker.$emit('pick', new Date());
                    }
                }, {
                    text: '昨天',
                    onClick(picker) {
                        const date = new Date();
                        date.setTime(date.getTime() - 3600 * 1000 * 24);
                        picker.$emit('pick', date);
                    }
                }, {
                    text: '一周前',
                    onClick(picker) {
                        const date = new Date();
                        date.setTime(date.getTime() - 3600 * 1000 * 24 * 7);
                        picker.$emit('pick', date);
                    }
                }]
            },
        };
    },
    methods: {
        submitForm(formName) {
            this.$refs[formName].validate((valid) => {
                if (valid) {
                    alert('submit!');
                } else {
                    console.log('error submit!!');
                    return false;
                }
            });
        },
        resetForm(formName) {
            this.$refs[formName].resetFields();
        }
    }
}
</script>

列表展示

<template>
  <div>
      <el-table
              :data="userList"
              stripe
              style="width: 100%">
          <el-table-column
                  prop="id"
                  label="ID"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
                  prop="userCode"
                  label="账号"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
                  prop="userName"
                  label="姓名"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
                  prop="gender"
                  label="性别"
                  style="width: 6%">
          </el-table-column>
          <el-table-column
                  prop="birthday"
                  label="出生年月"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
                  prop="phone"
                  label="联系方式"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
                  prop="address"
                  label="地址"
                  style="width: 15%">
          </el-table-column>
          <el-table-column
              prop="userRole"
              label="角色">
          </el-table-column>
          <el-table-column label="操作">
              <template slot-scope="scope">
                  <el-button
                      size="mini"
                      @click="handleEdit(scope.$index, scope.row)">编辑</el-button>
                  <el-button
                      size="mini"
                      type="danger"
                      @click="handleDelete(scope.$index, scope.row)">删除</el-button>
              </template>
          </el-table-column>
      </el-table>

  </div>
</template>
<script>
export default {
    // eslint-disable-next-line vue/multi-word-component-names
    name:'Register',
    data() {
        return{
            userList:[
                {id:1,userCode:'admin',userName:'系统管理员',gender:'男',birthday:'1993-11-12',phone:'13865427845',address:'北京市',userRole:'系统管理员'},
                {id:2,userCode:'sunshangxiang',userName:'孙尚香',gender:'女',birthday:'1999-12-17',phone:'13965489527',address:'郑州市',userRole:'游客'},
                {id:3,userCode:'guanyu',userName:'关羽',gender:'男',birthday:'2000-01-09',phone:'15765842469',address:'徐州市',userRole:'会员'},
                {id:4,userCode:'sunquan',userName:'孙权',gender:'男',birthday:'1992-10-08',phone:'18965552451',address:'杭州市',userRole:'管理员'},
                {id:5,userCode:'liubei',userName:'刘备',gender:'男',birthday:'1989-09-24',phone:'15068689595',address:'广州市',userRole:'管理员'},
                {id:6,userCode:'caocao',userName:'曹操',gender:'男',birthday:'1992-10-08',phone:'15545211245',address:'兖州市',userRole:'管理员'},
                {id:7,userCode:'huangyueying',userName:'黄月英',gender:'女',birthday:'2009-01-01',phone:'15966648531',address:'亳州市',userRole:'游客'},
            ]
        }
    },
    methods: {

    }
}
</script>

在这里插入图片描述

其他

详见官网…

mint-ui

介绍

  • Mint UI是一个基于Vue.js的移动端组件库,由饿了么前端团队开发。
  • 它提供了一系列丰富的UI组件,包括按钮、输入框、弹窗、轮播图、下拉刷新等常用组件,可以帮助开发者快速构建移动端的Web应用。
  • Mint UI具有简单易用、效果好、样式漂亮等特点,受到了广大开发者的欢迎。
  • Mint UI官网: http://mint-ui.github.io/#!/zh-cn

特点

Mint UI具有以下特点:

  1. 简单易用:Mint UI提供了丰富的移动端UI组件,使用简单,开发者可以快速上手,并快速构建移动端应用。

  2. 轻量化:Mint UI的组件库比较轻量,可以高效地加载和运行在移动设备上,提供了更好的用户体验。

  3. 样式漂亮:Mint UI的组件拥有精美的视觉效果,具有现代化、时尚的外观,能够满足用户对于UI设计的要求。

  4. 功能丰富:Mint UI提供了丰富的组件,包括按钮、输入框、弹窗、轮播图、下拉刷新等常见的移动端UI组件,满足开发者在移动应用开发中的各种需求。

  5. 支持Vue.js:Mint UI是基于Vue.js开发的组件库,与Vue.js完美融合,开发者可以使用Vue.js的特性和功能来更加灵活地定制和使用组件。

总之,Mint UI具有简单易用、轻量化、样式漂亮、功能丰富等特点,适用于开发移动端的Web应用。Mint UI具有以下特点:

在这里插入图片描述

安装组件

npm install mint-ui -S

引入组件

  • 引入全部组件

    // 引入全部组件 import Vue from 'vue'; import Mint from 'mint-ui'; 
    Vue.use(Mint);
    
  • 按需引入

  • 借助 babel-plugin-component,我们可以只引入需要的组件,以达到减小项目体积的目的。

  • 首先,安装 babel-plugin-component: npm install babel-plugin-component -D

    {
      "presets": [
        ["es2015", { "modules": false }]
      ],
      "plugins": [["component", [
        {
          "libraryName": "mint-ui",
          "style": true
        }
      ]]]
    }
    
  • 如果你只希望引入部分组件,比如 Button 和 Cell,那么需要在 main.js 中写入以下内容:需要引入样式:import 'mint-ui/lib/style.css';

    // The Vue build version to load with the `import` command
    // (runtime-only or standalone) has been set in webpack.base.conf with an alias.
    import Vue from 'vue'
    import App from './App'
    import router from './router'
    
    // 1、引入Element-ui组件
    // import { Button } from 'element-ui';
    // Vue.use(Button)
    
    // 2、引入Mint-ui组件
    import 'mint-ui/lib/style.css';
    import {Button} from 'mint-ui';
    Vue.component(Button.name, Button);
    
    Vue.config.productionTip = false  //设置在控制台环境进行代码提示作用
    
    // 1.全局路由守卫
    router.beforeEach((to,from,next) => {
      /*
        to:表示要去的新页面
        from:表示旧的页面
        next:表示是否
      */
      // 0——表示未登录
      // 1——表示已登录
      var islogin = 1;
      if(to.meta.needAuth){
        if(islogin == 0){
          router.push({name:'login'})
        }
        if(islogin == 1){
          next()
        }
      }else{
        next()
      }
    })
    
    // 2.全局过滤器
    Vue.filter('toFixed1',function(val,data,data1){
      return data1 + val.toFixed(data)
    })
    
    /* eslint-disable no-new */
    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>'
    })
    

Mint-ui相关组件

官网文档: https://mint-ui.github.io/docs/#/zh-cn2
在这里插入图片描述

<template>
  <div class="hello">

      <mt-button type="danger" @click="myToast">danger</mt-button>

      <hr>
      <el-button type="primary">主要按钮</el-button>

      <hr>
      <router-link to="/mydetail">产品详情</router-link>
      <router-link to="/mycar">购物车</router-link>
      <router-link to="/myorder">下单页面</router-link>

      <hr>
      <button @click="mytab">点击</button>

      <hr/>
      <router-link to="/tab">选项卡</router-link>

      <hr/>
      <myslot>
        <div slot="name1">
          {{msg}}
        </div>
        <div slot="name2">
          {{num}}
        </div>
      </myslot>

      <hr/>
      <input type="text" placeholder="请输入用户名" v-model="t1"/>
      <input type="text" placeholder="请输入密码" v-model="t2"/>
      <button :class="{active:isTrue}">登录</button>

      <hr/>
      <input type="text" name="" id="" v-model="num3"/>

      <hr/>
      <input type="text" placeholder="请输入用户名" v-model="user"/>
      <input type="text" placeholder="请输入密码" v-model="password"/>
      <button :class="{active:getActive}">登录</button>
      <h1>{{getAvg}}</h1>
      <h1>{{getSum}}</h1>
      <h1>{{num | toFixed(5,"$")}}</h1>
      <h1>{{num1 | toFixed1(5,"$")}}</h1>
      <h1>{{msg}}</h1>
  </div>
</template>

<script>
import { Toast } from 'mint-ui';
import myslot from './02slot';

export default {
  name: 'HelloWorld',
  data () {
    return {
      num:10,
      num1:20,
      num3:100,
      msg: 'Welcome to Your Vue.js App',
      user:'',
      password:'',
      isTrue:false,
      t1:'',
      t2:'',
    }
  },
  filters:{
    toFixed(val,data,data1){
      return data1 + val.toFixed(data)
    }
  },
  computed:{
    getSum(){
      return this.num + this.num1;
    },
    getAvg(){
      return this.getSum/2;
    },
    getActive(){
      if(this.user==''||this.password==''){
        return false
      }
      return true
    }
  },
  watch:{
    num3(){
      console.log("num3修改了")
    },
    t1(){
      if(this.t1 == '' || this.t2 ==''){
        this.isTrue = false
      }else{
        this.isTrue = true
      }
    },
    t2(){
      if(this.t1 == '' || this.t2 ==''){
        this.isTrue = false
      }else{
        this.isTrue = true
      }
    }
  },
  components:{
    myslot,
  },
  methods:{
    mytab(){
      //链式路由跳转
      this.$router.push({
        // 方式一
        // name:'tab'
        // 方式二
        path:'/tab',
        query:{
          id:100
        }
      })
    },
    myToast(){
      Toast({
        message: '提示',
        position: 'center',
        duration: 5000
      });
    }
  },
}
</script>

<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
	.active{
	  color: red;
	}
	h1, h2 {
	  font-weight: normal;
	}
	ul {
	  list-style-type: none;
	  padding: 0;
	}
	li {
	  display: inline-block;
	  margin: 0 10px;
	}
	a {
	  color: #42b983;
	}
</style>

前端第三方组件库国内官网地址

Vant-ui 国内官网: https://vant-contrib.gitee.io/vant/#/zh-CN/
layui 官网: https://layuion.com/docs/element/color.html
jQuery 官网:https://www.jquery123.com/
Apache ECharts 官网:https://echarts.apache.org/zh/index.html

微信开发文档官网:https://developers.weixin.qq.com/miniprogram/dev/framework/

w3c国内官网:https://www.w3school.com.cn/

mdn国内官网:https://developer.mozilla.org/zh-CN/docs/Web/HTML

swiper官网 :https://www.swiper.com.cn/usage/index.html

betterscroll官网:添加链接描述

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

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

相关文章

基于Arduino的电梯超载报警系统

企鹅&#xff1a;2583550535 项目和论文都有 第1章 绪论.............................................................................................................................. 1 1.1 项目背景及意义........................................................…

ABP.VNET 项目结构

想要了解ABP分层架构&#xff1a;ABP分层架构-CSDN博客 可以看此篇文章 apb.vnet 生成的项目的目录结构 .Application 项目 应用服务用于将领域(业务)逻辑暴露给展现层。 展现层通过传入DTO(数据传输对象)参数来调用应用服务&#xff0c;而应用服务通过领域对象来执行相应的…

【网络安全】2030年十大新兴网络安全威胁

欧盟网络安全局&#xff08;ENISA&#xff09;已发布了一份全面的清单&#xff0c;列出了预计到2030年将影响数字领域的十大新兴网络安全威胁。 该预测是为期八个月的广泛研究的成果&#xff0c;融合了ENISA前瞻专家小组、CSIRTs网络以及欧盟CyCLONe专家的见解。 这项研究突显…

抖音小店无货源怎么做?从开店到发货,最全教程来了!

哈喽~我是电商月月 近几年&#xff0c;抖音的发展如火如荼&#xff0c;抖音小店也吸引了大批新手商家入驻 那抖音小店具体流程到底怎么做&#xff1f;无货源的商家去哪找货&#xff1f;怎么上架&#xff0c;如何推流? 不知道&#xff1f; 今天我就给大家讲一下抖音小店从开…

[集群聊天服务器]----(五)User类、UserModel类

接着上文[集群聊天服务器]----(四)MySQL数据库模块&#xff0c;接下来我们对User类、UserModel类进行剖析&#xff0c;User表和UserModel类是项目最基本也是最重要的部分&#xff0c;通过它我们对用户的id&#xff0c;用户名&#xff0c;密码&#xff0c;状态相关信息进行存储&…

数据分析【方差分析】四

方差分析的核心 什么是方差分析:方差分析是假设检验的一种延续与扩展,主要用于多个总体均值(三组或三组以上均值)是否相等做出假设检验,研究分类型自变量对数值型因变量的影响。 它的零假设和设备假设分别为: 单因素方差分析的前提条件 独立性 组内独立(随机抽样、…

<string.h>中部分库函数的模拟实现

前言 嗨&#xff0c;我是firdawn&#xff0c;本章将简单介绍&#xff0c;<string.h>中部分库函数的模拟实现&#xff0c;如strncpy&#xff0c;strncat&#xff0c;memcpy&#xff0c;memmove。在本文片末&#xff0c;还讲简单介绍判断机器大小端的函数实现&#xff0c;…

【Linux】LAMP集群分布式安全方案

LAMP集群分布式安全方案主要涉及确保Linux、Apache、MySQL和PHP&#xff08;LAMP&#xff09;组合构成的集群环境的安全性和稳定性。 本次实验通过网络层安全对防火墙配置&#xff1a;使用防火墙&#xff08;如iptables或firewalld&#xff09;来限制对集群的访问&#xff0c;只…

设计模式在芯片验证中的应用——单例

一、单例模式 单例模式(Singleton)是一种创建型设计模式&#xff0c;能够保证一个类只有一个实例&#xff0c; 并提供一个访问该实例的全局节点。验证环境配置(configuration)类、超时(timeout)处理类等可以使用单例实现。比如说验证环境需要在特定场景中监测特定接口上的超时事…

AI+BI?国内期待值最高的4款智能问答类BI产品测评

AI大模型的这股风终是吹到了数据分析圈。与传统BI相比&#xff0c;问答BI进一步降低了数据获取门槛&#xff0c;通过对话的方式就可以访问数据并得出相应结论&#xff0c;更方便业务人员快速上手分析数据&#xff01; 问答BI&#xff08;Q&A BI&#xff09;在数据分析领域…

【论文笔记】| 定制化生成PuLID

PuLID: Pure and Lightning ID Customization via Contrastive Alignment ByteDance, arXiv:2404.16022v1 Theme: Customized generation 原文链接&#xff1a;https://arxiv.org/pdf/2404.16022 Main Work 提出了 Pure 和 Lightning ID 定制 (PuLID)&#xff0c;这是一种用于…

LaTeX 2022软件安装教程(附软件下载地址)

软件简介&#xff1a; 软件【下载地址】获取方式见文末。注&#xff1a;推荐使用&#xff0c;更贴合此安装方法&#xff01; LaTeX 2022是基于ΤΕΧ的一种排版系统&#xff0c;特别适用于生成科技和数学文档的高质量打印。它可用于各种文档类型&#xff0c;从简单信函到完整…

使用DataGrip连接Elasticsearch

使用DataGrip连接Elasticsearch 前言&#xff0c;公司需要使用ES来做数据的查询&#xff0c;我安装完ES&#xff0c;安装完Kibana的时候&#xff0c;想先开始尝试一下&#xff0c;插入查询数据能否可用&#xff0c;但是上次使用ES是好久前了&#xff0c;增删改查的请求根本记不…

学习Nginx(十四):配置SSL/TLS支持HTTPS

概念 SSL/TLS&#xff1a;安全套接字层&#xff08;SSL&#xff09;及其继任者传输层安全性&#xff08;TLS&#xff09;是为网络通信提供安全及数据完整性的一种安全协议。它们通过在应用程序协议&#xff08;如HTTP&#xff09;与TCP/IP协议族之间提供数据加密封面&#xff…

Three.js 研究:1、如何让物体动起来

1、制作模型动画 2、模型动画在代码中的调用 使用这个例子进行修改&#xff0c;使他能动作webgl_animation_skinning_morph.html 制作好的模型放到如下路径 /three.js-master/examples/models/gltf/无标题.gltf修改加载模型文件的地址 修改动画名称 运行 点击动画后&…

Python TinyDB库:轻量级NoSQL数据库的终极指南

更多Python学习内容&#xff1a;ipengtao.com TinyDB是一个轻量级的NoSQL数据库&#xff0c;适用于需要嵌入式数据库的小型项目。它使用JSON文件存储数据&#xff0c;并提供了简单易用的API&#xff0c;支持多种查询和索引操作。TinyDB非常适合那些不需要复杂数据库功能的小型应…

子比主题ACG美化插件[全开源]

WordPress插件是一种可以扩展和增强WordPress网站功能的应用程序。子比主题ACG美化插件听起来像是一个专门为ACG&#xff08;动画、漫画、游戏&#xff09;爱好者设计的美化插件&#xff0c;它可能包含多种功能来改善网站的外观和用户体验。 内置功能开关100意味着这个插件提供…

【Spring】SpringMVC基本概念

1、介绍 1.1简介 Spring MVC 是 Spring Framework 中的一个模块&#xff0c;它基于 Java 实现了 Web MVC 设计模式&#xff0c;用于构建 Web 应用程序。Spring MVC 提供了清晰的职责划分&#xff0c;使得开发者能够更加简洁和直观地开发 Web 层。 1.2优点 松耦合&#xff1a…

专业的ADAS测试记录仪ETHOS 2

随着ADAS驾驶辅助系统技术的快速发展及日臻成熟&#xff0c;近年来ADAS在全球汽车市场已开始快速普及和商业化&#xff0c;而如何确保ADAS系统的可靠和安全俨然成为汽车领域的重要问题。因此&#xff0c;ADAS驾驶辅助系统的测试也成为了各大整车厂及零部件厂商所关注的焦点。 一…

蓝海卓越计费管理系统 agent_setstate.php SQL注入漏洞复现

0x01 产品简介 蓝海卓越计费管理系统是一套以实现网络运营为基础,增强全局安全为中心,提高管理效率为目的的网络安全运营管理系统,提供“高安全、可运营、易管理”的运营管理体验,基于标准的RADIUS协议开发,它不仅支持PPPOE和WEB认证计费,还支持802.1X接入控制技术,与其…