Vue的使用(2)

一个简单的Vue项目的创建

  • 创建一个UserList.vue组件

在这里插入图片描述

  • 在App.vue中使用该组件
  1. 使用组件的第一步,导入组件
  2. 使用组件的第二部,申明这个组件
  3. 使用组件的第三步:引用组件

在这里插入图片描述

结果:

在这里插入图片描述

事件和插值语法

<template>
<div>
    <!-- template只允许有一个唯一的孩子 -->
    <h1>这是一个一级标题</h1>
    <div>{{ username }}</div>
    <div>性别{{ sex }} , 年龄{{ age }}</div>
    <button @click="btnClick1">点我触发事件</button>

    <hr>
    <ul>
        <li v-for="(user,index) of userList" :key="user.id">
            {{ index }}----{{ user.username }}
    </li>

    </ul>

    </div>
</template>

<script>
    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{
                username:'ZhangSan',
                sex:'男',
                age:18,

                userList:[
                    {
                        id:1,
                        username:'ZhangSan',
                        password:'123'
                    },
                    {
                        id:2,
                        username:'LiSi',
                        password:'456'
                    },
                    {
                        id:3,
                        username:'WangWu',
                        password:'789'
                    }
                ]

            }
        },
        methods:{
            btnClick1(){
                console.log("Hello Vue");
            }
        }
    }
</script>

结果:

在这里插入图片描述

ref属性

<!--ref属性的作用就是找组件对象
	这个对象是一个js对象	
-->


<!-- 给h1添加一个ref="h1" -->
<h1 ref="h1">这是一个一级标题</h1>

methods:{
	btnClick1(){
		var h1Element=this.$refs.h1
		console.log("找到的组件是"+h1Element.innerText)
	}
}

props

接收参数

  • App.vue
<template>
<div id="app">
    <!-- 使用组件的第三步:引用组件 -->
    <user-list name="ZhangSan" :age="18" title="个人信息"></user-list> 
    </div>
</template>

<script>
    // 使用组件的第一步,导入组件
    import UserList from './components/UserList.vue';


    export default {
        name: 'App',
        //使用组件的第二部,申明这个组件
        components: {
            UserList
        }
    }
</script>
  • UserList.vue
<template>
<div>
    <h1>{{ title }}</h1>
    <h1>{{ age }}</h1>
    <h1>{{ name }}</h1>
    </div>
</template>

<script>

    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{

            }
        },
        //第一种方式:数组式接收数据
        //props:["name","title","age"]
        //第二种方式:对象式
        // props:{
        //   name:String,
        //   age:Number,
        //   title:String
        // }
        //第三种方式
        props:{
            name:{
                type:String,
                required:true
            },
            age:{
                type:Number,
                requestd:true
            },
            title:{
                type:String,
                required:true
            }
        }
    }
</script>

scoped

添加到style中,只有当前组件生效
<template>
<div>
    <h1>{{ title }}</h1>
    <h1>{{ age }}</h1>
    <h1>{{ name }}</h1>
    </div>
</template>

<script>

    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{

            }
        },
        //第一种方式:数组式接收数据
        //props:["name","title","age"]
        //第二种方式:对象式
        // props:{
        //   name:String,
        //   age:Number,
        //   title:String
        // }
        //第三种方式
        props:{
            name:{
                type:String,
                required:true
            },
            age:{
                type:Number,
                requestd:true
            },
            title:{
                type:String,
                required:true
            }
        }
    }
</script>
<style scoped>
    div{
        color: aqua;
    }
</style>

结果:

在这里插入图片描述

localstorage和sessionstorage

<template>
<div>
    <button @click="saveLocalStorage">向localstorage中存数据</button><br><br>
    <button @click="deleteLocalStorage">向localstorage中删除数据</button><br><br>
    <button @click="getLocalStorage">向localstorage中获取数据</button><br><br>

    <hr>
    <button @click="saveSessionStorage">向sessionstorage中存数据</button><br><br>
    <button @click="deleteSessionStorage">向sessionstorage删除数据</button><br><br>
    <button @click="getSessionStorage">向sessionstorage获取数据</button><br><br>

    </div>
</template>

