vue2 案例入门

news2024/10/6 16:27:50

vue2 案例入门

  • 1 vue环境
  • 2 案例
    • 2.1 1.v-text v-html
    • 2.2 v-bind
    • 2.3 v-model
    • 2.4 v-on
    • 2.5 v-for
    • 2.6 v-if和v-show
    • 2.7 v-else和v-else-if
    • 2.8 计算属性和侦听器
    • 2.9 过滤器
    • 2.10 组件化
    • 2.11 生命周期
    • 2.12 使用vue脚手架
    • 2.13 引入ElementUI
      • 2.13.1 npm方式安装
      • 2.13.2 main.js导入elementUI组件
      • 2.13.3 配置vue快捷模板

1 vue环境

参考官网:https://v2.cn.vuejs.org/v2/guide/installation.html
npm 安装

npm install vue@^2

之后在项目引入

<script src="./node_modules/vue/dist/vue.js"></script>

Visual Studio Code 安装插件

Auto Close Tag
Auto Rename Tag
Chinese (Simplified)
ESLint
HTML CSS Support
HTML Snippets
JavaScript (ES6) code snippets
Live Server
open in browser
Vetur
Vue 2 Snippets

在这里插入图片描述

2 案例

2.1 1.v-text v-html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        {{msg}} {{1+1}} {{hello()}} <br/>
        <span v-html="msg"></span>
        <br/>
        <span v-text="msg"></span>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el:"#app",
            data:{
                msg:"<h1>Hello</h1>"
            },
            methods:{
                hello(){
                    return "World"
                }
            }
        });
    </script>
</body>
</html>

2.2 v-bind

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- 给html标签的属性绑定 v-bind是单向绑定-->
    <div id="app">
        <a v-bind:href="link">gogogo</a>
        <!--class,style      {class名:加上?}-->
        <span v-bind:class="{active:isActive,'text-danger':hasError}"
              v-bind:style="{color: color1,'font-size': size}">你好</span>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            el:"#app",
            data:{
                link:"http://www.baidu.com",
                isActive:true,
                hasError:true,
                color1:"red",
                size:"36px"
            }
        });
    </script>
</body>
</html>

2.3 v-model

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--表单项,自定义组件-->
    <div id="app">
        精通的语言:
        <input type="checkbox" v-model="language" value="Java">java<br/>
        <input type="checkbox" v-model="language" value="PHP">PHP<br/>
        <input type="checkbox" v-model="language" value="Python">Python<br/>
        选中了{{language.join(",")}}

    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let vm = new Vue({
            el:"#app",
            data:{
                language:[]
            }
        })
    </script>
</body>
</html>

