vue基础3

news2024/9/20 10:38:03

1.推荐好用的第三方框架

BootCDN - Bootstrap 中文网开源项目免费 CDN 加速服务

1.moment.js

2.dayjs

2.收集表达数据 

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
    <style>

    </style>
</head>
<!-- 

        收集表单数据:
            若:<input type="text"/>,则v-model收集的是value值,用户输入的就是value值。
            若:<input type="radio"/>,则v-model收集的是value值,且要给标签配置value值
            若:<input type="checkbox"/>
                1.没有配置input的value属性,那么收集的就是checked(勾选 or 未勾选,是布尔值)
                2.配置input的value属性:
                    (1)v-model的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
                    (2)v-model的初始值是数组,那么收集的的就是value组成的数组
                备注:v-model的三个修饰符:
                    lazy:失去焦点再收集数据
                    number:输入字符串转为有效的数字
                     trim:输入首尾空格过滤
-->

<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <form @submit.prevent="demo">
            <!-- 使用label标签让label里的内容与一个标签作为关联 -->
            <label for="demo"> 账号:</label>
            <!-- 去掉前后空格 -->
            <input type="text" name="" id="demo" v-model.trim="userInfo.account">
            <br>
            <label for="password">密码:</label>
            <input type="password" name="" id="password" v-model="userInfo.password">
            <br>
            <label for="age">年龄:</label>
            <!-- 转成 数字类型  -->
            <input type="number" name="" id="age" v-model.number="userInfo.age">
            <br>
            <label for="sex">性别:</label>
            <!-- 单选框 -->
            男
            <input type="radio" value="男" v-model="userInfo.sex">
            女
            <input type="radio" value="女" v-model="userInfo.sex">
            <br>
            爱好:
            学习<input type="checkbox" value="study" v-model="userInfo.hobby">
            <!-- 不写value默认收集的就是checked 布尔值 -->
            打游戏<input type="checkbox" value="playgame" v-model="userInfo.hobby">
            吃饭<input type="checkbox" value="eating" v-model="userInfo.hobby">
            <br>
            所属校区:
            <select v-model="userInfo.city">
                <option value="">请选择校区</option>
                <option value="beijing">北京</option>
                <option value="shanghai">上海</option>
                <option value="shenzhen">深圳</option>
                <option value="wuhan">武汉</option>
            </select>
            <br>
            其他信息
            <!-- 懒加载 当失去焦点的时候才获取值 -->
            <textarea v-model.lazy="userInfo.otherInfo">
            </textarea>
            <br>
            <input type="checkbox" v-model="userInfo.agree"> 阅读并接受 <a href="http://www.baidu.com">《用户协议》</a>

            <br>
            <button>提交</button>
        </form>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示

        const vm = new Vue({
            el: "#root",
            data: {
                userInfo: {
                    account: '',
                    password: '',
                    age:19,
                    sex: '2',
                    hobby: [],
                    city: 'beijing',
                    otherInfo: '',
                    agree: false

                }

            },
            methods: {
                demo() {
                    console.log(JSON.stringify(this._data));
                }
            },
        })

    </script>

</body>

</html>

3.过滤器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>过滤器</title>
    <!-- 引入Vue -->
     <script type="text/javascript" src="../js/vue.js"></script>
     <script type="text/javascript" src="../js/dayjs.min.js"></script>
</head>

<!-- 
    过滤器:
        定义:对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)。
        语法:
            1.注册过滤器:Vue.filter(name,callback)或 new Vue{filters:{}}
            2.使用过滤器:{{xxx|过滤器名}}或 v-bind:属性="xxx|过滤器名”
        备注:
            1.过滤器也可以接收额外参数、多个过滤器也可以串联
            2.并没有改变原本的数据,是产生新的对应的数据