<script>

    export default { 
        name: 'BrowerStorage',
        methods:{
            saveLocalStorage(){
                //向LocalStorage存数据
                localStorage.setItem("key1","val1")
            },
            deleteLocalStorage(){
                //LocalStorage删除数据
                localStorage.removeItem("key1")

            },
            getLocalStorage(){
                //获取LocalStorage数据
                var val = localStorage.getItem("key1")
                console.log(val)
            },
            saveSessionStorage(){
                //向SessionStorage存数据
                sessionStorage.setItem("key2","val2")
            },
            deleteSessionStorage(){
                //删除SessionStorage数据
                sessionStorage.removeItem("key2")

            },
            getSessionStorage(){
                //获取SessionStorage的数据
                var val = sessionStorage.getItem("key2")
                console.log(val)
            }
        }
    }
</script>

全局事件总线

  • 在main.js中安装全局事件总线
import Vue from 'vue'
import App from './App.vue'

Vue.config.productionTip = false

new Vue({
    render: h => h(App),
    //生命周期的第一个钩子函数
    beforeCreate() {
        Vue.prototype.$bus = this //安装全局事件总线
    },


}).$mount('#app')
  • 在userList.vue中进行监听传过来的消息
<template>
<div>
    我喜欢的语言是:{{ language }}
    </div>
</template>

<script>

    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{
                language:''
            }
        },
        mounted(){
            //监听传递过来的消息
            this.$bus.$on("changeName",(newtext)=>{
                this.language=newtext;
            })
        },
        beforeDestroy(){
            this.$bus.$off ("changeName");
        }

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

  • 在userSchool.vue中发送数据
<template>
<div>
    <button @click="btnClick">点击查看</button>
    </div>
</template>

<script>
    export default { 
        name: 'UserSchool',//名字是可以随便写的
        methods:{
            btnClick(){
                //向某一个频道发送数据
                this.$bus.$emit("changeName","Java")
            }
        }

    }
</script>


结果:

在这里插入图片描述

代理服务器的配置和Axios的请求发送

什么是跨域

在这里插入图片描述

如何解决跨域问题

  • 在服务器端写一个过滤器,将响应头设置为可信赖
  • 在Vue端设置代理服务器
  • 给整个tomcat设置允许跨域 实际的操作也是设置相应资源可信赖

在这里插入图片描述

代理服务器的配置(vue.config.js)

  • 在vue.config.js中配置
module.exports = {
    assetsDir: 'static',
    productionSourceMap: false,
    devServer: {
        proxy: {
            '/api':{ 
                target:'http://127.0.0.1:9090',
                changeOrigin:true,
                pathRewrite:{
                    '/api':''
                }
            }
        }
    }
}

在这里插入图片描述

Axios的请求发送

  • 请求发送第一步:导包

在这里插入图片描述

在这里插入图片描述

  • 客户端发送请求(不带参数的GET请求)

在这里插入图片描述

  • 服务器端响应

在这里插入图片描述

package com.wz.practice.pojo;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
public class User {
    private Integer id;
    private String username;
    private String password;
}


package com.wz.practice.servlet;

import com.alibaba.fastjson.JSON;
import com.wz.practice.pojo.User;

import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.PrintWriter;

@WebServlet(urlPatterns = "/users")
public class UserServlet extends HttpServlet {
    @Override
    protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        req.setCharacterEncoding("utf-8");
        String username = req.getParameter("username");
        String password = req.getParameter("password");
        System.out.println("获取到的数据是:username:"+username+"password"+password);

        //向客户端返回json格式的数据
        User user = new User(1, "用户名数据", "密码数据");
        String data = JSON.toJSONString(user);
        //向客户端返回数据
        resp.setContentType("text/html;charset=utf-8");
        PrintWriter writer = resp.getWriter();
        writer.write(data);
        writer.flush();
        writer.close();

    }
}

结果:

在这里插入图片描述


  • 带参数的GET请求

ProxyAxios.vue

<template>
<div>
    <button @click="btnClick1">发送get请求不带参数 </button><br><br>
    <button @click="btnClick2">发送get请求带参数   </button><br><br>
    <button @click="btnClick3">发送post请求不带参数</button><br><br>
    <button @click="btnClick4">发送post请求带参数  </button><br><br>
    </div>