2.4 v-on

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!--事件中直接写js片段-->
        <button v-on:click="num++">点赞</button>
        <!--事件指定一个回调函数,必须是Vue实例定义的函数-->
        <button v-on:click="cancle">v-on取消</button>
        <!--简写v-on @-->
        <button @click="cancle">简写@取消</button>
        <!-- -->
        <h1>{{num}} 个赞</h1>

        <!--事件修饰符
        在事件处理程序中调用event.preventDefault()或event.stopPropagation()是非常常见的
        需求。尽管我们可以在方法中轻松实现这点,但更好的方式是:方法只有纯粹的数据逻辑,
        而不是去处理DOM事件细节。
        为了解决这个问题,Vue.js为 v-on 提供了事件修饰符。修饰符是由点开头的指令后缀来表示的

        stop :阻止事件冒泡到父元素
        prevent: 阻止默认事件发生
        capture:使用事件捕获模式
        self:只有元素自身触发事件才执行。冒泡或捕获的都不执行
        once:只执行一次
        -->
        <div style="border:1px solid red;padding:20px;" v-on:click="hello">
            大div
            <!--正常的点 @click会弹两次 加上stop阻止事件冒泡到父类-->
            <div style="border:2px solid blue;padding:20px;" @click.stop="hello">
                小div<br/>
                <a href="http://wwww.baidu.com">去百度</a>
            </div>

            <div style="border:2px solid blue;padding:20px;" @click.stop="hello">
                小div<br/>
                <!--prevent: 阻止默认事件发生-->
                <a href="http://wwww.baidu.com" @click.prevent>click.prevent点击也不去百度</a>
            </div>
            <div style="border:2px solid blue;padding:20px;" @click.stop="hello">
                小div<br/>
                <!--prevent: 阻止默认事件发生-->
                <a href="http://wwww.baidu.com" @click.prevent="hello">@click.prevent="hello"点击也不去百度,还可以走其他方法(hello方法)</a>
            </div>
            <div style="border:2px solid blue;padding:20px;" @click.stop="hello">
                小div<br/>
                <!--prevent: 阻止默认事件发生-->
                <a href="http://wwww.baidu.com" @click.prevent.stop="hello">@click.prevent.stop="hello"点击也不去百度,还可以走其他方法(hello方法),之后还可以阻止默认行为</a>
            </div>
        </div>


        <div style="border:1px solid red;padding:20px;" v-on:click.once="hello">
            大div v-on:click.once 只执行一次再点就不弹了
            <!--正常的点 @click会弹两次 加上stop阻止事件冒泡到父类-->
            <div style="border:2px solid blue;padding:20px;" @click.stop="hello">
                小div<br/>
                <a href="http://wwww.baidu.com">去百度</a>
            </div>
        </div>

        <!--按键修饰符
        在监听键盘事件时,我们经常需要检查常见的键值。Vue允许为 v-on 在监听键盘事件时添加按键修饰符

        只有在keyCode=13时调用vm.submit()
        <input v-on:keyup.13="submit">

        记住所有的 keyCode 比较困难,所以 Vue 为最常用的按键提供了别名:
        <input v-on:keyup.enter="submit">
        缩写法
        <input @keyup.enter="submit">
        全部的按键别名:
        .enter
        .tab
        .delete
        .esc
        .space
        .up
        .down
        .left
        .fight
        -->

        <!--组合按钮
        可以用如下修饰符来实现仅在按下响应按键时才会触发鼠标或键盘事件的监听器。
        .ctrl
        .alt
        .shift
        Alt + C
        <input @keyup.alt.67="clear"
        Ctrl + Click
        <div @click.ctrl="doSomething">Do something</div>
        -->
        <input type="text" v-model="num" v-on:keyup.up="num+=2" @keyup.down="num-=2" @click.ctrl="num=10"><br/>
        提示:鼠标单击下input输入框后才有效果 按上加2 按下减2 按ctrl + click 直接改为10


    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        new Vue({
            el:"#app",
            data:{
                num:1
            },
            methods:{
                cancle(){
                    this.num--;
                },
                hello(){
                    alert("点击了")
                }
            }
        })
    </script>
</body>
</html>