-->
<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <h2>显示格式化后的时间</h2>
        <!-- 计算属性实现 -->
        <h3>现在的时间是:{{date}}</h3>
          <!-- 计算属性实现 -->
          <h3>现在的时间是:{{dateFun()}}</h3>
          <!-- 过滤器实现 -->
          <h3>现在的时间是:{{time | timeFormat('YYYY-MM-DD') | mySlice}}</h3>
          <hr>
          <h3 :x="msg | mySlice">尚硅谷</h3>
    </div>

      <!-- 准备好一个容器 -->
      <div id="root2">
        <h2>显示格式化后的时间</h2>

          <!-- 过滤器实现 -->
          <h3>现在的时间是:{{time |  mySlice}}</h3>
    </div>

    <script type="text/javascript" >
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示

        Vue.filter('mySlice',function(val){
            return val.toString().slice(0,4);
        })

        const vm = new Vue({
            el:"#root",
            data: {
                time:Date.now(),
                msg:'你好,尚硅谷'
            },
            methods: {
                dateFun(){
                    return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss');
                }
            },
            computed:{
                date(){
                    return dayjs(this.time).format('YYYY-MM-DD HH:mm:ss');
                }
            },
            // 局部过滤器
            filters:{
                timeFormat(val,format){
                    if(format!==null){
                        return dayjs(val).format(format);
                    }else{
                        return dayjs(val).format('YYYY-MM-DD HH:mm:ss');
                    }
                }

            }
        })    

        
        const vm2 = new Vue({
            el:"#root2",
            data: {
                time:Date.now()
            }
        })    

        setInterval(()=>{
            vm.time = Date.now()
        },1000)
    </script>

</body>
</html>

4.cookie

勾上后只能被 http携带

5.自定义指令

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 引入Vue -->
     <script type="text/javascript" src="../js/vue.js"></script>
