02 vue框架内部的各种指令和axios操作的代码详解

2023-05-16

目录

前言

第一个完整的Vue程序

el:挂载点 和 data:数据对象

v-text指令

v-html指令

v-on指令

v-show指令

v-if指令

v-bind指令

v-for指令

v-on指令补充

v-model指令:

axios网络请求库

axios应用于vue的注意事项


前言

Vue框架数据交互的本质是:dom元素的定位与Vue对象内部el的关联,页面的变量与Vue对象内部data的交互,页面dom的js函数与Vue内部methods的关联

第一个完整的Vue程序

<!DOCTYPE heml>
<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>Vue基础</title>
    </head>
    <body>
        <div id="app">
            {{ message }}
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app", 
                data:{
                    message:"Hello Vue"
                }
            })
        </script>
    </body>
</html>

注意:必须进行开发环境版本的声明 

el:挂载点 和 data:数据对象

el:挂载点是干什么的?就是声明new的Vue实例对象所管理的数据data在HTML页面中的哪一个dom,#代表id属性
data:数据对象,个人理解HTML中使用插值表达式{{变量名}},在Vue对象中,就是为变量赋值,然后值就渲染到页面了,可以通过            this在Vue对象的methods中访问到Vue对象中的data数据

<div id="app">
    {{ message }}
</div>

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<script>
    var app = new Vue({
        el:"#app", 
        data:{
            message:"Hello Vue"
        }
    })
</script>

可运行示例代码:

<!DOCTYPE heml>
<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>data数据对象</title>
    </head>
    <body>
        <div id="app"> <!--div是文本组件-->
            {{ message }} <!--获取普通数据对象-->

            <h2> {{ school }} </h2> <!--h2属于标题标签,获取school对象-->
            <h2> {{ school.name }} {{ school.mobile }}</h2> <!--获取school对象中的某个属性-->

            <ul> <!--ul标签属于无序列表标签,与li标签搭配使用,可以将多个li标签内容打印成一个列表-->
                <li> {{ campus }} </li>
            </ul>
            <ul> <!--ul标签属于无序列表标签,与li标签搭配使用,可以将多个li标签内容打印成一个列表-->
                <li> {{ campus[0] }} </li>
                <li> {{ campus[1] }} </li>
                <li> {{ campus[2] }} </li>
            </ul>
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",  //el是选择挂载元素点
                data:{ //data是挂载元素点所需要渲染的内容
                    //不同属性之间需要用逗号隔开
                    message:"你好 小黑!",  //普通数据类型
                    school:{ //对象类型,可以理解为结构体
                        name:"黑马程序员",
                        mobile:"15538779937"
                    },
                    campus:["北京校区","上海校区","深圳校区"] //数组类型
                }
            })
        </script>

    </body>
</html>

v-text指令

v-text指令完成的任务就是将data中值,赋给html页面中挂载点所在的dom元素,有两种表现形式见下 

<div id="app">
    <h2 v-text=" message+'!' "></h2> <!--形式1:data中变量的值会完全替换整个标签,不管原本存在什么-->
    <h2>深圳{{message + "!"}}</h2> <!--形式2:只会用变量值替换差值表达式,不会影响其他原来设定的值-->
</div>
var app = new Vue({
    el:#app,
    data:{
        message:"黑马程序员"
    }
})

可运行示例代码:

<!DOCTYPE heml>
<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>v-text指令</title>
    </head>
    <body>
        <div id="app">
            <h2 v-text="  message +'!!!!!' ">这几个字不会显示</h2> <!--空格没有影响-->
            <h2>{{ message + "!!!!!" }}这几个字会显示</h2>
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    message:"v-text指令"
                }
            })
        </script>
    </body>
</html>

v-html指令

v-html起作用,是在声明变量值是html语句,比如下述的例子,p标签的内容被解析成为一个a标签 

<div id="app">
    <p v-html="content"></p>
</div>

