前端开发工程师——Vue

Vue学习笔记(尚硅谷天禹老师)_尚硅谷天禹老师vue2021讲课笔记下载-CSDN博客 

模板语法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>第一个vue</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
    
<body>
    <!-- 注意:一个容器只能和一个实例对应,只能是一对一 -->
    <!-- 容器 -->
    <div id="root">
        <!-- 插值语法 -->
        <h1>插值语法</h1>
        <h1>hello ,{{name}}</h1>
        <h1>指令语法</h1>
        <!-- v-bind可以简写成: -->
        <a v-bind:href="url">百度</a>
        
    </div>
    <h1>不在el容器内,无法使用{{name}}</h1>
    <script type="text/javascript">
        // 创建vue实例
        //const x可以直接删除
        const x = new Vue({
            el:"#root",//el就是element,id选择器就是#id,class就是.class
            data:{   //data用于存贮数据,数据只供el所属容器内使用
                name:"ivy",
                url:'baidu.com'
            }
        })
    </script>
</body>
</html>

数据绑定

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
        <!-- 普通写法 -->
        <!-- v-model只能绑定表单类元素 -->
        单向数据绑定:<input type="text" v-bind:value="name"><br/>
        双向数据绑定:<input type="text" v-model:value="name">
        <!-- 简写 可以直接简写成v-model-->
        单向数据绑定:<input type="text" :value="name"><br/>
        双向数据绑定:<input type="text" v-model="name">
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                name:"ivy"
            }
        })
    </script>
</body>
</html>

el和data的两种写法

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
        <h1>你好,{{name}}</h1>
    </div>
    <script>
        const v = new Vue({
            // el的两种写法
            //el 第一种写法:
            el:'#root',
            // data的写法一
            // data:{
            //     name:"ivy"
            // }
            // data写法二:
            data:function(){
                return {
                    name:"ivy"
                }
            }
        })
        console.log(v)
        // el第二种写法
        v.$mount('#root')
        
       
    </script>
</body>
</html>

事件处理

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习中心</h2>
        <button v-on:click="show">点击</button>
        <!-- 简写 -->
        <button @click="showinfo">点击1</button>
    </div>
</body>
<script>
    const vm = new Vue({
        el:"#root",
        data:{
            name:'ivy',
        },
        // methods事件放置的位置
        methods:{
            // show方法可以不用写function
            show(even){
                consol.log(event.target.innerText)
                console.log(this)//这里的this表示vm
                alert('同学你好!')
            },
            showinfo(){
                alert("第二种方法")
            }
        }
    })
</script>
</html>

事件修饰符

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<style>
    * {
        margin-top: 20px;
    }
    .demo1 {
        height: 50px;
        background-color: aqua;
    }
</style>
<body>
    <div id="root">
        <h2>欢迎来到{{name}}学习中心</h2>
        <!-- prevent阻止默认事件产生,不会跳转 -->
        <a href="baidu.com" @click.prevent="show">点击跳转</a>
        <!-- 阻止事件冒泡 -->
        <div class="demo1" @click="show">
            <buttton @click.stop="show">点我提示信息</buttton>
        </div>
    </div>

</body>
<script>
    const vm = new Vue({
        el:"#root",
        data:{
            name:'ivy'
        },
        methods:{
            show(){
                alert('你好')
            }
        }
    })
</script>
</html>

计算属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
        姓:<input type="text" v-model="firstname"><br/><br/>
        名:<input type="text" v-model="lastname"><br/><br/>
        全名:<span>{{firstname}}-{{lastname}}</span><br/><br/>
        <!-- 计算属性 -->
        全名:<span>{{fullname}}</span>
    </div>
    <script>
        new Vue({
            el:"#root",
            data:{
                firstname:'张',
                lastname:'三'
            },
            // 计算属性
            computed:{
                fullname:{
                    // get方法
                    get(){
                        console.log('get被调用了')
                        return this.firstname + '-' + this.lastname
                    },
                    // get什么时候调用,当firstname改变时
                    set(value){
                        console.log('有人修改了属性,且值为',value)
                        number = value
                        
                    }
                }
            }
        })
    </script>