</head>
<body>


    <!-- 
        需求1:定义一个v-big指令,和v-text功能类似,但会把绑定的数值放大10倍,
        需求2:定义一个v-fbind指令,和 v-bind功能类似,但可以让其所绑定的input元素默认获取焦点。
    -->

    <!-- 
    
            自定义指令总结:
                一、定义语法:
                (1).局部指令:
                        new Vue({                                         new Vue({
                        directives:{指令名:配置对象}   或  方法                 directives:{指令名(){}}
                        })    ([bind:(){},inserted:(){},update(){}])                              })
                (2).全局指令:
                    Vue.directive(指令名,配置对象)或 Vue.directive(指令名,回调函数)
                二、配置对象中常用的3个回调:
                    (1).bind:指令与元素成功绑定时调用。
                    (2).inserted:指令所在元素被插入页面时调用。
                    (3).update:指令所在模板结构被重新解析时调用。
                三、备注:
                    1.指令定义时不加v-,但使用时要加v-;
                    2.指令名如果是多个单词,要使用kebab-case命名方式,不要用camelCase命名。
    -->


    <!-- 准备好一个容器 -->
    <div id="root">
        {{name}}
        <h2>当前的n值是<span v-text="n"></span></h2>
        <h2>放大10倍后的n值是<span v-big="n"></span></h2>
        <button @click="n++">点我n+1</button>
        <button @click="jiejue">点我变化name</button>

        <hr>
        <!-- <input type="text" v-fbind:value="n" autofocus> autofocus 自动获取焦点 不是什么浏览器都好使 -->
        <input type="text" v-fbind:value="n">
    </div>

        <!-- 准备好一个容器 -->
        <div id="root2">
            {{name}}
            <h2>当前的n值是<span v-text="n"></span></h2>
            <h2>放大10倍后的n值是<span v-big="n"></span></h2>
            <button @click="n++">点我n+1</button>
            <button @click="jiejue">点我变化name</button>
    
            <hr>
            <!-- <input type="text" v-fbind:value="n" autofocus> autofocus 自动获取焦点 不是什么浏览器都好使 -->
            <input type="text" v-fbind1:value="n">
        </div>

    <script type="text/javascript" >
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示
        Vue.directive('fbind1',{
                    bind(element,binding){
                        console.log('bind全局',this);
                        //指令与元素成功绑定时(一上来)
                        element.value = binding.value;
                    },
                    inserted(element,binding){
                        //指令所在元素被插入页面时
                        element.focus();
                        console.log('inserted全局',this);

                    },
                    //局部指令
                    update(element,binding){
                        //指令所在的模板被重新解析时
                        console.log('update全局',this);//注意此处时window
                        element.value = binding.value;
                    }
                  });

        const vm = new Vue({
            el:"#root",
            data: {
                name:2,
                n:1
            },
            methods: {
                jiejue(){
                    this.name++;
                }
            },
            // 函数式定义指令
            directives:{
                //big函数合适会被调用?1.指令与元素成功绑定时调用(一上来)2.指令所在的模板被重新解析时
                //名字比较长就用 -隔开 然后在定义指令的时候用原生写法  'big-number':function(e,b){}
                  big(element,binding){
                    // console.dir(element) 详细输出element
                    // console.log(element instanceof HTMLElement); true
                    // console.log(b);
                    console.log('big',this);
                    element.innerText=binding.value*10;
                  },
                  fbind:{
                    bind(element,binding){
                        console.log('bind',this);
                        //指令与元素成功绑定时(一上来)
                        element.value = binding.value;
                        console.log('bind');
                    },
                    inserted(element,binding){
                        //指令所在元素被插入页面时
                        console.log('inserted');
                        element.focus();
                        console.log('inserted',this);

                    },
                    //局部指令
                    update(element,binding){
                        //指令所在的模板被重新解析时
                        console.log('update');
                        console.log('update',this);//注意此处时window
                        element.value = binding.value;
                    }
                  }
            }
        })    

        new Vue({
            el:'#root2',
            data: {
                name:2,
                n:1
            },
            methods: {
                jiejue(){
                    this.name++;
                }
            }, // 函数式定义指令
            directives:{
                //big函数合适会被调用?1.指令与元素成功绑定时调用(一上来)2.指令所在的模板被重新解析时
                //名字比较长就用 -隔开 然后在定义指令的时候用原生写法  'big-number':function(e,b){}
                  big(element,binding){
                    // console.dir(element) 详细输出element
                    // console.log(element instanceof HTMLElement); true
                    // console.log(b);
                    console.log('big',this);
                    element.innerText=binding.value*10;
                  },
                  fbind:{
                    bind(element,binding){
                        console.log('bind',this);
                        //指令与元素成功绑定时(一上来)
                        element.value = binding.value;
                        console.log('bind');
                    },
                    inserted(element,binding){
                        //指令所在元素被插入页面时
                        console.log('inserted');
                        element.focus();
                        console.log('inserted',this);

                    },
                    //局部指令
                    update(element,binding){
                        //指令所在的模板被重新解析时
                        console.log('update');
                        console.log('update',this);//注意此处时window
                        element.value = binding.value;
                    }
                  }
            }
        })

    </script>

</body>
</html>

6.引出生命周期

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<!-- 
    生命周期:
        1.又名:生命周期回调函数、生命周期函数、生命周期钩子。
        2.是什么:Vue在关键时刻帮我们调用的一些特殊名称的函数。
        3.生命周期函数的名字不可更改,但函数的具体内容是程序员根据需求编写的。
        4.生命周期函数中的this指向是vm 或组件实例对象。


-->


<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <!-- opacity透明度 0~1 -->
         <h2 v-if="a">你好啊</h2>
        <h2 :style="h2style">欢迎学习Vue</h2>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示

        const vm = new Vue({
            el: "#root",
            data: {
                a:false,
                h2style: {
                    opacity: 0.2,
                },
            },
            methods: {

            },
            // Vue完成模板的解析,并把初始的真实的DOM元素放入页面后 (挂载完毕) 调用mounted
            mounted() {
                console.log('mounted',this);//vm 
                setInterval(() => {
                    this.h2style.opacity -= 0.01;
                    if (this.h2style.opacity <= 0) {
                        this.h2style.opacity = 1;
                    }

                }, 16);
            this.a=true;
            },
        })

        // window.onload=()=>{
        //     // vm.change(); 页面加载完再调用
        // }

        //通过外部的定时器实现(不推荐)
        // setInterval(() => {
        //     vm.h2style.opacity-=0.01;
        //     if(vm.h2style.opacity<=0){
        //         vm.h2style.opacity = 1;
        //     }

        // }, 16);

    </script>