<script>
    var app = new Vue({
        el:"#app",
        data:{
            content:"<a href='http://www.itheima.com'>黑马程序员</a>"
        }
    })
</script>

可运行示例代码:

<!DOCTYPE heml>
<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>v-html标签</title>
    </head>
    <body>
        <div id="app">
            <p v-html="content"></p>
            <p v-text="content"></p>
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    content:"<a href='http://www.itheima.com'>黑马程序员</a>"
                }
            })
        </script>
    </body>
</html>

v-on指令

v-on指令,是为了给dom元素绑定对应的逻辑实践,下述例子是为button按钮绑定一个点击事件,有两种变现形式,效果相同

其中click是固定写法,代表点击事件,doIt为自定义函数名称

<div id="app">
    <input type="button" value="按钮事件" v-on:click="doIt"><!--表现形式1-->
    <input type="button" value="按钮事件" @click="doIt"><!--表现形式2-->
</div>

var app = new Vue({
    el:#app,
    methods:{
        doIt:function(){
            //函数的实现逻辑
        }
    }
})

可运行示例代码:

<!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>V-on指令基础</title>
  </head>

  <body>
    <div id="app">
      <input type="button" value="v-on指令" v-on:click="doIt">
      <input type="button" value="v-on简写" @click="doIt">
      <h2 @click="changeFood">{{ food }}</h2>
    </div>

    <!-- 开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
    <script>
      var app = new Vue({
        el:"#app",
        data:{
          food: "西蓝花"
        },
        methods:{
          doIt:function(){
            alert("做这个");
          },
          changeFood:function(){
            this.food += "很好吃";
          }
        }
      })
    </script>
  </body>
</html>

v-show指令

v-show指令可根据表达式的真假,切换元素的显示和隐藏 

<div id="app">
    <img src="地址" v-show="true">
    <img src="地址" v-show="isShow">
    <img src="地址" v-show="age>=18">
</div>

var app = new Vue({
    el:#app,
    data:{
        isShow:false,
        age:16
    }
})

可运行示例代码:

<!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>v-show指令</title>
  </head>
  <body>
    <div id="app">
      <input type="button" value="切换显示状态" @click="changeIsShow">
      <input type="button" value="累加年龄" @click="addAge">
      <img v-show="isShow" src="./img/monkey.gif" alt="">
      <img v-show="age>=18" src="./img/monkey.gif" alt="">
    </div>

    <!-- 1.开发环境版本,包含了有帮助的命令行警告 -->
    <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
    
    <script>
      var app = new Vue({
        el:"#app",
        data:{
          isShow:false,
          age:17
        },
        methods: {
          changeIsShow:function(){
            this.isShow = !this.isShow;
          },
          addAge:function(){
            this.age++;
          }
        },
      })
    </script>
  </body>
</html>

v-if指令

根据表达式的真假,切换和隐藏dom元素 

<div id="app">
    <p v-if="true">我是一个p标签</p>
    <p v-if="isShow">我是一个p标签</p>
    <p v-if="表达式">我是一个p标签</p>
</div>

var app = new Vue({
    el:#app,
    data:{
        isShow:false
    }
})

可运行示例代码:

<!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>v-if指令</title>
    </head>
    <body>
        <div id="app">
            <input type="button" value="切换显示" @click="toggleIsShow">
            <p v-if="isShow">黑马程序员</p>
            <p v-show="isShow">黑马程序员 - v-show修饰</p>
            <h2 v-if="temperature>=35">热死啦</h2>
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    isShow:false,
                    temperature:20
                },
                methods: {
                    toggleIsShow:function(){
                        this.isShow = !this.isShow;
                    }
                },
            })
        </script>
    </body>

</html>

v-bind指令

用于dom元素属性值的动态设置,有两种表现形式,见下

<div id="app">
    <!--形式1-->
    <img v-bind:src="imgSrc"> 
    <img v-bind:title="imgtitle">
    <img v-bind:class="{ isActive?'active':'' }"> <!--如果isActive的属性为真,class属性的值为active中的值,否则为空:''-->
    <img v-binde:class="{ active:isActive }"> <!--效果与上句相同-->

    <!--形式2-->
    <img :src="imgSrc">
    <img :title="imgSrc">
    <img :class="imgSrc">