</body>
</html>

监视属性

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
       <h2>今天的天气很{{info}}</h2>
       <button @click="weather">切换天气</button>    
    </div>
    <script>
        new Vue({
            el:'#root',
            data:{
                isHot:true
            },
            // 计算属性
            computed:{
                info(){
                    return this.isHot ? '炎热':'寒冷'
                }
            },
            // 方法
            methods:{
                // 点击事件
                weather(){
                    this.isHot = !this.isHot
                }
            }

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

 绑定class/style样式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>数据绑定</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<style>
    .basic {
        width: 300px;
        height: 300px;
        border: 1px solid rgb(44, 37, 37);
    }
    .happy {
        width: 300px;
        height: 300px;
        background-color: brown;
        border-radius: 50px;
    }
    .sad {
        width: 300px;
        height: 300px;
        background-color: aqua;

    }
    .normal {
        width: 300px;
        height: 300px;
        background-color: antiquewhite;
    }
</style>
<body>
    <div id="root">
       <div class="basic" :class="a" @click="changeclass">{{name}}</div>
       <div class="basic" :style="styleObj">{{name}}</div>
    </div>
    <script>
       new Vue({
        el:'#root',
        data:{
            name:'ivy',
            // 绑定class
            a:'normal',
            // 绑定style
            styleObj:{
                // 注意这里的fontSize是不能乱写的,注意第二个大写
                fontSize:'40px'
            }
        },
        methods:{
            changeclass(){
                const arr = ['happy','normal','sad']
                // 向下随机取
                const index = Math.floor(Math.random()*3)
                // 变化class
                this.a = arr[index]
            }
        }
       })
    </script>
</body>
</html>

条件渲染 v-if/v-show/v-else-if/v-else

列表渲染v-for 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
       <h2>人员列表</h2>
       <input placeholder="请输入名字:" type="text" v-model="keyword">
       <button @click="sortType=2">年龄升序</button>
       <button @click="sortType=1">年龄降序</button>
       <button @click="sortType=0">原顺序</button>
       <ul>
        <!-- 其中in可以换成of,功能一样,:key一般写v-for都要写key,其中index可以删除,此时key的index需要变成p.id -->
        <li v-for="(p,index) in filPersons" :key="index">
            {{p.name}}-{{p.age}}
        </li>
       </ul>
    </div>
</body>
<script>
   new Vue({
    el:'#root',
    data:{
        name:'ivy',
        // 筛选
        keyword:'',
        // 排序
        sortType:0,//0原顺序,1降序,2升序
        persons:[
            {id:'001',name:'周冬雨',age:19,sex:'女'},
            {id:'002',name:'马冬梅',age:14,sex:'女'},
            {id:'003',name:'周杰伦',age:19,sex:'男'},
            {id:'003',name:'赵杰伦',age:19,sex:'男'},
        ],
        // filPersons:[]
    },
    // 监视keyword
    // watch:{
    //     keyword:{
    //         // 表示显示全部数据在没有输入数据时
    //         immediate:true,
    //         handler(val){
    //         // filter表示过滤值
    //         // 表示过滤的值可以传入filPersons
    //             this.filPersons = this.persons.filter((p)=>{
    //             // indexOf表示是否包含val值
    //                 return p.name.indexOf(val) !== -1
    //         })
    //     }
    //     }
       
    // },
    // 第二种方法
    computed:{
        filPersons(){
            const arr = this.persons.filter((p)=>{
                return p.name.indexOf(this.keyword) !== -1
            })
            //排序
            //判断一下是否需要排序
            if(this.sortType){
                arr.sort((p1,p2)=>{
                    return this.sortType === 1 ? p2.age-p1.age : p1.age-p2.age
                })
            }
            return arr
        }
    }
   })
</script>
</html>

 收集表单数据

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
    <div id="root">
        <!-- 用于获取信息在点击提交时 -->
        <form @submit.prevent="demo">
            账户:<input type="text" v-model="userInfo.account"><br/><br/>
            密码:<input type="text" v-model="userInfo.password">
            性别:
            <!-- name中的sex表示可以不会同时选中两个 -->
            男<input type="radio" name="sex" v-model="userInfo.sex" value="male">
            女<input type="radio" name="sex" v-model="userInfo.sex" value="female"><br/><br/>
            爱好:
            学习<input type="checkbox" v-model="userInfo.habit" value="study">
            打游戏<input type="checkbox" v-model="userInfo.habit" value="game">
            吃饭<input type="checkbox" v-model="userInfo.habit" value="eat">
            <br/><br/>
            所属校区:
            <select v-model="userInfo.city">
                <option value="">请选择校区:</option>
                <option value="beijing">北京</option>
                <option value="shanghai">上海</option>
                <option value="hanzhou">杭州</option>

            </select>
            <br/><br/>
            其他信息:
            <textarea v-model="userInfo.other"></textarea><br/><br/>
            <input type="checkbox" v-model="userInfo.agree">阅读并接受<a href="#">用户协议</a>
            <button type="submit">提交</button>
        </form>
    </div>
    
</body>
<script>
    new Vue({
        el:'#root',
        data:{
            userInfo:{
                account:'',
                password:'',
            sex:'male',
            habit:[1],
            city:'',
            other:'',
            agree:''
            }
        },
        // 获取信息
        methods:{
            demo(){
                console.log(JSON.stringify(this.userInfo))
            }
        }
    })
</script>
</html>

v-text 

组件

 

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
   <div id="root">
    <!-- 第三步:编写组件标签引用 -->
    <xuexiao></xuexiao>
    <hello></hello>
    <hr/>
    <xuesheng></xuesheng>
   </div>
<hr/>

    
</body>
<script>
    // 第一步创建组件
    // 创建school组件
    const school = Vue.extend({
        template:`
        <div>
            <h2>学校信息</h2>
        <h4>{{schoolname}}</h4>
        <h4>{{address}}</h4>
        <button @click='show'>点我提示</button>
        </div>
        `,
        data(){
            return {
                schoolname:'csdn',
                address:'江苏'
            }
        },
        // 点击按钮直接在该组件里加就可以
        methods:{
            show(){
                alert(this.schoolname)
            }
        },
    })
    // 创建student组件
    const student = Vue.extend({
        template:`
        <div>
            <h2>学生信息</h2>
        <h4>{{studentname}}</h4>
        <h4>{{age}}</h4>
        </div>
        `,
        data(){
            return {
                studentname:'ivy',
                age:19
            }
        }
    })
    
    new Vue({
        el:'#root',
        // 第二部注册组件(局部注册)
        components:{
            xuexiao:school,
            xuesheng:student
        }
    })
    
</script>
</html>

组件嵌套

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
</head>
<body>
   <div id="root">
    <!-- 产生老大之后标签也不可不用写了,直接写
    <app></app>就行
    -->
    <!-- 第三步:编写组件标签引用 -->
    <xuexiao></xuexiao>
    <hello></hello>
    <hr/>
    <!-- 在root中不能用xuesheng标签 -->
   </div>
<hr/>

    
</body>
<script>
    // 嵌套组件,注意此时将student组件套进school组件,需要先创建student组件
    // 第一步创建组件
    // 创建student组件
    const student = Vue.extend({
        template:`
        <div>
            <h2>学生信息</h2>
        <h4>{{studentname}}</h4>
        <h4>{{age}}</h4>
        </div>
        `,
        data(){
            return {
                studentname:'ivy',
                age:19
            }
        }
    })
    // 创建school组件
    const school = Vue.extend({
        name:'school',
        template:`
        <div>
            <h2>学校信息</h2>
        <h4>{{schoolname}}</h4>
        <h4>{{address}}</h4>
        // 在谁嵌套就在那用
        <xuesheng></xuesheng>
        <button @click='show'>点我提示</button>
        </div>
        `,
        data(){
            return {
                schoolname:'csdn',
                address:'江苏'
            }
            
        },
        components:{
            xuesheng:student
        },
        // 点击按钮直接在该组件里加就可以
        methods:{
            show(){
                alert(this.schoolname)
            }
        },
    })
    // hello表示和shcool同级
    const hello = Vue.extend({
        template:`
        <div>
            <h2>你好啊!{{name}}</h2>    
        </div>
        `,
        data(){
            return {
                name:'南栀'
            }
        }
    })  
    // 定义app组件,表示管理组件的老大
    const app = Vue.extend({
        template:`
        <div>
            <xuexiao></xuexiao>
            <hello></hello>    
        </div>
        `,
        components:{
            xuesheng:school,
            // 相同时可以简写
            hello
        }
    })
    
    new Vue({
        el:'#root',
        // 第二部注册组件(局部注册)
        components:{
            // 去掉学生注册
            xuexiao:school,
            hello:hello

            // 产生app老大之后可以不用写上面的,直接写app
            // app
            
        }
    })
    
</script>
</html>

单文件组件

 

 School.vue文件

<template>
    <div class="demo">
        <h2>学校名称:{{ schoolname }}</h2>
        <h2>学校地址:{{ address }}</h2>
        <button @click="show">点击提示</button>
    </div>
</template>

<script>
export default {
    name: 'MySchool', // 改为多词形式
    data() {
        return {
            schoolname: 'csdn',
            address: '江苏' // 注意拼写错误
        };
    },
    methods: {
        show() {
            alert(this.schoolname);
        }
    }
};
</script>

<style>
.demo {
    background-color: aquamarine;
}
</style>

App.vue文件

<template>
  <school></school>
</template>

<script>
// 引入组件
import school from './school.vue'
export default {
    name:'app',
    components:{
        school
    }
}
</script>

main.js文件

脚手架


// 该文件是整个项目的入口文件
// 引入vue
import Vue from 'vue'
// 引入app组件,他是所有组件的父组件
import App from './App.vue'

// 关闭vue的生产提示
Vue.config.productionTip = false

// 创建vue实例对象
new Vue({
  render: h => h(App),
}).$mount('#app')
import app from './app.vue'

new Vue({
    el:'#root',
    
    components:{app}
})

index.html文件

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="root">
        <app></app>
        <!-- 放在脚手架就可以运行 -->
        <script src="https://cdn.staticfile.net/vue/2.7.0/vue.min.js"></script>
        <script src="./main.js"></script>
    </div>
</body>
</html>

脚手架 

 

ref属性

App.vue文件 

<template>
  <div>
    <School></School>
    <h1 v-text='msg' ref='title'></h1>
    <button @click='show'>点击输出上面的dom元素</button>
  </div>
</template>

<script>
  import School from './components/School.vue'
  export default {
    name:'App',
    components:{School},
    data(){
      return {
        msg:'欢迎学习Vue'
      }
    },
    methods: {
      show(){
          console.log(this.$refs.title)
      }
    }
  }
</script>

<style scoped>

</style>

props配置

 

App.vue

<template>
  <div>
    <Student name='张三' sex='男' age='18'></Student>
    <hr/>
    <Student name='张三' sex='男' age='18'></Student>
    <hr/>
    <Student name='张三' sex='男' age='18'></Student>
  </div>
</template>

<script>
  import Student from './components/Student.vue'
  export default {
    
    name:'App',
    components:{Student},
    
  }
</script>

<style scoped>

</style>

 Student.vue文件

<template>
    <div>
        <h1>{{msg}}</h1>
        <h2>学生姓名:{{name}}</h2>
        <h2>年龄:{{age}}</h2>
        <h2>性别:{{sex}}</h2>
    </div>
</template>

<script>
    export default {
        name:'StudentXing',
        data(){
            return {
                msg:'我会成为一个优秀的人',
                
            }
        },
        // props:['name','age','sex']简单接收
        // 接收的同时对类型经行限制
        props:{
            name:String,
            age:Number,
            sex:String
        }
    }
</script>

mixin属性 

School.vue

<template>
    <div>
       
        <h2 @click='showname'>学校名称:{{name}}</h2>
       
        <h2>地址:{{address}}</h2>
    </div>
</template>

<script>
// 引入一个混合
import {hunhe} from '../mixin.js'
    export default {
        name:'MySchool',
        data(){
            return {
              name:'南信大',
              address:'南京'
                
            }
        },
        mixin:[hunhe]
        
        
    }
</script>

Student.vue

<template>
    <div>
       
        <h2 @click='showname'>学生姓名:{{name}}</h2>
       
        <h2>性别:{{sex}}</h2>
    </div>
</template>

<script>
// 引入一个混合
import {hunhe} from '../mixin.js'
    export default {
        name:'StudentXing',
        data(){
            return {
              name:'张三',
              sex:'男'
                
            }
        },
        mixin:[hunhe]
        
        
    }
</script>

mixin.js文件

export const hunhe = {
    methods:{
        showname(){
            alert(this.name)
        }
    },
}

插件

 scoped样式

 

组件自定义事件 

App.vue

<template>
  <div class='app'>
  <h1>{{name}}</h1>
  <!-- 通过父组件给子组件传递函数类型的props实现:子给父传递数据 -->
    <School :getSchoolName='getSchoolName'></School>
    <!-- 通过父组件给子组件绑定一个自定义事件:子给父传递数据 -->
    <Student v-on:ivy='demo'></Student>
  </div>
</template>

<script>
  import School from './components/School.vue'
  import Student from './components/Student.vue'
  
  
  export default {
    
    name:'App',
    components:{School,Student},
    data() {
      return {
        name:'你好啊!'
      }
    },
    methods:{
      getSchoolName(name){
        console.log('App收到了学校名',name)
      },
      demo(name){
        console.log('demo被调用了',name)
      }
    }
    
  }
</script>

<style scoped>
.app {
  background-color:gray;
  padding:5px;
}

</style>

School.vue

<template>
    <div class='demo'>
       
        <h2 @click='showname'>学校名称:{{name}}</h2>
       
        <h2>地址:{{address}}</h2>
        <button @click='sendSchoolName'>把学校名给app</button>
    </div>
</template>
 
<script>
// 引入一个混合

    export default {
        name:'MySchool',
        // 声明
        props:['getSchoolName'],
        data(){
            return {
              name:'南信大',
              address:'南京'
                
            }
        },
        // 点击这个事件就可以获得这个学校的名字,发送事件
        methods:{
            sendSchoolName(){
                this.getSchoolName(this.name)
            }
        }
        
        
    }
</script>
<style scoped>
.demo {
    background-color: pink;
    padding:5px;
    margin-bottom:10px;
}
</style>
 

Student.vue

<template>
    <div class='demo'>
       
        <h2 @click='showname'>学生姓名:{{name}}</h2>
       
        <h2>性别:{{sex}}</h2>
        <button @click='sendStudentName'>把学生名给app</button>
    </div>
</template>
 
<script>
// 引入一个混合

    export default {
        name:'StudentXing',
        data(){
            return {
              name:'张三',
              sex:'男'
                
            }
        },
        methods:{
            sendStudentName(){
                // 触发Student组件实例身上的ivy事件
                this.$emit('ivy',this.name)
            }
        }
        
        
        
    }
</script>
<style scoped>
.demo {
    background-color: red;
    padding:5px;

}
</style>
 
 

 

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

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

相关文章

Springboot+Vue+小程序+基于微信小程序电影票网购系统

Java电影票购买管理系统&#xff0c;Maven管理工具&#xff0c;MyBatis数据库操作&#xff0c;idea平台开发&#xff0c;后台的前端为Vue&#xff0c;前台客户端为小程序&#xff0c;功能丰富&#xff0c;还有电影周边购买功能&#xff0c;请在最下方二维码处联系我即可&#x…

如何判断第三方软件测试公司是否具有资质

在软件开发的过程中&#xff0c;软件测试是确保软件质量、稳定性和用户体验的关键环节。许多企业选择将软件测试工作交给专业的第三方软件测试公司来完成&#xff0c;以确保测试的准确性和公正性。但是&#xff0c;如何判断一个第三方软件测试公司是否具有资质呢&#xff1f;以…

【软件开发规范篇】JAVA后端开发编码格式规范

作者介绍&#xff1a;本人笔名姑苏老陈&#xff0c;从事JAVA开发工作十多年了&#xff0c;带过大学刚毕业的实习生&#xff0c;也带过技术团队。最近有个朋友的表弟&#xff0c;马上要大学毕业了&#xff0c;想从事JAVA开发工作&#xff0c;但不知道从何处入手。于是&#xff0…

基于FPGA的数字信号处理(7)--如何确定Verilog表达式的位宽

一般规则 很多时候&#xff0c;Verilog中表达式的位宽都是被隐式确定的&#xff0c;即使你自己设计了位宽&#xff0c;它也是根据规则先确定位宽后&#xff0c;再扩展到你的设计位宽&#xff0c;这常常会导致结果产生意想不到的错误。比如&#xff1a; timescale 1ns/1ns mod…

GD32F470内存不能设置512KB

最近研究了下GD32F470芯片手册&#xff0c;发现标称的内存512KB&#xff0c; 其实是连TCMSRAM一起算的&#xff0c;即TCMSRAMSRAM0SRAM1SRAM2ADDSRAM 512KB, 其中SRAM0 - ADDSRAM 这段内存地址是连续的&#xff0c;从地址0x20000000开始。而TCMSRAM地址却是从0x10000000 - 0x1…

新建stm32工程模板步骤

1.先使用keil新建一个project的基本代码 2.stm32启动文件添加 将stm32的启动文件&#xff0c;在原工程当中新建一个Start文件夹把相关的启动文件放到文件夹当中 然后还需要找到下面三个文件 stm32f10x.h是stm32的外设寄存器的声明和定义&#xff0c;后面那两个文件用于配置系…

Unity 实现新手引导遮罩

Unity 复写OnPopulateMesh 实现新手引导遮罩、包含点击事件触发区域判断 https://download.csdn.net/download/shenliang34/89247117

git 第一次安装设置用户名密码

git config --global user.name ljq git config --global user.email 15137659164qq.com创建公钥命令 输入后一直回车 ssh-keygen -t rsa下面这样代表成功 这里是公钥的 信息输入gitee 中 输入下面命令看是否和本机绑定成功 ssh -T gitgitee.com如何是这样&#xff0c;恭喜…

【算法系列】哈希表

目录 哈希表总结 leetcode题目 一、两数之和 二、判定是否互为字符重排 三、存在重复元素 四、存在重复元素 II 五、字母异位词分组 六、在长度2N的数组中找出重复N次的元素 七、两个数组的交集 八、两个数组的交集 II 九、两句话中的不常见单词 哈希表总结 1.存储数…

HC-SR04超声波测距

什么是超声波 超声波是频率高于20000赫兹的声波。 超声波是一种特定频率范围内的声波&#xff0c;其特点在于频率高于人耳能够感知的上限&#xff0c;即超过20千赫兹&#xff08;Hz&#xff09;。这种高频率的声波具有一些独特的性质&#xff1a; 方向性好&#xff1a;超声波…

托普利兹矩阵(T矩阵)及其应用(Matlab demo测试)

托普利兹矩阵&#xff08;T矩阵&#xff09;及其应用&#xff08;Matlab demo测试&#xff09; 1. 概念2. Matlab简单测试2.1 生成测试2.2 基本性质及原理2.3 性质验证 3. 其他应用总结3.1 其他性质3.2 文献阅读看到的 参考资料 1. 概念 托普利兹矩阵&#xff0c;简称为T型矩阵…

可视化大屏在真实场景的效果,绝对震撼,不要再嘲笑其作用了

hello&#xff0c;我是大千UI工场&#xff0c;本地带来一批可视化大屏现场效果图&#xff0c;非常震撼&#xff0c;给大家带来身临其境的感受&#xff0c;欢迎关注点赞&#xff0c;有需求请私信。 有人可能会认为可视化大屏没有太多价值&#xff0c;可能是因为以下几个原因&am…

npm 安装 pnpm 时 报错 npm ERR! Unexpected token ‘.‘

问题 一个项目用的是 pnpm 安装的依赖&#xff0c;node 的版本是 16.16.0&#xff0c;nvm 的版本是 1.1.7&#xff0c;然后全局安装 pnpm 报错如下&#xff1a; 解决 我看网上的一些解决方案是说 nvm 版本过低导致&#xff0c;下面我们按照这个方向处理。 实首先下载 nvm-up…

Linux 文件管理命令Lawk wc comm join fmt

文章目录 2.Linux 文件管理命令2.44 awk&#xff1a;模式匹配语言1&#xff0e;变量2&#xff0e;运算符3&#xff0e;awk 的正则4&#xff0e;字符串函数5&#xff0e;数学函数案例练习 2.45 wc&#xff1a;输出文件中的行数、单词数、字节数案例练习2.46 comm&#xff1a;比较…

康姿百德学生床垫价格合理,为孩子提供健康睡眠环境

康姿百德集团公司学生床垫&#xff0c;关爱孩子的睡眠和健康 每个孩子都是家长新中的宝贝&#xff0c;在孩子健康成长的道路上&#xff0c;良好的睡眠起着至关重要的作用。而选择一款优质的床垫&#xff0c;不仅能帮助孩子更快进入梦乡&#xff0c;还能促进他们的健康发育。在…

最好的数据恢复应用程序:哪个是您首选的最佳文件恢复软件?

如今&#xff0c;智能设备无处不在&#xff0c;导致我们中的许多人无可辩驳地被大量数据所包围。随着大量数据的涌入得到一致的处理&#xff0c;无意中删除重要文档或不同文件&#xff0c;存在丢失这些数据的迫在眉睫的危险。 最好的数据恢复应用程序 对于每一个最好的数据恢复…

Python 与 TensorFlow2 生成式 AI(三)

原文&#xff1a;zh.annas-archive.org/md5/d06d282ea0d9c23c57f0ce31225acf76 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 第七章&#xff1a;使用 GAN 进行风格转移 神经网络在涉及分析和语言技能的各种任务中正在取得进步。创造力是人类一直占有优势的领域&…

Stm32CubeMX 为 stm32mp135d 添加网卡 eth

Stm32CubeMX 为 stm32mp135d 添加网卡 eth 一、启用设备1. eth 设备添加2. eth 引脚配置2. eth 时钟配置 二、 生成代码1. optee 配置2. uboot 配置3. linux 配置 bringup 可参考&#xff1a;Stm32CubeMX 生成设备树 一、启用设备 1. eth 设备添加 我这里只启用一个eth设备&…

uniapp 桌面应用插件 Ba-Launcher

简介&#xff08;下载地址&#xff09; Ba-Launcher 可以让你的应用成为简单的桌面应用&#xff0c;如需扩展功能&#xff0c;请联系我。 截图展示 可关注博客&#xff0c;实时更新最新插件&#xff1a; uniapp 常用原生插件大全 使用方法 使用方法也很简单&#xff0c;在插…

GPT3 终极指南(一)

原文&#xff1a;zh.annas-archive.org/md5/6de8906c86a2711a5a84c839bec7e073 译者&#xff1a;飞龙 协议&#xff1a;CC BY-NC-SA 4.0 前言 GPT-3&#xff0c;或者说是 Generative Pre-trained Transformer 3&#xff0c;是由 OpenAI 开发的基于 Transformer 的大型语言模型…