</body>

</html>

 

这个事件监听器指的是自定义事件

7.分析生命周期

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <h2>当前的n值是:{{n}}</h2>
        <button @click="add">点我n+1</button>
        <button @click="bye">点我销毁vm</button>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示

        const vm = new Vue({
            el: "#root",
            //把整个template替换上面root 的div
            // template: ` 
            //     <div>
            //         <h2>当前的n值是{{n}}</h2>
            // <button @click="add">点我n+1</button>
                    
            //         </div>
            // `,
            data: {
                n: 1
            },
            methods: {
                add() {
                    this.n++;
                },
                bye(){
                    console.log('bye');
                    this.$destroy();//销毁vm
                }
            },
            beforeCreate() {
                console.log('beforeCreate');
                // console.log(this.n);
                // debugger;//这是前端的debug 
            },
            created() {
                console.log('created');
            },
            beforeMount() {
                console.log('beforeMount');//其实vue已经解析完了,没有往页面放呢
                // debugger;
            },
            mounted() {
                console.log('mounted ');
                console.log(this.$el instanceof HTMLElement);//true
            },
            beforeUpdate() {
                console.log('beforeUpdate');
                console.log(this.n);
                // debugger;
            },
            updated() {
                console.log('updated');  
            },
            beforeDestroy() {
                console.log('beforeDestroy');
            }, 
            destroyed() {
                console.log('destroy');
            },
        })

    </script>

</body>

</html>

8.总结生命周期

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

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <!-- 引入Vue -->
    <script type="text/javascript" src="../js/vue.js"></script>
</head>

<!-- 

    常用的生命周期钩子:
         1.mounted: 发送ajax请求、启动定时器、绑定自定义事件、订阅消息等【初始化操作】。
         2.beforeDestroy:清除定时器、解绑自定义事件、取消订阅消息等【收尾工作】。
    关于销毁Vue实例
         1.销毁后借助Vue开发者工具看不到任何信息。
         2.销毁后自定义事件会失效,但原生DOM事件依然有效。
         3.一般不会在beforeDestroy操作数据,因为即便操作数据,也不会再触发更新流程了。
-->

<body>
    <!-- 准备好一个容器 -->
    <div id="root">
        <!-- opacity透明度 0~1 -->
        <h2 v-if="a">你好啊</h2>
        <h2 :style="h2style">欢迎学习Vue</h2>

        <button @click="h2style.opacity=1">透明度设置为1</button>
        <button @click="stop">点我停止</button>
    </div>

    <script type="text/javascript">
        Vue.config.productionTip = false //阻止 vue 在启动时生成生产提示

        const vm = new Vue({
            el: "#root",
            data: {
                a: false,
                h2style: {
                    opacity: 0.2,
                },
            },
            methods: {
                stop() {
                    this.$destroy();
                }

            },
            // Vue完成模板的解析,并把初始的真实的DOM元素放入页面后 (挂载完毕) 调用mounted
            mounted() {
                console.log('mounted', this);//vm 
                this.timer = setInterval(() => {//返回的是定时器的id 数字类型 唯一标识
                    console.log("setInterval");
                    this.h2style.opacity -= 0.01;
                    if (this.h2style.opacity <= 0) {
                        this.h2style.opacity = 1;
                    }

                }, 16);
                this.a = true;
            },
            beforeDestroy() {
                console.log('清除定时器成功');
                clearInterval(this.timer)//放入唯一标识清除定时器
            },
        })

        // window.onload=()=>{
        //     // vm.change(); 页面加载完再调用
        // }

        //通过外部的定时器实现(不推荐)
        // setInterval(() => {
        //     vm.h2style.opacity-=0.01;
        //     if(vm.h2style.opacity<=0){
        //         vm.h2style.opacity = 1;
        //     }

        // }, 16);

    </script>

</body>

</html>

 

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

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

相关文章

MSYS2下载安装和使用