2.5 v-for

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <ul>
            <li v-for="user in users">
                <!-- 1.显示user信息:v-for="item in items" -->
                {{user.name}} ==> {{user.gender}} ==> {{user.age}}
                <!-- 2.获取数组下标:v-for="(item,index) in items"-->
                <!-- 3.遍历对象
                        v-for="value in object"
                        v-for="(value,key) in object"
                        v-for="(value,key,index) in object"
                -->
                对象信息v:
                <span v-for="v in user">{{v}} ==> </span>
                <!-- 4.遍历的时候加上:key来区分不同数据,提高vue渲染效率 -->
            </li>

            <li v-for="user in users">
                对象信息v,k:
                <span v-for="(v,k) in user">{{k}} ==> {{v}} ==> </span>
            </li>

            <li v-for="user in users">
                对象信息v,k,i:
                <span v-for="(v,k,i) in user">{{k}} ==> {{v}} ==> {{i}} </span>
            </li>

            <li v-for="(user,index) in users">
                <!-- 2.获取数组下标:v-for="(item,index) in items"-->
                当前索引:{{index}} ==> {{user.name}} ==> {{user.gender}} ==> {{user.age}}
            </li>

            <li v-for="user in users" :key="user.name">
                <!-- 1.显示user信息:v-for="item in items" -->
                {{user.name}} ==> {{user.gender}} ==> {{user.age}}
                <!-- 2.获取数组下标:v-for="(item,index) in items"-->
                <!-- 3.遍历对象
                        v-for="value in object"
                        v-for="(value,key) in object"
                        v-for="(value,key,index) in object"
                -->
                对象信息v:
                <span v-for="v in user">{{v}} ==> </span>
                <!-- 4.遍历的时候加上:key来区分不同数据,提高vue渲染效率 -->
            </li>
        </ul>
        <ul>
            <!--推荐以后遍历的时候都加上 :key来区分不同的元素-->
            <li v-for="(num,index) in nums" :key="index">

            </li>
        </ul>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let app = new Vue({
            el:"#app",
            data:{
                users:[{name:'孙悟空',gender:'男',age:25},
                {name:'克林',gender:'男',age:26},
                {name:'比克',gender:'男',age:27},
                {name:'贝吉塔',gender:'男',age:25},
                {name:'布玛',gender:'女',age:24}],
                nums:[1,2,3,4,4]
            }
        })
    </script>
</body>
</html>

2.6 v-if和v-show

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--
        v-if,顾名思义,条件判断。当得到结果为true时,所在的元素会被渲染。
        v-show,当得到结果为true,所在的元素才会被显示
    -->
    <div id="app">
        <button v-on:click="show = !show">点我啊</button>
        <!--1.使用v-if显示-->
        <h1 v-if="show">if=看到我....</h1>
        <!--2.使用v-show显示-->
        <h1 v-show="show">show=看到我</h1>

    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let app = new Vue({
            el:"#app",
            data:{
                show:true
            }
        })
    </script>
</body>
</html>

2.7 v-else和v-else-if

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <button v-on:click="random=Math.random()">点我啊</button>
        <span>{{random}}</span>

        <h1 v-if="random>=0.75">
            看到我拉 &gt;=0.75
        </h1>

        <h1 v-else-if="random>=0.5">
            看到我拉 &gt;=0.5
        </h1>

        <h1 v-else-if="random>=0.2">
            看到我拉 &gt;=0.2
        </h1>

        <h1 v-else>
            看到我拉 &gt;=0.1
        </h1>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        let app = new Vue({
            el:"#app",
            data:{random:1}
        })
    </script>
</body>
</html>

2.8 计算属性和侦听器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <!-- 某些结果是基于之前数据实时计算出来的,我们可以利用计算属性来完成-->
        <ul>
            <li>西游记;价格:{{xyjPrice}},数量: <input type="number" v-model="xyjNum"></li>
            <li>水浒传;价格:{{shzPrice}},数量: <input type="number" v-model="shzNum"></li>
            <li>总价:{{totalPrice}}</li>
            {{msg}}
        </ul>

    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        //watch可以让我们监控一个值的变化,从而做出相应的反应。
        new Vue({
            el:"#app",
            data:{
                xyjPrice:99.98,
                shzPrice:98.00,
                xyjNum:1,
                shzNum:1,
                msg:""
            },
            //计算属性
            computed:{
                totalPrice(){
                    return this.xyjPrice*this.xyjNum+this.shzPrice*this.shzNum
                }

            },
            watch:{
                xyjNum(newVal,oldVal){
                    // alert("newVal"+newVal+"==>oldVal"+oldVal)
                    if(newVal>=3){
                        this.msg="库存超出限制";
                        this.xyjNum=3
                    }else{
                        this.msg="";
                    }
                }

            }
        })
    </script>

</body>
</html>