</div>

var app = new Vue({
    el:#app,
    data:{
        imgSrc:"图片地址",
        imgTitle:"黑马程序员",
        isActive:false
    }
})

可运行示例代码:

<!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>v-bind指令</title>
        <style>
            .active{
                border: 1px solid red;
            }
        </style>
    </head>

    <body>
        <div id="app">
            <img v-bind:src="imgSrc" alt="">
            <br>
            <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="isActive?'active':''" @click="toggleActive">
            <br>
            <img :src="imgSrc" alt="" :title="imgTitle+'!!!'" :class="{active:isActive}" @click="toggleActive">
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    imgSrc:"http://www.itheima.com/images/logo.png",
                    imgTitle:"黑马程序员",
                    isActive:false
                },
                methods: {
                    toggleActive:function(){
                        this.isActive = !this.isActive;
                    }
                },
            })
        </script>
    </body>

</html>

v-for指令

用于根据数据生成dom列表结构,可以理解为是数组方式生成dom元素

<div id="app">
    <ul>
        <li v-for="(item, index) in arr" :title="item"> <!--item是基本的数据类型-->
            {{ index }} {{ item }}
        </li>
        <li v-for="(item, index) in objArr"> <!--item是诸如字典的复杂数据类型-->
            {{ item.name }}
        </li>
    </ul>
</div>

var app = new Vue({
    el:"#app",
    data:{
        arr:[1,2,3,4,5],
        objArr:[
            {name:"Jack"},
            {name:"Rose"}
        ]
    }
})

可运行示例代码:

<!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>v-for指令</title>
    </head>

    <body>
        <div id="app">
            <input type="button" value="添加数据" @click="add">
            <input type="button" value="移除数据" @click="remove">

            <ul>
                <li v-for="(it,index) in arr">
                    {{ index+1 }}黑马程序员校区:{{ it }}
                </li>
            </ul>
            <h2 v-for="item in vegetables" v-bind:title="item.name">
                {{ item.name }}
            </h2>
        </div>
        <!-- 1.开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    arr:["北京","上海","广州","深圳"],
                    vegetables:[
                        {name:"西兰花炒蛋"},
                        {name:"蛋炒西蓝花"}
                    ]
                },
                methods: {
                    add:function(){
                        this.vegetables.push({ name:"花菜炒蛋" });
                    },
                    remove:function(){
                        this.vegetables.shift();
                    }
                },
            })
        </script>
    </body>

</html>

v-on指令补充

v-on所规定的函数是可以进行自定义参数,并且v-on绑定的事件是通过事件修饰符指定,比如回车事件

各种事件的表达方式:https://cn.vuejs.org/v2/api/#v-on

<div id="app">
    <input type="button" @click="doIt(p1,p2)"> <!--绑定点击事件-->>
    <input type="text" @keyup.enter="sayHei"> <!--绑定回车事件-->
</div>

var app = new Vue({
    el:"#app",
    methods:{
        doIt:function(p1, p2){

        },
        sayHi:function(){
            
        }
    }
})

可运行示例代码:

<!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>v-on补充</title>
    </head>

    <body>
        <div id="app">
            <input type="button" value="点击" v-on:click="doIt(p1, p2, '哈哈哈', 180)"> <!--带参数的方法-->
            <input type="text" @keyup.enter="sayHi"> <!--不带参数的方法-->>
        </div>
        <!-- 1.开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    p1:"老铁",
                    p2:"666"
                },
                methods: {
                    doIt:function(p1, p2, p3, p4){
                        console.log(p1 + p2 + p3 + p4);
                        console.log(p1);
                        console.log(p2);
                        console.log(p3);
                        console.log(p4);
                    },
                    sayHi:function(){
                        alert("吃了没");
                    }
                },
            })
        </script>
    </body>