Minimalist GNU&#xff08;POSIX&#xff09;system on Windows&#xff0c;Windows下的GNU环境。 目录 1. 安装 2. pacman命令 3. 配置vim 4. 一些使用示例 4.1 编译代码 4.2 SSH登录远程服务器 1. 安装 官网下载&#xff1a;https://www.msys2.org/ 双击.exe文件&am…

【python】OpenCV—Faster Video File FPS

文章目录 1、需求描述2、正常方法 cv2.read3、加速方法 imutils.video.FileVideoStream4、涉及到的核心库函数4.1、imutils.video.FPS4.2、imutils.video.FileVideoStream 5、参考 1、需求描述 使用线程和队列数据结构将视频文件的 FPS 速率提高 &#xff01; 我们的目标是将…

解决Qt3D程序场景中无法显示创建的立体图形?

有的新手在创建Qt3D程序时&#xff0c;因为不熟练&#xff0c;导致经常遇到无法显示3D图形的情况。 原因其实也简单&#xff0c;就是设置的摄像机的位置不对&#xff0c;或者压根没有设置摄像机。 // CameraQt3DRender::QCamera *cameraEntity view.camera();cameraEntity-&g…

文件未保存后能否恢复?分享实用恢复指南,6个方法

在日常用电脑时文件未保存而导致的数据丢失&#xff0c;是许多人都会遭遇的棘手问题。那么面对这样的情况&#xff0c;文件真的能够恢复吗&#xff1f;本文将深入分析文件恢复的可能性&#xff0c;并提供一系列实用的建议。 一、了解文件恢复的基础 首先我们需要明白文件恢复并…

每一次新建终端固定到某个环境,配置PyCharm终端以自动激活环境

在PyCharm中&#xff0c;即使已经为项目设置了特定的Python解释器&#xff0c;默认情况下&#xff0c;新建的终端可能不会自动激活与项目绑定的Conda虚拟环境。要解决这个问题&#xff0c;可以采取以下步骤&#xff1a; 1. 配置PyCharm终端以自动激活环境 PyCharm支持为每个项…

手把手教你用家用电脑完成图片和视频AI去水印功能

一.效果展示 二.video-subtitle-remover源码地址 soda151314/video-subtitle-remover: 基于AI的图片/视频硬字幕去除、文本水印去除&#xff0c;无损分辨率生成去字幕、去水印后的图片/视频文件。无需申请第三方API&#xff0c;本地实现。AI-based tool for removing hard-cod…

孟德尔随机化、R语言,报错,如何解决?

&#x1f3c6;本文收录于《CSDN问答解惑-专业版》专栏&#xff0c;主要记录项目实战过程中的Bug之前因后果及提供真实有效的解决方案&#xff0c;希望能够助你一臂之力&#xff0c;帮你早日登顶实现财富自由&#x1f680;&#xff1b;同时&#xff0c;欢迎大家关注&&收…

推荐一款前端滑动验证码插件(Vue、uniapp)

uniapp版本&#xff1a;滑块拼图验证码&#xff0c;有后端&#xff0c;简单几步即可实现&#xff0c;小程序、h5都可以用 - DCloud 插件市场 Vue版本及cdn版本可以查阅文档&#xff1a; 行为验证 | Poster 文档 示例代码&#xff1a; <template><view id"app&…

使用阿里云的PAI-DSW进行语音关键词的训练

以前使用谷歌的Colab进行过在线的模型训练&#xff0c;不过要科学上网总是比较麻烦&#xff0c;今天第一次尝试使用阿里云的人工智能平台PAI/交互式建模&#xff08;DSW&#xff09;进行在线训练。 我采用的训练笔记本是TensorFlow的Simple audio recognition: Recognizing ke…

贝锐蒲公英视频监控方案:无需专线,实现连锁酒店摄像头集中监看

公司业务主要围绕连锁品牌酒店经营&#xff0c;从2019年成立至今&#xff0c;已经在北京、上海、杭州、武汉、南京、深圳等地设立了多家门店。为了实现集中管理&#xff0c;北京总部需要实时监看或调取各地酒店内的监控摄像头&#xff0c;并将监控数据集中存储至监控中心的服务…