2.9 过滤器

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!--过滤器常用语处理文本格式化的操作,过滤器可以用在两个地方:双花括号插值和v-bind表达式-->
    <div id="app">
        <ul>
            <li v-for="user in userList">
                {{user.id}},{{user.name}},{{user.gender==1?"男":"女"}} ,
                {{user.gender | genderFilter}} , {{user.gender|gFilter}}
            </li>
        </ul>

    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        //全局过滤器
        Vue.filter("gFilter",function(val){
            if(val==1){
                return "男----";
            }else{
                return "女----"
            }

        })
        let vm = new Vue({
            el:"#app",
            data:{
                userList:[
                    {id:1,name:'jack',gender:1},
                    {id:2,name:'peter',gender:0}
                ]
            },
            //过滤器实现 filters定义局部过滤器,只可以在当前vue实例中使用
            filters:{
                //用在{{user.gender | genderFilter}}
                genderFilter(val){
                    if(val==1){
                        return "男";
                    }else{
                        return "女"
                    }
                }

            }
        })
    </script>
</body>
</html>

2.10 组件化

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

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <div id="app">
        <button v-on:click="count++">我被点了 {{count}}</button>
        <!--1.1 使用全局组件-->
        <counter></counter>
        <!--2.2使用局部组件-->
        <button-counter></button-counter>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script>
    <script>
        //1.全局声明注册一个组件,可以在任何一个vue实例中调佣
        Vue.component("counter", {
            template: '<button v-on:click="count++">我被点了 {{count}} 次</button>',
            data() {
                return {
                    count: 1
                }
            }
        });
        //2.局部声明一个组件
        const buttonCounter={
            template: `<button v-on:click="count++">我被点了 {{count}} 次····</button>`,
            data() {
                return {
                    count: 1
                }
            }
        };
        new Vue({
            el: "#app",
            data: {
                count: 1
            },
            //2.2 必须写在vue里的components里
            components:{
                'button-counter': buttonCounter
            }
        })
    </script>
</body>

</html>

2.11 生命周期

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="app">
        <span id="num">{{num}}</span>
        <button @click="num++">赞!</button>
        <h2>{{name}},{{num}}个人点赞</h2>
    </div>
    <script src="./node_modules/vue/dist/vue.js"></script> 
    <script>
        let app = new Vue({
            el:"#app",
            data:{
                name:"张三",
                num:100
            },
            methods:{
                show(){
                    return this.name;
                },
                add(){
                    this.num++;
                },
                beforeCreate(){
                    console.log("========beforeCreate========");
                    console.log("数据模型未加载:"+this.name,this.num);
                    console.log("方法未加载:"+this.show());
                    console.log("html模板未加载:"+document.getElementById("num"));
                },
                created: function(){
                    console.log("======= created==========");
                    console.log("數数据模型已加载:"+this,name,this.num);
                    console.log("方法已加载:"+this.show());
                    console.log("htm1模板已加载:"+ document. getelementbyid("num"));
                    console.log("htm模板未渲染:"+ document, getelementbyid("num"). innertext);
                },
                beforeMount(){
                    console.log("========beforeMount========");
                    console.log( "html模板未渲染:"+ document.getelementbyid ("num").innertext);
                },
                mounter(){
                    console.log("========mounter========");
                    console.log( "html模板已渲染:"+ document.getelementbyid ("num").innertext);
                },
                beforeUpdate(){
                    console.log("========beforeUpdate========");
                    console.log("数据模型已更新:",this.num);
                    console.log( "html模板未更新: "+ document.getelementbyid("num").innertext);
               },
               updated(){
                console.log("========updated========");
                console.log("数据模型已更新:"+this.num);
                console.log("html模板已更新"+document.getElementById("num").innerText);
               }
            }
        })
    </script>
</body>
</html>

2.12 使用vue脚手架

1.全局安装webpack

npm install webpack -g

在这里插入图片描述
2.全局安装vue脚手架

npm install -g @vue/cli-init

在这里插入图片描述
3.初始化vue项目
vue init webpack appname:vue 脚手架使用webpack模块化初始化一个appname项目
建立项目目录C:\xx\work\code\vue\vue-demo
在项目目录中cmd执行

vue init webpack vue-demo

如果执行失败就尝试下面的命令

cnpm install --global vue-cli

成功后再次执行vue init webpack vue-demo
途中会询问参考我的选择