</template>

<script>

    export default { 
        name: 'ProxyAxios',
        methods:{
            btnClick1(){
                //发送get请求不带参数
                this.$axios.get("/api/users").then(
                    response=>{
                        var val = response.data;
                        console.log("获取到的数据是:"+val)
                    },error=>{
                        console.log("失败"+error.message)
                    }
                )
            },
            btnClick2(){
                //发送get请求带参数
                this.$axios.get("/api/users",{
                    params:{
                        username:"ZhangSan",
                        password:"123"
                    }
                }).then(
                    response=>{
                        var val = response.data;
                        console.log("获取到的数据是:"+val)
                    },error=>{
                        console.log("失败"+error.message)
                    }
                )
            },
            btnClick3(){

            },
            btnClick4(){

            }
        }
    }
</script>

结果:

在这里插入图片描述

在这里插入图片描述


  • POST请求不带参数

在这里插入图片描述


  • POST请求带参数
    在这里插入图片描述

在这里插入图片描述

插槽slot

基本使用

  • 在userList.vue中定义一个slot
<template>
<div>
    <h1>这里是userList的页面</h1>
    <!-- 在这里可以定义一个插槽,插槽就是占位符 -->
    <slot>
        这里就是插槽要显示内容的地方
    </slot>

    </div>
</template>

<script>

    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{
                language:''
            }
        },

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

  • 在App.vue中使用
<template>
<div id="app">
    <user-list>
        <div>插槽的具体使用者</div>
    </user-list>
    </div>

</template>

<script>
    // 使用组件的第一步,导入组件
    import UserList from './components/UserList.vue';
    export default {
        name: 'App',
        //使用组件的第二部,申明这个组件
        components: {
            UserList 
        }
    }
</script>

结果:

在这里插入图片描述

具名插槽

<template>
<div>
    <h1>这里是userList的页面</h1>
    <!-- 在这里可以定义一个插槽,插槽就是占位符 -->
    <slot name="slot1">
        这里就是插槽要显示内容的地方
    </slot>
    <hr>
    <slot name="slot2">
        这是第二个插槽
    </slot>

    </div>
</template>