智云-一个抓取web流量的轻量级蜜罐

智云-一个抓取web流量的轻量级蜜罐 安装环境要求 apache php7.4 mysql8 github地址 https://github.com/xiaoxiaoranxxx/POT-ZHIYUN 系统演示

【康复学习--LeetCode每日一题】3111. 覆盖所有点的最少矩形数目

题目&#xff1a; 给你一个二维整数数组 point &#xff0c;其中 points[i] [xi, yi] 表示二维平面内的一个点。同时给你一个整数 w 。你需要用矩形 覆盖所有 点。 每个矩形的左下角在某个点 (x1, 0) 处&#xff0c;且右上角在某个点 (x2, y2) 处&#xff0c;其中 x1 < x…

Base64解码时Illegal base64 character 20问题解决

一&#xff0c;问题 在使用Base64解码的时候 // 这里的keyContent是公钥&#xff0c;一般配置到配置中心里&#xff0c;然后注入到容器里 String publicKeyString keyContent .replaceAll("\\n", "") .replace("-----BEGIN PUBLIC KEY-----",…

二进制搭建 Kubernetes v1.20(中)

一、部署 CNI 网络组件 目录 一、部署 CNI 网络组件 1.flannel简介 1&#xff09;UDP模式 2&#xff09;VXLAN 模式 2.部署flannel ​编辑 3.Calico简介 1.flannel简介 K8S 中 Pod 网络通信&#xff1a;●Pod 内容器与容器之间的通信 在同一个 Pod 内的容器&#xff0…

什么是网络安全等级保护测评服务?

等保测评 依据国家网络安全等级保护制度规定&#xff0c;按照有关管理规范和技术标准&#xff0c;对非涉及国家秘密的网络安全等级保护状况进行检测评估。定级协助 根据等级保护对象在国家安全、经济建设、社会生活中的重要程度&#xff0c;以及一旦遭到破坏、丧失功能或者数据…

【Python工具】Python 实现 telnet、loguru 框架下的 DEBUG 分级日志打印

文章目录 1、背景2、轮子2.1、telnet2.2、loguru DEBUG 日志分级 1、背景 最近业务这边需要用 Python 起一个 web 服务器&#xff0c;做 LLM 相关的业务处理。后台选用的是 django 框架做 web 框架&#xff0c;现在也算结项了。初次写 Python&#xff0c;造出来的轮子啥的总结…

FPGA知识基础之--按键控制LED灯项目

文章目录 前言一、按键简介按键:通过按下或者释放来控制电路通断的电子元件按键原理图 二、实验要求三、程序设计3.1思路整理3.2 模型搭建3.3 顶层模块3.4 波形分析 四、代码整理4.1RTL代码4.2 仿真只需在Testbench上增加上述一段代码即可将参数实例化,可达到在Testbench上更改…

随堂测小程序的设计

管理员账户功能包括&#xff1a;系统首页&#xff0c;个人中心&#xff0c;学生管理&#xff0c;教师管理&#xff0c;试题信息管理&#xff0c;标签类型管理&#xff0c;系统管理 微信端账号功能包括&#xff1a;系统首页&#xff0c;考试成绩&#xff0c;试题信息&#xff0…

RDP Microsoft Remote Desktop 优化指南

RDP优化指南 RDP的优化主要从以下几个方面进行&#xff1a; 帧率设置开启硬件加速&#xff08;使用显卡&#xff09;传输协议设置链接用户数量nVidia显卡加速 1. 帧率设置&#xff08;这里我建议可以不去更改&#xff09; 我更信任UFO Test的FPS值&#xff0c;有人说改完之后…

15.2 zookeeper java client

15.2 zookeeper java client 1. Zookeeper官方1.1 依赖1.2 Zookeeper客户端连接测试1.3 Zookeeper节点操作1.3.1 zooKeeper.create创建节点1.3.2 zooKeeper.exists获取节点详情1.3.3 zooKeeper.getData获取节点数据1.3.4 zooKeeper.getChildren获取节点下所有子节点名称1.3.5 …