</html>

v-model指令:

v-model指令可以实现双向数据绑定,通俗点的说,就是当页面dom元素的值发生改变,那么对应data中的数据也会发生改变,反之亦然

<div id="app">
    <input type="text" v-model="message">
</div>

var app = new Vue({
    el:"#app",
    data:{
        message:"黑马程序员"
    }
})

<h1></h1>

可运行示例代码:

<!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>v-model指令</title>
    </head>

    <body>
        <div id="app">
            <input type="button" value="修改message" @click="setM">

            <input type="text" v-model="message" @keyup.enter="getM"> <!--前端数据影响后端数据-->

            <h2>{{ message }}</h2> <!--后端数据影响前端数据-->
        </div>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            var app = new Vue({
                el:"#app",
                data:{
                    message:"黑马程序员"
                },
                methods: {
                    getM:function(){
                        alert(this.message);
                    },
                    setM:function(){
                        this.message ="酷丁鱼";
                    }
                },
            })
        </script>
    </body>

</html>

axios网络请求库

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

/*
当后端有请求params的情况,即:currentPage={当前页号}&pageSize={页面大小}
axios的写法如下
*/
axios.get(地址?key1=value1&key2=value2).then(function(response){},function(err){})
axios.get(地址,{
                params:{
                    key1:value1,
                    key2:value2
                }
               }).then(function(response){},function(err){})

axios.post(地址?key1=value1&key2=value2).then(function(response){},function(err){})
axios.post(地址,{
                params:{
                    key1:value1,
                    key2:value2
                }
               }).then(function(response){},function(err){})

/*
当后端没有请求params的情况,即request内部只有一个body,例如
{
    "planAbstract": {
        "innerId": 1603960398793,
        "outerId": null,
        "planName": "观测计划2",
        "createUser": null,
        "startTime": null,
        "planDays": null,
    },
    "planDetails": [
        {
            "satelliteId":1,
            "detailBand": 0,
            "detailPolar": 1,
            "sequence": 1
        }
    ]
}
*/
axios的写法为:
var params = {
    "planAbstract": {
        "innerId": 1603960398793,
        "outerId": null,
        "planName": "观测计划2",
        "createUser": null,
        "startTime": null,
        "planDays": null,
    },
    "planDetails": [
        {
            "satelliteId":1,
            "detailBand": 0,
            "detailPolar": 1,
            "sequence": 1
        }
    ]
}
axios.post(地址,params).then(function(response){},function(err){})
  • axios必须先导入才可以使用
  • 使用get或post方法即可发送对应的请求
  • then方法中的回调函数会在请求成功或失败时触发
  • 通过回调函数的形参可以获取相应的内容,或者错误信息

可运行示例代码:

<!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>axios基本使用</title>
    </head>

    <body>
        <input type="button" value="get请求" class="get">
        <input type="button" value="post请求" class="post">
        <!-- 官网提供的 axios 在线地址 -->
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <script>
            /*
                接口1:随机笑话
                请求地址:https://autumnfish.cn/api/joke/list
                请求方法:get
                请求参数:num(笑话条数,数字)
                响应内容:随机笑话
            */
            document.querySelector(".get").onclick = function () {
                axios.get("https://autumnfish.cn/api/joke/list?num=6")
                // axios.get("https://autumnfish.cn/api/joke/list1234?num=6")
                .then(function (response) {
                    console.log(response);
                },function(err){
                    console.log(err);
                })
            }
            /*
                接口2:用户注册
                请求地址:https://autumnfish.cn/api/user/reg
                请求方法:post
                请求参数:username(用户名,字符串)
                响应内容:注册成功或失败
            */
            document.querySelector(".post").onclick = function () {
                axios.post("https://autumnfish.cn/api/user/reg",{username:"盐焗西兰花"})
                .then(function(response){
                    console.log(response);
                    console.log(this.skill);
                },function (err) {
                    console.log(err);
                })
            }

        </script>
    </body>