<script>

    export default { 
        name: 'UserList',//名字是可以随便写的
        data(){
            return{
                language:''
            }
        },

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

<template>
<div id="app">
    <user-list>
        <div slot="slot1">插槽的具体使用者AAAA</div>
        <div slot="slot2">插槽的具体使用者BBBB</div>
    </user-list>
    </div>

</template>

<script>
    // 使用组件的第一步,导入组件
    import UserList from './components/UserList.vue';
    export default {
        name: 'App',
        //使用组件的第二部,申明这个组件
        components: {
            UserList 
        }
    }
</script>

结果:

在这里插入图片描述

路由

路由是控制页面跳转的

  • 导包

在这里插入图片描述

  • 编写main.js

在这里插入图片描述

  • HomePage.vue
<template>
<div style="background-color: pink;">
    <h1>这里是Home页面</h1>
    <hr>
    <div class="row">
        <div class="col-xs-2 col-xs-offset-2">
            <div class="list-group">
                <!-- Vue中借助router-link标签实现路由的切换 -->
                <router-link class="list-group-item" active-class="active" to="/about">About</router-link>&nbsp;
                <router-link class="list-group-item" active-class="active" to="/message">Message</router-link>
    </div>
    </div>
    </div>
    <!-- 这个div主要是内容展示 -->
    <router-view></router-view>
    </div>
</template>

<script>

    export default { 
        name: 'HomePage'
    }
</script>
<style scope>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

  • AboutPage.vue
<template>
<div style="width: 100%; height: 200px; background: skyblue;">
    这是About页面
    </div>
</template>

<script>

    export default { 
        name: 'AboutPage',
        data(){
            return{
                language:''
            }
        },

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

  • MessagePage.vue
<template>
<div style="width: 100%; height: 200px; background: rosybrown;">
    这是Message页面
    </div>
</template>

<script>

    export default { 
        name: 'MessagePage'
    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

  • App.vue
<template>
<div id="app">
    <home-page></home-page>
    </div>
</template>

<script>
    // 使用组件的第一步,导入组件
    import HomePage from './components/HomePage.vue';
    export default {
        name: 'App',
        //使用组件的第二部,申明这个组件
        components: {
            HomePage
        }
    }
</script>

结果:

在这里插入图片描述

多级路由

需求:在Message页面中增加两个按钮,点击之后,在Message页面中显示内容

  • DetailPage.vue
<template>
<div style="width: 100%; height: 200px; background: yellowgreen;">
    这是Detail页面
    </div>
</template>

<script>

    export default { 
        name: 'DetailPage',
        data(){
            return{
                language:''
            }
        },

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>
  • NewsPage.vue
<template>
<div style="width: 100%; height: 200px; background: palevioletred;">
    这是News页面
    </div>
</template>

<script>

    export default { 
        name: 'NewsPage',
        data(){
            return{
                language:''
            }
        },

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>
  • 在index.js中配置路由
//把路由导进来
import VueRouter from "vue-router";
//将要配置的路由的组件引进来(点击之后要跳转的都要配)
import AboutPage from "../components/AboutPage"
import MessagePage from "../components/MessagePage"
import DetailPage from "../components/DetailPage"
import NewsPage from "../components/NewsPage"

//创建并暴露一个路由器
export default new VueRouter({
    routes:[
        {
            path:'/about',
            component:AboutPage
        },
        {
            path:'/message',
            component:MessagePage,
            //在那里显示就在哪里配置
            children:[
                {
                    path:"detail",
                    name:"detail",
                    component:DetailPage
                },
                {
                    path:"news",
                    name:"news",
                    component:NewsPage
                }
            ]


        }
    ]
})

  • 在Message页面中实现跳转的功能
<template>
<div>
    <div style="width: 100%; height: 500px; background: rosybrown;">
        <h1>这是Message页面</h1>
        <hr>
        <div class="row">
            <div class="col-xs-2 col-xs-offset-2">
                <div class="list-group">
                    <!-- Vue中借助router-link标签实现路由的切换 -->
                    <router-link class="list-group-item" active-class="active" to="/message/detail">Detail</router-link>&nbsp;
                    <router-link class="list-group-item" active-class="active" to="/message/news">News</router-link>
    </div>
    </div>
    </div>
        <div>
            <!-- 这个div主要是内容展示 -->
            <router-view></router-view>
    </div>
    </div>
    </div>
</template>

<script>

    export default { 
        name: 'MessagePage'
    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

结果:

在这里插入图片描述

编程式路由

前进、后退、跳转到指定页面

  • HomePage.vue
<template>
<div style="background-color: pink;">
    <h1>这里是Home页面</h1>
    <div>
        <button @click="btnForward">前进</button> &nbsp;
        <button @click="btnBack">后退</button> &nbsp;
        <button @click="btnForwardAndBack">前进/后退</button> &nbsp;
        <button @click="btnJump">跳转到指定页面</button>&nbsp;
    </div>
    <hr>
    <div class="row">
        <div class="col-xs-2 col-xs-offset-2">
            <div class="list-group">
                <!-- Vue中借助router-link标签实现路由的切换 -->
                <router-link class="list-group-item" active-class="active" to="/about">About</router-link>&nbsp;
                <router-link class="list-group-item" active-class="active" to="/message">Message</router-link>
    </div>
    </div>
    </div>
    <!-- 这个div主要是内容展示 -->
    <router-view></router-view>
    </div>
</template>

<script>

    export default { 
        name: 'HomePage',
        methods:{
            btnForward(){
                //前进
                this.$router.forward();
            },
            btnBack(){
                //后退
                this.$router.back();
            },
            btnForwardAndBack(){
                //前进或者后退
                this.$router.go(-1);
            },
            btnJump(){
                //跳转
                //第一种跳转方式push,有历史,可以后退
                // this.$router.push({
                //   name:"news",
                //   query:{
                //     username:"ZhangSan",
                //     password:"123"
                //   }
                // })
                //第二种跳转方式replace,没有历史
                this.$router.replace({
                    name:"news",
                    query:{
                        username:"ZhangSan",
                        password:"123"
                    }
                })
            }
        }
    }
</script>
<style scope>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

在这里插入图片描述

  • 跳转页面发送的数据是可以取出来的

  • NewsPage.vue

<template>
<div style="width: 100%; height: 200px; background: palevioletred;">
    这是News页面
    </div>
</template>

<script>

    export default { 
        name: 'NewsPage',
        data(){
            return{
                language:''
            }
        },
        mounted(){
            var username = this.$route.query.username
            var password = this.$route.query.password

            console.log("username:"+username+"---password:"+password)
        }

    }
</script>
<style scoped>
    div{
        font-family: 楷体;
        font-size: 30px;
    }
</style>

结果:

在这里插入图片描述

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

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

相关文章

08-pandas 入门-pandas的数据结构

要使用pandas&#xff0c;你首先就得熟悉它的两个主要数据结构&#xff1a;Series和DataFrame。虽然它们并不能解决所有问题&#xff0c;但它们为大多数应用提供了一种可靠的、易于使用的基础。 一、Series Series是一种类似于一维数组的对象&#xff0c;它由一组数据&#x…

专业制造一体化ERP系统,专注于制造工厂生产管理信息化,可定制-亿发

制造业是国民经济的支柱产业&#xff0c;对于经济发展和竞争力至关重要。在数字化和智能化趋势的推动下&#xff0c;制造业正处于升级的关键时期。而ERP系统&#xff0c;即企业资源计划系统&#xff0c;能够将企业的各个业务环节整合起来&#xff0c;实现资源的有效管理和信息的…

Web项目与帆软11集成后通过项目访问cpt文件会弹出数据决策系统登录界面如何取消

1、登录帆软 - 数据决策系统 * 点击 &#xff1a;管理系统 - 模板认证 - 点击设置按钮 - 关闭 2、选择关闭单个认证 你点击后&#xff0c;它默认所有都是开的。你依次点击关闭&#xff0c;然后再把要的模板点击开启&#xff0c;如下图所示&#xff1a;第一个就表示开了认证&am…

NB水表和LoRa水表有哪些不同之处?

NB水表和LoRa水表是两种目前市场上常见的智能水表&#xff0c;它们在功能、性能、应用场景等方面存在一些不同之处。 一、技术方面 NB水表采用NB-IoT技术&#xff0c;而LoRa水表采用LoRa技术。NB-IoT技术是窄带物联网技术&#xff0c;它具有良好的低功耗、低成本、高覆盖、高可…

vue 转盘抽奖功能,可控制抽奖概率

实现逻辑&#xff1a; 思路&#xff1a;首先需要一个转盘&#xff0c;然后需要一个抽奖按钮定位在中间&#xff0c;图片提前设计或者用背景颜色代替&#xff08;这里用的是图片&#xff0c;然后计算概率&#xff09;&#xff0c;使用css完成转动效果&#xff0c;每次转动完成之…

游戏中的图片打包流程,免费的png打包plist工具,一款把若干资源图片拼接为一张大图的免费工具

手机游戏开发中&#xff0c;为了提高图片渲染性能&#xff0c;经常需要将小图片合并成一张大图进行渲染。如果手工来做的话就非常耗时。TexturePacker就是一款非常不错方便的处理工具。TexturePacker虽然非常优秀&#xff0c;但不是免费的。 对于打包流程&#xff0c;做游戏的…

大数据项目实战(Sqoop安装)

一&#xff0c;搭建大数据集群环境 1.4 Sqoop安装 1.sqoop安装 &#xff08;1&#xff09;上传安装包 &#xff08;2&#xff09;解压安装包 tar -zxvf sqoop-1.4.6.bin__hadoop-2.0.4-alpha.tar.gz -C /export/servers &#xff08;3&#xff09;重命名 mv sqoop-1.4.6.b…

继承AndroidView Model的错误

ViewModelProvider(this)[RegisterViewModel::class.java] 一行简单的代码&#xff0c;总是报这个错误 Caused by: java.lang.NoSuchMethodException: com.xinfa.registerlogin.viewmodel.LoginViewModel. [class android.app.Application] 经过一下午的思索&#xff0c;终于找…

发光太阳聚光器的蒙特卡洛光线追踪研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

JVM 内存大对象监控和优化实践

作者&#xff1a;vivo 互联网服务器团队 - Liu Zhen、Ye Wenhao 服务器内存问题是影响应用程序性能和稳定性的重要因素之一&#xff0c;需要及时排查和优化。本文介绍了某核心服务内存问题排查与解决过程。首先在JVM与大对象优化上进行了有效的实践&#xff0c;其次在故障转移与…

【AI】数学基础——高数(积分部分)

高数&#xff08;函数&微分部分&#xff09; 文章目录 1.4 微积分1.4.1 基本思想1.4.2 定积分定义定义计算定积分定积分性质定理N-L公式泰勒公式麦克劳林公式 1.5 求极值1.5.1 无条件极值1.5.2 条件极值1.5.3 多条件极值1.5.4 凹函数与凸函数 1.4 微积分 用于求解速度、面积…

Windows Qt 5.12.10下载与安装

Qt 入门实战教程&#xff08;目录&#xff09; C自学精简实践教程 目录(必读) 1 Qt5.12.10下载 qt-opensource-windows-x86-5.12.10.exe 官方离线安装包 Download Source Package Offline Installers | Qt 下载巨慢&#xff08;也可能很快&#xff09; 只能下载到最新的&…

Nodejs快速搭建简单的HTTP服务器,并发布公网远程访问

前言 Node.js 是能够在服务器端运行 JavaScript 的开放源代码、跨平台运行环境。Node.js 由 OpenJS Foundation&#xff08;原为 Node.js Foundation&#xff0c;已与 JS Foundation 合并&#xff09;持有和维护&#xff0c;亦为 Linux 基金会的项目。Node.js 采用 Google 开发…

C# Emgu.CV 条码检测

效果 项目 代码 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Emgu.CV; using Emgu.CV.Util; using static Emgu.C…

1960-2022年各国ESG(环境、社会、治理)数据-草案数据集

1960-2022年各国-ESG&#xff08;环境、社会、治理&#xff09;-草案数据集 1、时间&#xff1a;1960-2022年 2、范围&#xff1a;世界各国 3、来源&#xff1a;世界银行 4、说明&#xff1a;世界银行的ESG&#xff08;环境、社会、治理&#xff09;数据草案数据集涵盖了17…

算法通过村第四关-栈白银笔记|括号问题

文章目录 前言1. 括号匹配问题2. 最小栈问题3. 最大栈 总结 前言 提示&#xff1a;如果让我送给年轻人四个字&#xff0c;就是&#xff1a;量力而行。 量力而行不会失眠&#xff0c;不会啃老&#xff0c;不会为各种考试焦虑。顺其自然活得轻松。其实&#xff0c;量力而行最易大…

系统架构:软件工程

文章目录 资源知识点自顶向下与自底向上形式化方法结构化方法敏捷方法净室软件工程面向服务的方法面向对象的方法快速应用开发螺旋模型软件过程和活动开放式源码开发方法功用驱动开发方法统一过程模型RUP基于构件的软件开发UML 资源 信息系统开发方法 知识点 自顶向下与自底…

ElasticSearch - 海量数据索引拆分的一些思考

文章目录 困难解决方案初始方案及存在的问题segment merge引入预排序 拆分方案设计考量点如何去除冗余数据按什么维度拆分&#xff0c;拆多少个最终的索引拆分模型演进历程整体迁移流程全量迁移流程流量回放比对验证异步转同步多索引联查优化效果 总结与思考参考 困难 索引数据…

详细讲解移植u-boot.2022.10版本移植到开发板基本方法

大家好&#xff0c;我是ST​。​ 今天给大家讲一讲如何将u-boot.2022.10版本移植到imx6ull开发板上。 环境 选项内容编译主机UbuntuLTS 18.04目标板ATK I.MX6ULL&#xff08;512MB DDR3 8GB EMMC&#xff09;u-boot版本2022.10交叉编译工具链gcc-linaro-7.5.0-2019.12-i686…

Moonbeam生态跨链互操作项目汇总

立秋已过&#xff0c;今年的夏天已经接近尾声&#xff0c;即将迎来凉爽的秋天。Moonbeam生态一同以往持续成长&#xff0c;在8月也举办了不少活动、完成集成合作以及协议更新。让我们一同快速了解Moonbeam生态项目近期发生的大小事件吧&#xff01; Moonwell Moonwell是一个建…