#直接回车
? Project name vue-demo
#直接回车
? Project description A Vue.js project
#直接回车
? Author
#选择Vue build standalone
? Vue build standalone
#按y 回车
? Install vue-router? Yes
#按n 回车
? Use ESLint to lint your code? No
#按n 回车
? Set up unit tests No
#按n 回车
? Setup e2e tests with Nightwatch? No
? Should we run `npm install` for you after the project has been created? (recommended) npm

cd 到生成的 vue-demo 里面输入

npm run dev

在这里插入图片描述
访问http://localhost:8080 搭建成功
在这里插入图片描述
后面转到Visual Studio Code中开发
config/index.js中port改启动端口
在这里插入图片描述

2.13 引入ElementUI

ElementUI官网:https://element.eleme.io

2.13.1 npm方式安装

npm i element-ui

2.13.2 main.js导入elementUI组件

import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

在这里插入图片描述

2.13.3 配置vue快捷模板

文件->首选项->配置用户代码片段->vue.code-snippets
在这里插入图片描述

把原始内容注解掉,放入以下模板:

{
    "生成vue模板": {
        "prefix": "vue",
        "body": [
            "<!-- $1 -->",
            "<template>",
            "<div class='$2'>$5</div>",
            "</template>",
            "",
            "<script>",
            "//这里可以导入其他文件(比如:组件,工具js,第三方插件js,json文件,图片文件等等)",
            "//例如:import 《组件名称》 from '《组件路径》';",
            "",
            "export default {",
            "//import引入的组件需要注入到对象中才能使用",
            "components: {},",
            "data() {",
            "//这里存放数据",
            "return {",
            "",
            "};",
            "},",
            "//监听属性 类似于data概念",
            "computed: {},",
            "//监控data中的数据变化",
            "watch: {},",
            "//方法集合",
            "methods: {",
            "",
            "},",
            "//生命周期 - 创建完成(可以访问当前this实例)",
            "created() {",
            "",
            "},",
            "//生命周期 - 挂载完成(可以访问DOM元素)",
            "mounted() {",
            "",
            "},",
            "beforeCreate() {}, //生命周期 - 创建之前",
            "beforeMount() {}, //生命周期 - 挂载之前",
            "beforeUpdate() {}, //生命周期 - 更新之前",
            "updated() {}, //生命周期 - 更新之后",
            "beforeDestroy() {}, //生命周期 - 销毁之前",
            "destroyed() {}, //生命周期 - 销毁完成",
            "activated() {}, //如果页面有keep-alive缓存功能,这个函数会触发",
            "}",
            "</script>",
            "<style scoped>",
            "//@import url($3); 引入公共css类",
            "$4",
            "</style>"
        ],
        "description": "生成vue模板"
    },
    "http-get请求": {
	"prefix": "httpget",
	"body": [
		"this.\\$http({",
		"url: this.\\$http.adornUrl(''),",
		"method: 'get',",
		"params: this.\\$http.adornParams({})",
		"}).then(({ data }) => {",
		"})"
	],
	"description": "httpGET请求"
    },
    "http-post请求": {
	"prefix": "httppost",
	"body": [
		"this.\\$http({",
		"url: this.\\$http.adornUrl(''),",
		"method: 'post',",
		"data: this.\\$http.adornData(data, false)",
		"}).then(({ data }) => { });" 
	],
	"description": "httpPOST请求"
    }
}

在这里插入图片描述

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

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

相关文章

本地源码方式部署启动MaxKB知识库问答系统,一篇文章搞定!

MaxKB 是一款基于 LLM 大语言模型的知识库问答系统。MaxKB Max Knowledge Base&#xff0c;旨在成为企业的最强大脑。 开箱即用&#xff1a;支持直接上传文档、自动爬取在线文档&#xff0c;支持文本自动拆分、向量化、RAG&#xff08;检索增强生成&#xff09;&#xff0c;智…

YOLOv5改进 | 注意力机制 | 添加全局注意力机制 GcNet【附代码+小白必备】

