Vue的使用(2)

news2024/11/19 5:41:32

一个简单的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>

结果:

在这里插入图片描述

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

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

相关文章

五、性能测试之linux分析命令

linux分析命令 一、服务器基础知识二、linux文件结构三、linux文件权限四、linux命令1、安装应用fedora家族: 如centosdebain家族&#xff1a;如ubuntu 2、获取帮助第一种&#xff1a;command --help第二种&#xff1a;man command第三种&#xff1a;info 3、服务器性能分析基础…

VBA技术资料MF47:VBA_文件夹命令MkDir

【分享成果&#xff0c;随喜正能量】善待这漫长又短暂的岁月&#xff0c;劝君莫惜金缕衣&#xff0c;劝君惜取少年时。世事总是无常&#xff0c;人生没有如果&#xff0c;用一颗云水禅心&#xff0c;过平淡充实的日子&#xff0c;只要且行且珍惜&#xff0c;人生就会无限美好&a…

Android 编译系统(Build System)剖析

Android Build System剖析 Android预构建应用是如何制作的&#xff0c;背后的构建系统又是什么&#xff1f; 本文旨在分享关于Android构建系统以及与原始设备制造商&#xff08;OEM&#xff09;集成的知识&#xff0c;简化理解AOSP复杂机制的过程。与手动查阅各种文件及其内部…

MySQL安装记录

背景 Windows系统重装了, 想恢复一下之前的MySQL环境, 而且本地数据库也是比较常用的, 刚好本次也在安装, 做一个简单的记录. 也算是自己的学习记录输出. 遇到的问题当然也可以同时记录在这里, 方便后 续回顾. 资料包 百度网盘 // TODO 估计放了也会被CSDN屏蔽, 这里就不放…

7 集群基本测试

1. 上传小文件到集群 在hadoop路径下执行命令创建一个文件夹用于存放即将上传的文件&#xff1a; [atguiguhadoop102 ~]$ hadoop fs -mkdir /input上传&#xff1a; [atguiguhadoop102 hadoop-3.1.3]$ hadoop fs -put wcinput/work.txt /input2.上传大文件 [atguiguhadoop1…

数学分析:场论

我们之前知道的是里斯表示定理。 这里看到&#xff0c;对于多重线性映射&#xff0c;里斯表示定理会从内积变成混合积。当然我们还是只考虑三维以内的情况。 于是我们可以把不同的1形式和2形式的下标写上&#xff0c;表示他们相当于内积或者混合积对应的那个向量。 然后还差0形…

LeetCode第1~5题解

CONTENTS LeetCode 1. 两数之和&#xff08;简单&#xff09;LeetCode 2. 两数相加&#xff08;中等&#xff09;LeetCode 3. 无重复字符的最长子串&#xff08;中等&#xff09;LeetCode 4. 寻找两个正序数组的中位数&#xff08;困难&#xff09;LeetCode 5. 最长回文子串&am…

【awd系列】Bugku S3 AWD排位赛-9 pwn类型

文章目录 二进制下载检查分析运行二进制ida分析解题思路exp 二进制下载 下载地址&#xff1a;传送门 检查分析 [rootningan 3rd]# file pwn pwn: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for …

android系统启动流程之SystemServer运行过程

SystemServer进程的启动流程&#xff1a;直接看代码&#xff1a; SystemServer是Java中的一个进程&#xff0c;执行入口是SystemServer.java.main(); SystemServer.java.main();-->new SystemServer().run();-->createSystemContext();//创建系统上下文:虽然SystemServe…

Unittest 笔记:unittest拓展生成HTM报告发送邮件

HTMLTestRunner 是一个unitest拓展可以生成HTML 报告 下载地址&#xff1a;GitHub: https://github.com/defnnig/HTMLTestRunner HTMLTestRunner是一个独立的py文件&#xff0c;可以放在Lib 作为第三方模块使用或者作为项目的一部分。 方式1&#xff1a; 验证是否安装成功&…

Flutter 状态管理引子