</html>

axios应用于vue的注意事项

  • axios回调函数中的this已经改变,无法通过this访问到data当中的数据
  • 解决:将this保存起来,回调函数中直接保存的this即可

可运行示例代码:

<!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>axios+vue</title>
    </head>

    <body>
        <div id="app">
            <input type="button" value="获取笑话" @click="getJoke">
            <p> {{ joke }}</p>
        </div>
        <!-- 官网提供的 axios 在线地址 -->
        <script src="https://unpkg.com/axios/dist/axios.min.js"></script>
        <!-- 开发环境版本,包含了有帮助的命令行警告 -->
        <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
        <script>
            /*
                接口:随机获取一条笑话
                请求地址:https://autumnfish.cn/api/joke
                请求方法:get
                请求参数:无
                响应内容:随机笑话
            */
            var app = new Vue({
                el:"#app",
                data:{
                    joke:"很好笑的笑话"
                },
                methods: {
                    getJoke:function(){
                        // console.log(this.joke);
                        var that = this;
                        axios.get("https://autumnfish.cn/api/joke").then(function(response){
                            // console.log(response)
                            console.log(response.data);
                            // console.log(this.joke);
                            that.joke = response.data;
                        },function (err) {  })
                    }
                },
            })

        </script>
    </body>

</html>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

02 vue框架内部的各种指令和axios操作的代码详解 的相关文章