&#x1f4a1;&#x1f4a1;&#x1f4a1;本专栏所有程序均经过测试&#xff0c;可成功执行&#x1f4a1;&#x1f4a1;&#x1f4a1; 非局部网络通过将特定于查询的全局上下文聚合到每个查询位置&#xff0c;为捕获长距离依赖关系提供了一种开创性的方法。然而&#xff0c;通…

Android 13 高通设备热点低功耗模式

需求: Android设备开启热点,使Iphone设备连接,自动开启低数据模式 低数据模式: 低数据模式是一种在移动网络或Wi-Fi环境下,通过限制应用程序的数据使用、降低数据传输速率或禁用某些后台操作来减少数据流量消耗的优化模式。 这种模式主要用于节省数据流量费用,特别是…

Github Page 部署失败

添加 .gitmodules 文件 [submodule "themes/ayer"]path themes/ayerurl https://github.com/Shen-Yu/hexo-theme-ayer.git 添加 .nojekyll 文件

使用 Orange Pi AIpro开发板基于 YOLOv8 进行USB 摄像头实时目标检测

文章大纲 简介算力指标与概念香橙派 AIpro NPU 纸面算力直观了解 手把手教你开机与基本配置开机存储挂载设置风扇设置 使用 Orange Pi AIpro进行YOLOv8 目标检测Pytorch pt 格式直接推理NCNN 格式推理 是否可以使用Orange Pi AIpro 的 NPU 进行推理 呢&#xff1f;模型开发流程…

vue 微信公众号定时发送模版消息

目录 第一步&#xff1a;公众号设置 网页授权第二步&#xff1a;引导用户去授权页面并获取code第三步&#xff1a;通过code换取网页授权access_token&openid第四步&#xff1a;后端处理绑定用户和发送消息 相关文档链接&#xff1a; 1、微信开发文档 2、订阅号/服务号/企业…

AI生成视频解决方案,降低成本,提高效率

传统的视频制作方式往往受限于高昂的成本、复杂的拍摄流程以及硬件设备的限制&#xff0c;为了解决这些问题&#xff0c;美摄科技凭借领先的AI技术&#xff0c;推出了全新的AI生成视频解决方案&#xff0c;为企业带来前所未有的视觉创新体验。 一、超越想象的AI视频生成 美摄…

【计算机视觉(4)】

基于Python的OpenCV基础入门——色彩空间转换 色彩空间简介HSV色彩空间GRAY色彩空间色彩空间转换 色彩空间转换代码实现: 色彩空间简介 色彩空间是人们为了表示不同频率的光线的色彩而建立的多种色彩模型。常见的色彩空间有RGB、HSV、HIS、YCrCb、YUV、GRAY&#xff0c;其中最…

Sora,数据驱动的物理引擎

文生视频技术 Text-to-Video 近日&#xff0c;Open AI发布文生视频模型Sora&#xff0c;能够生成一分钟高保真视频。人们惊呼&#xff1a;“真实世界将不再存在。” Open AI自称Sora是“世界模拟器”&#xff0c;让“一句话生成视频”的AI技术向上突破了一大截&#xff0c;引…

数据恢复与取证软件: WinHex 与 X-Ways Forensics 不同许可证功能区别

天津鸿萌科贸发展有限公司从事数据安全业务20余年&#xff0c;在数据恢复、数据取证、数据备份等领域有丰富的案例经验、专业技术及良好的行业口碑。同时&#xff0c;公司面向取证机构及数据恢复公司&#xff0c;提供数据恢复实验室建设方案&#xff0c;包含数据恢复硬件设备及…

外贸仓库管理软件:海外仓效率大幅度提升、避免劳动力积压

随着外贸业务的不断发展&#xff0c;如何高效管理外贸仓库&#xff0c;确保货物顺利流转&#xff0c;订单顺利处理&#xff0c;就变得非常重要。 现在通常的解决方案都是通过引入外贸仓库管理软件&#xff0c;也就是我们常说的海外仓WMS系统来解决。 今天我们就系统的探讨一下…