1、为了更好地了解状态管理&#xff0c;先看看什么是状态。 在类似Flutter这样的响应式编程框架中&#xff0c;我们可以认为U相关的开发就是对数据进行封装&#xff0c;将之转换为具体的U1布局或者组件。借用Flutter官网的一张图&#xff0c;可以把我们在第二部分做的所有开发…

AliOS-Things引入

目录 一、简介 1.1 硬件抽象层 1.2 AliOS-Things内核 rhino ​编辑 1.3 AliOS-Things组件 二、如何进行AliOS-Things开发 三、安装环境 安装python pip git 修改pip镜像源 安装aos-cube 一、简介 AliOS-Things是阿里巴巴公司推出的致力于搭建云端一体化LoT软件。AliOS-…

Linux操作系统--文件与目录结构

我们初步认识了Linux操作系统,下面我们进一步看看linux的文件与目录结构。 1.文件系统和挂载点 (1).当前的操作系统中查看文件系统 位置 > 计算机 这样你就可以看见当前操作系统中的所有目录和文件。如下所示: (2).挂载点 挂载点实际上就是linux中的磁盘文件系统的入口…

快速理解 X server, DISPLAY 与 X11 Forwarding

​ X server X server是X Window System &#xff08;简称X11或者X&#xff09;系统中的显示服务器&#xff08;display server&#xff09;&#xff0c;用于监听X client发送来的图形界面显示请求&#xff0c;并且将图形界面绘制并显示在屏幕&#xff08;screen&#xff09;…

粒子群算法的基本原理和Matlab实现

1.案例背景 1.1 PSO算法介绍 粒子群优化算法(Particle Swarm Optimization,PSO)是计算智能领域,除了蚁群算法,鱼群算法之外的一种群体智能的优化算法,该算法最早是由Kennedy和 Eberhart 在1995年提出的。PSO算法源于对鸟类捕食行为的研究,鸟类捕食时,每只鸟找到食物最简单有效…

webassembly003 ggml GGML Tensor Library part-3

关于pthread_create()和pthread_join() #include <stdio.h> #include <pthread.h>void *thread_func(void *arg) {int *num (int *)arg;printf("Hello from thread! arg%d\n", *num);pthread_exit(NULL); }int main() {pthread_t thread;int arg 10;i…

解锁开发中的创意:用户为中心的设计思维的力量

引言 设计思维&#xff0c;起源于20世纪60年代&#xff0c;是一种解决问题的方法。它不仅仅是设计师的专利&#xff0c;而是一种可以广泛应用于各种行业和领域的方法。设计思维强调了用户至中的重要性&#xff0c;认为任何问题的解决都应该从用户的需求出发。这种方法鼓励我们…

反转链表+交换两个链表的节点

目录 ​编辑 一&#xff0c;反转链表 1.题目描述 2.例子 3.题目接口 4.分析以及解题代码 1.迭代法 2.递归写法 二&#xff0c;两两交换两个链表中的节点 1.题目描述 2.例子 3.题目接口 4.题目分析以及解法 一&#xff0c;反转链表 1.题目描述 首先来看看反转链表的…

主流深度学习框架及神经网络模型汇总

目录 主流深度学习框架及神经网络模型汇总 一、人工智能的研究领域和分支 二、主流深度学习框架​编辑 1.TensorFlow 2.PyTorch 3.PaddlePaddle 4.Keras 5.Caffe/Caffe2 6.MXNet 7.Theano 8.Torch 9.CNTK 10.ONNX 三、深度学习移动端推理框架 1.TensorRT 2.TF-…

LabVIEW是如何控制硬件的?

概述 工程 师 和 科学 家 可以 使用 LabVIEW 与 数千 种 不同 的 硬件 设备 无缝 集成&#xff0c; 并 通过 方便 的 功能 和 跨 所有 硬件 的 一致 编 程 框架 帮助 节省 开发 时间。 内容 通过更简单的系统集成节省开发时间 连接到任何硬件 NI 硬件 第三方硬件 快速找到…