随机推荐

  • 整数与IP地址间的转换(牛客)

    题目描述 xff1a 原理 xff1a ip地址的每段可以看成是一个0 255的整数 xff0c 把每段拆分成一个二进制形式组合起来 xff0c 然后把这个二进制数转变成 一个长整数 举例 xff1a 一个ip地址为10 0 3 193 每
  • C++中的qsort、sort排序

    注意 xff1a int char string之类的是可以之间使用 gt lt 61 61 之类的进行判断 xff0c char 类型的使用strcmp就行了 而struct与vector都可以当做数组进行处理 xff0c cmp函数传递
  • 迷宫问题(牛客)

    题目描述 xff1a 定义一个二维数组N M xff08 其中2 lt 61 N lt 61 10 2 lt 61 M lt 61 10 xff09 xff0c 如5 5数组下所示 xff1a int maze 5 5 61 0 1 0 0
  • 查找兄弟单词(牛客)

    题目描述 xff1a 兄弟单词 xff1a 给定一个单词X xff0c 如果通过任意交换单词中字母的位置得到的新的单词Y xff0c 那么称X和Y是兄弟单词 注意 xff1a bca和abc是兄弟单词 xff0c abc和abc是相同单词
  • 合唱团(牛客)

    题目描述 xff1a 计算最少出列多少位同学 xff0c 使得剩下的同学排成合唱队形 说明 xff1a N位同学站成一排 xff0c 音乐老师要请其中的 N K 位同学出列 xff0c 使得剩下的K位同学排成合唱队形 合唱队形是指这样的一种
  • 字符串排序(牛客)

    题目描述 xff1a 编写一个程序 xff0c 将输入字符串中的字符按如下规则排序 规则 1 xff1a 英文字母从 A 到 Z 排列 xff0c 不区分大小写 如 xff0c 输入 xff1a Type 输出 xff1a epTy 规则
  • 字符串加密(牛客)

    题目描述 xff1a 有一种技巧可以对数据进行加密 xff0c 它使用一个单词作为它的密匙 下面是它的工作原理 xff1a 首先 xff0c 选择一个单词作为密匙 xff0c 如TRAILBLAZERS 如果单词中包含有重复的字母 xff0
  • 统计每个月兔子的总数(牛客)

    题目描述 xff1a 有一只兔子 xff0c 从出生后第3个月起每个月都生一只兔子 xff0c 小兔子长到第三个月后每个月又生一只兔子 xff0c 假如兔子都不死 xff0c 问每个月的兔子总数为多少 xff1f 输入描述 xff1a 输入
  • 购物单(牛客)(01背包+分组背包+有依赖的背包)

    题目描述 xff1a 王强今天很开心 xff0c 公司发给N元的年终奖 王强决定把年终奖用于购物 xff0c 他把想买的物品分为两类 xff1a 主件与附件 xff0c 附件是从属于某个主件的 xff0c 下表就是一些主件与附件的例子 xf
  • gmssl 生成SM2证书、加密、解密、签名、验签

    1 生成SM2密钥对 gmssl ecparam genkey name sm2p256v1 out sm2keypair pem text 2 查看SM2密钥对 gmssl ec in sm2keypair pem text 3 生成自签
  • 求小球落地5次后所经历的路程和第五次反弹的高度(牛客)

    题目描述 xff1a 假设一个球从任意高度自由落下 xff0c 每次落地后反跳回原高度的一半 再落下 求它在第5次落地时 xff0c 共经历多少米 第5次反弹多高 xff1f 最后的误差判断是小数点6位 输入描述 xff1a 输入起始高度
  • 输入一行字符,分别统计出包含英文字符、空格、数字和其他字符的个数(牛客)

    题目描述 xff1a 输入一行字符 xff0c 分别统计出包含英文字母 空格 数字和其它字符的个数 输入描述 xff1a 输入一行字符串 xff0c 可以有空格 1qazxsw23 edcvfr45tgbn hy67uj m ki89ol
  • 字符串合并处理(牛客)

    题目描述 xff1a 按照指定规则对输入的字符串进行处理 详细描述 xff1a 将输入的两个字符串合并 对合并后的字符串进行排序 xff0c 要求为 xff1a 下标为奇数的字符和下标为偶数的字符分别从小到大排序 这里的下标意思是字符在字符
  • 蛇形矩阵(牛客)

    题目描述 xff1a 蛇形矩阵是由1开始的自然数依次排列成的一个矩阵上三角形 输入描述 xff1a 输入正整数N xff08 N不大于100 xff09 5 输出描述 xff1a 输出一个N行的蛇形矩阵 1 3 6 10 15 2 5 9
  • 图片整理(牛客)

    题目描述 xff1a Lily上课时使用字母数字图片教小朋友们学习英语单词 xff0c 每次都需要把这些图片按照大小 xff08 ASCII码值从小到大 xff09 排列收好 请大家给Lily帮忙 xff0c 通过C语言解决 输入描述 xf
  • 单词倒排(牛客)

    题目描述 xff1a 对字符串中的所有单词进行倒排 说明 xff1a 1 构成单词的字符只有26个大写或小写英文字母 xff1b 2 非构成单词的字符均视为单词间隔符 xff1b 3 要求倒排后的单词间隔符以一个空格表示 xff1b 如果原
  • 字符串运用-密码截取(牛客)

    题目描述 xff1a xff08 最大回文序列 xff09 Catcher是MCA国的情报员 xff0c 他工作时发现敌国会用一些对称的密码进行通信 xff0c 比如像这些ABBA xff0c ABA xff0c A xff0c 12332
  • 字符串加解密(牛客)

    题目描述 xff1a 1 对输入的字符串进行加解密 xff0c 并输出 2加密方法为 xff1a 当内容是英文字母时则用该英文字母的后一个字母替换 xff0c 同时字母变换大小写 如字母a时则替换为B xff1b 字母Z时则替换为a xff
  • 表达式求值(牛客)

    题目描述 xff1a 给定一个字符串描述的算术表达式 xff0c 计算出结果值 输入字符串长度不超过100 xff0c 合法的字符包括 43 xff0c 0 9 xff0c 字符串内容的合法性及表达式语法的合法性由做题者检查 本题目只涉及整
  • 02 vue框架内部的各种指令和axios操作的代码详解

    目录 前言 第一个完整的Vue程序 el xff1a 挂载点 和 data xff1a 数据对象 v text指令 v html指令 v on指令 v show指令 v if指令 v bind指令 v for指令 v on指令补充 v mo