闲话 .NET(3):.NET Framework 的缺点

前言 2016 年&#xff0c;微软正式推出 .NET Core 1.0&#xff0c;并在 2019 年全面停止 .NET Framework 的更新。 .NET Core 并不是 .NET Framework 的升级版&#xff0c;而是一个从头开始开发的全新平台&#xff0c;一个跟 .NET Framework 截然不同的开源技术框架。 微软为…

Paddle 稀疏计算 使用指南

Paddle 稀疏计算 使用指南 1. 稀疏格式介绍 1.1 稀疏格式介绍 稀疏矩阵是一种特殊的矩阵&#xff0c;其中绝大多数元素为0。与密集矩阵相比&#xff0c;稀疏矩阵可以节省大量存储空间&#xff0c;并提高计算效率。 例如&#xff0c;一个5x5的矩阵中只有3个非零元素: impor…

CTFHUB技能树——SSRF(一)

目录 一、SSRF(服务器端请求伪造) 漏洞产生原理: 漏洞一般存在于 产生SSRF漏洞的函数&#xff08;PHP&#xff09;&#xff1a; 发现SSRF漏洞时&#xff1a; SSRF危害&#xff1a; SSRF漏洞利用手段&#xff1a; SSRF绕过方法&#xff1a; 二、CTFHUB技能树 SSRF 1.Ht…

线上服务突然变慢,卡了很久都出不来

文章目录 0、架构1、现象2、查看服务器指标2.1 cpu负载不高2.2 内存指标2.3 硬盘指标2.4 错误日志2.5 大量的tcp连接为TIME_WAIT 3、总结 0、架构 nginx—>httpd—>postgres 单体服务 1、现象 进入页面非常慢。。。 2、查看服务器指标 2.1 cpu负载不高 如下图&…

vue3学习(三)

前言 继续接上一篇笔记&#xff0c;继续学习的vue的组件化知识&#xff0c;可能需要分2个小节记录。前端大佬请忽略&#xff0c;也可以留下大家的鼓励&#xff0c;感恩&#xff01; 一、理解组件化 二、组件化知识 1、先上知识点&#xff1a; 2、示例代码 App.vue (主页面) …

Captura完全免费的电脑录屏软件

一、简介 1、Captura 是一款免费开源的电脑录屏软件&#xff0c;允许用户捕捉电脑屏幕上的任意区域、窗口、甚至是全屏画面&#xff0c;并将这些画面录制为视频文件。这款软件具有多种功能&#xff0c;例如可以设置是否显示鼠标、记录鼠标点击、键盘按键、计时器以及声音等。此…

BookxNote Pro 宝藏 PDF 笔记软件

一、简介 1、BookxNote Pro 是一款专为电子书阅读和学习笔记设计的软件&#xff0c;支持多种电子书格式&#xff0c;如PDF和EPUB&#xff0c;能够帮助用户高效地管理和阅读电子书籍&#xff0c;同时具备强大的笔记功能&#xff0c;允许用户对书籍内容进行标注、摘录和思维导图绘…

解锁数据奥秘,SPSS for Mac/WIN助您智赢未来

在信息爆炸的时代&#xff0c;数据已成为推动社会进步和企业发展的核心动力。但如何将这些海量数据转化为有价值的洞见&#xff0c;却是摆在每一位决策者面前的难题。IBM SPSS Statistics&#xff0c;一款专业的统计分析软件&#xff0c;凭借其强大的功能和易用的界面&#xff…

机械产品3d模型网站让您的展示内容更加易于分享和传播

为助力企业3D产品演示网站获得更多曝光和展示特效&#xff0c;华锐视点3D云展平台提供强大的3D编辑引擎&#xff0c;以逼真的渲染效果&#xff0c;让您的模型展示更加生动逼真。让客户也能轻松操作的3D产品演示网站搭建编辑器&#xff0c;引领3D展示的新潮流。 3D产品演示网站搭…