主頁 >  其他 > 初識vue(1)——一篇博客教你掌握 vue 基礎

初識vue(1)——一篇博客教你掌握 vue 基礎

2020-10-31 21:06:41 其他

??最近跟著vue相關視頻學了些vue的基礎知識,做此總結,以防遺忘,

一. Hello Vue

1、引入vue.js:

<script type="text/javascript" src="../js/vue.js"></script>

2、創建Vue物件:
el : 指定根element(選擇器,指定用vue來管理頁面中的哪個標簽區域)
data : 初始化資料

這是html代碼:

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

這是js代碼:

<script type="text/javascript">
	//創建vue實體
	const vm = new Vue({//配置物件
		// 配置選項
		el:'#app',//element:選擇器 指定用vue來管理頁面中的哪個標簽區域
		data:{//資料(model)
			message:'Hello Vue'
		}
	})
</script>

在這里插入圖片描述

二. 理解什么是MVM

MVVM指的是
??model:模型,資料物件(data)
??view:視圖,模板頁面
??viewModel:視圖模型(Vue的實體vm)

??其中,model指:data部分
在這里插入圖片描述

??view指下面這部分:
在這里插入圖片描述

??viewModel指下面這部分:
在這里插入圖片描述
在這里插入圖片描述

三. 雙向資料系結 v-model

<div id="app">
	<input type="text" v-model="username" />
	<p>Hello {{username}}</p>			
</div>
const vm = new Vue({
	el:'#app',
	data:{
		username:'Tom'
	}
})

在這里插入圖片描述
在這里插入圖片描述

四. 字母轉為大寫 toUpperCase()

<div id="app">	
	<p>{{msg}}</p>        <!--textContent-->
	<p>{{msg.toUpperCase()}}</p><!--轉為大寫-->
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",
		data:{
			msg:"I Will Back!",			
		}	
	})
</script>

在這里插入圖片描述

五. 文本渲染三種方法 :{{}} 、v-text 和 v-html

{{}}:即textContent,將元素當成純文本輸出,
v-text:即textContent,將元素當成純文本輸出,
v-html:即innerHTML,將元素當成HTML標簽決議后輸出,

<div id="app">
	<p>{{msg}}</p>        <!--textContent-->
	<p v-text="msg"></p>  <!--textContent-->
	<p v-html="msg"></p>  <!--innerHTML-->     
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",
		data:{
			msg:"<a href='http:/www.atguigu.com'>I Will Back!</a>"
		}
	})
</script>

在這里插入圖片描述

六. 強制資料系結 v-bind: ? 簡寫 :

<div id="app">					
    <img v-bind:src="imgUrl" />
    <img :src="imgUrl" />		    		  
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",
		data:{					
			imgUrl:'https://cn.vuejs.org/images/logo.png'
		}				
	})
</script>

在這里插入圖片描述

七. 系結事件監聽 v-on: ?簡寫 @

<div id="app">			
    <button v-on:click="test">test1</button>
    <button @click="test2('aaa')">test2</button>
</div>
<script type="text/javascript">
	new Vue({
		el:"#app",				
		methods:{
			test(){
				alert('哈哈!');
			},
			test2(content){
				alert(content);
			}
		}
	})
</script>

在這里插入圖片描述
在這里插入圖片描述

八. 計算屬性 computed

<div id="demo">
	 姓: <input type="text" placeholder="First Name" v-model="firstName"><br>
	 名: <input type="text" placeholder="Last Name" v-model="lastName"><br>
	 <!--fullName1是根據fistName和lastName計算產生-->
	 姓名1(單向): <input type="text" placeholder="Full Name1" v-model="fullName1"><br>		 
</div>
<script type="text/javascript">
	const vm = new Vue({
		el:"#demo",
		data:{
			firstName:"A",
			lastName:"B"					
		},
		computed:{
			//什么時候執行:初始化顯示/相關的data屬性資料發生改變
			fullName1(){  //計算屬性中的一個方法,方法的回傳值作為屬性值
				return this.firstName+' '+this.lastName
			}
		}				
	})						
</script>

在這里插入圖片描述

九.監視 watch?$watch

watch 和 $watch 都能實作監視,
如果想要實作上述 計算屬性實體的效果,需要寫兩個 監視,如下實體:用了一個 watch ,一個 $watch,

<div id="demo">
  姓: <input type="text" placeholder="First Name" v-model="firstName"><br>
  名: <input type="text" placeholder="Last Name" v-model="lastName"><br>
  姓名2(單向): <input type="text" placeholder="Full Name2" v-model="fullName2"><br>
</div>
<script type="text/javascript">
	const vm = new Vue({
		el:"#demo",
		data:{
			firstName:"A",
			lastName:"B",
			fullName2: 'A B'				
		},
		watch:{//配置監視
			firstName:function(value){//firstName發生了變化
				console.log(this)//就是vm物件
				this.fullName2 = value+' '+this.lastName
			}
		}
	})
	
	vm.$watch('lastName',function(value){
		//更新fullName2
		this.fullName2 = this.firstName+' '+value
	})
</script>

在這里插入圖片描述

十一. 計算屬性之 get 與 set

計算屬性高級:
??通過getter/setter實作對屬性資料的顯示和監視,
??計算屬性存在快取, 多次讀取只執行一次getter計算,

<div id="demo">
 	姓: <input type="text" placeholder="First Name" v-model="firstName"><br>
  	名: <input type="text" placeholder="Last Name" v-model="lastName"><br>		 
  	姓名3(雙向): <input type="text" placeholder="Full Name3" v-model="fullName3"><br>
</div>
<script type="text/javascript">
	const vm = new Vue({
		el:"#demo",
		data:{
			firstName:"A",
			lastName:"B"				
		},
		computed:{									
			fullName3:{
				//回呼函式  計算并回傳當前屬性的值
				//當獲取當前屬性值時自動呼叫, 將回傳值(根據相關的其它屬性資料)作為屬性值
				get(){
					return this.firstName+' '+this.lastName
				},
				// 當屬性值發生了改變時自動呼叫, 監視當前屬性值變化, 同步更新相關的其它屬性值
				set(value){
					const names = value.split(' ')
					this.firstName = names[0]
					this.lastName = names[1]
				}
			}
		}				
	})			
</script>

在這里插入圖片描述

十二. class系結: :class=‘xxx’

三種情況:
??xxx是字串
??xxx是物件
??xxx是陣列

<div id="demo">
   <h2>class系結: :class='xxx'</h2>
   <p class="classC" :class="a">xxx是字串</p>
   <p :class="{classA:isA,classB:isB}">xxx是物件</p>
   <p :class="['classA','classC']">xxx是陣列</p>
   <button @click="update">更新</button>		
</div>
.classA {
	color: red;
}
.classB {
	background: blue;
}
.classC {
	font-size: 20px;
}
<script type="text/javascript">
	new Vue({
		el:'#demo',
		data:{
			a:'classA',
			isA:true,
			isB:false,
		},
		methods:{
			update(){
				this.a='classB',
				this.isA=false,
				this.isB=true						
			}
		}
	})
</script>

在這里插入圖片描述
??點擊更新按鈕后,效果如下:
在這里插入圖片描述

十三. style系結

<div id="demo">
	<p :style="{color: activeColor, fontSize: fontSize + 'px' }">style系結</p>		   
	<button @click="update">更新</button>		
</div>
<script type="text/javascript">
	new Vue({
		el:'#demo',
		data:{				
			activeColor:'red',
			fontSize:20
		},
		methods:{
			update(){					
				this.activeColor='green',
				this.fontSize=30
			}
		}
	})
</script>

在這里插入圖片描述
??點擊更新按鈕后,效果如下:
在這里插入圖片描述

十四. 條件渲染

??1. 條件渲染指令
?? ??v-if:能確保在切換程序中條件塊內的事件監聽器和子組件適當地被銷毀和重建,但如果在初始渲染時條件為假,則什么也不做,直到條件第一次變為真時,才會開始渲染,
?? ??v-else
?? ?? v-show:不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換,
??2. 比較v-if與v-show
?? ??如果需要頻繁切換, v-show 較好

?? ??如果在運行時條件很少改變,則使用 v-if 較好,

<div id="demo">	
	<p v-if="ok">成功了</p>
	<p v-else>失敗了</p>
	
	<p v-show="ok">表白成功</p>
	<p v-show="!ok">表白失敗</p>
	
	<button @click="ok=!ok">切換</button>
</div>
<script type="text/javascript">
	new Vue({
		el:'#demo',
		data:{
			ok:true
		}
	})
</script>

在這里插入圖片描述

十五. 遍歷 v-for

vue重寫了陣列中的一系列改變陣列內部資料的方法(先呼叫原生,再更新頁面)————>陣列內部改變,頁面自動變化

在這里插入圖片描述

<div id="demo">
	<h2>v-for 遍歷陣列</h2>
	<ul>
	  	<li v-for="(p,index) in persons" :key="index">
	  		{{index}}--{{p.name}}--{{p.age}}
	  		---<button @click="deleteP(index)">洗掉</button>
	  		---<button @click="updateP(index, {name:'Cat', age: 16})">更新</button>
	  	</li>
  </ul>	

  <h2>v-for 遍歷物件</h2>
  <ul>
    <li v-for="(value,key) in persons[1]" :key="key">
    	{{value}}---{{key}}
    </li>
  </ul>
</div>
<script type="text/javascript">
	//vue本身只是監視了persons的改變,沒有監視陣列內部資料的改變
	//vue重寫了陣列中的一系列改變陣列內部資料的方法(先呼叫原生,再更新頁面)————>陣列內部改變,頁面自動變化
	new Vue({
		el:'#demo',
		data:{
			persons:[
				{name:'Tom',age:18},
				{name:'Jack',age:16},
				{name:'Bob',age:19},
				{name:'Rose',age:17}
			]
		},
		methods:{
			deleteP(index){
				this.persons.splice(index, 1) 
				// 呼叫了不是原生陣列的splice(), 而是一個變異(重寫)方法
				// 1. 呼叫原生的陣列的對應方法
				// 2. 更新界面
			},
			
			updateP (index, newP) {
		        console.log('updateP', index, newP)
		        this.persons.splice(index, 1, newP)				       
		      },
		
		    addP (newP) {
		        this.persons.push(newP)
		    }
		}
	})
</script>

在這里插入圖片描述

十六. 串列搜索和排序

看下面的示例,搜索是通過computed屬性計算出新的陣列,該陣列通過filter對persons陣列進行過濾得到,
排序是通過點擊不同的按鈕傳遞不同的orderType值進行判斷,使用sort方法,

<div id="demo">
	<input type="text" v-model="searchName">
	<ul>
		<li v-for="(p, index) in filterPersons" :key="index">
	      {{index}}--{{p.name}}--{{p.age}}
	    </li>
	</ul>
	<div>
	    <button @click="setOrderType(1)">年齡升序</button>
	    <button @click="setOrderType(2)">年齡降序</button>
	    <button @click="setOrderType(0)">原本順序</button>
	</div>
</div>
<script type="text/javascript">
  const vm = new Vue({
    el: '#demo',
    data: {
      searchName: '',
      orderType: 0, // 0代表原本順序, 1代表升序, 2代表降序
      persons: [
        {name: 'Tom', age:18},
        {name: 'Jack', age:17},
        {name: 'Bob', age:19},
        {name: 'Mary', age:16}
      ]
    },

    computed: {
      filterPersons () {
        // 取出相關資料
        const {searchName, persons, orderType} = this;

        //最終需要顯示的陣列
        let fPersons;
        
        // 對persons進行過濾
        fPersons = persons.filter(p => p.name.indexOf(searchName)!== -1)		        
        
        // 排序
        if(orderType !== 0) {
          fPersons.sort(function (p1, p2) {
            if(orderType===2) { 
              // 降序
              return p2.age-p1.age
            } else {
              // 升序
              return p1.age-p2.age
            }
          })
        } 
        return fPersons
      }		     
    },

    methods: {
      setOrderType (orderType) {
        this.orderType = orderType
      }
    }
  })
</script>

在這里插入圖片描述
在這里插入圖片描述

十七. 事件處理

1. 系結監聽:

(1)v-on:xxx=“fun”
(2)@xxx=“fun”
(3)@xxx=“fun(引數)”
??默認事件形參: event
?? 隱含屬性物件: $event

<div id="example">	
  <button @click="test1">test1</button>
  <button @click="test2('atguigu')">test2</button>
  <button @click="test3">test3</button>
  <button @click="test4('abcd', $event)">test4</button>
</div>
<script type="text/javascript">
	new Vue({
		el:'#example',
		data:{
			
		},
		methods:{
			test1 () {
		        alert('點擊了')
	          },
	        test2 (msg) {
		        alert(msg)
		     },
			test3(event) {
		        alert(event.target.innerHTML)
		     },				      
		    test4 (msg, event) {
		        alert(msg+'---'+event.target.textContent)
		    }
		}
	})
</script>

在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述
在這里插入圖片描述

2. 事件修飾符:

.prevent : 阻止事件的默認行為 event.preventDefault()
.stop : 停止事件冒泡 event.stopPropagation()

<div id="example">
	<div style="width: 200px;height: 200px;background: red" @click="test5">
		<div style="width: 100px;height: 100px;background: blue" @click.stop="test6"></div><!--停止冒泡-->
	</div>		  
	<a href="http://www.baidu.com" @click.prevent="test7">百度一下</a><!--阻止默認行為-->
</div>
<script type="text/javascript">
	new Vue({
		el:'#example',
		data:{
			
		},
		methods:{					
		    test5 () {
		        alert('out')
		    },
		    test6 () {
		        alert('inner')
		    },		
		    test7(){
		    	alert('點擊了');
		    }
		}
	})
</script>

??可以自己試試,可以發現,事件的默認行為和冒泡行為全部被阻止了,

3. 按鍵修飾符:

.keycode : 操作的是某個keycode值的健
.enter : 操作的是enter鍵,enter鍵的keycode值為13,以下以enter為示例,

<div id="example">		  	
  <input type="text" @keyup.13="test8"><!--按enter鍵-->
  <input type="text" @keyup.enter="test8"><!--按enter鍵-->
</div>
<script type="text/javascript">
	new Vue({
		el:'#example',
		data:{
			
		},
		methods:{					
		    test8(event){
		    	alert(event.target.value+" "+event.keyCode)
		    }
		}
	})
</script>

在這里插入圖片描述
在這里插入圖片描述

十八. 表單輸入系結

使用v-model(雙向資料系結)自動收集資料
text/textarea
checkbox
radio
select

<div id="demo">
  <form action="/xxx" @submit.prevent="handleSubmit">
    <span>用戶名: </span>
    <input type="text" v-model="username"><br>

    <span>密碼: </span>
    <input type="password" v-model="pwd"><br>

    <span>性別: </span>
    <input type="radio" id="female" value="" v-model="sex">
    <label for="female"></label>
    <input type="radio" id="male" value="" v-model="sex">
    <label for="male"></label>
    <br>

    <span>愛好: </span>
    <input type="checkbox" id="basket" value="basket" v-model="likes">
    <label for="basket">籃球</label>
    <input type="checkbox" id="foot" value="foot" v-model="likes">
    <label for="foot">足球</label>
    <input type="checkbox" id="pingpang" value="pingpang" v-model="likes">
    <label for="pingpang">乒乓</label>
    <br>

    <span>城市: </span>
    <select v-model="cityId">
      <option value="">未選擇</option>
      <option :value="city.id" v-for="(city, index) in allCitys" :key="city.id">{{city.name}}</option>
    </select>
    <br>
    
    <span>介紹: </span>
    <textarea rows="10" v-model="info"></textarea><br><br>

    <input type="submit" value="注冊">
  </form>
</div>
<script type="text/javascript">
	new Vue({
		el:'#demo',
		data: {
	      username: '',
	      pwd: '',
	      sex: '男',
	      likes: ['foot'],
	      allCitys: [{id: 1, name: 'BJ'}, {id: 2, name: 'SS'}, {id: 3, name: 'SZ'}],
	      cityId: '2',
	      info: ''
	    },
	    methods: {
	      handleSubmit () {
	        console.log(this.username, this.pwd, this.sex, this.likes, this.cityId, this.info)
	        alert('提交注冊的ajax請求')
	      }
	    }
	})
</script>

在這里插入圖片描述

十九. 生命周期

1. vue物件的生命周期
1). 初始化顯示
* beforeCreate()
* created()
* beforeMount()
* mounted()
2). 更新狀態
* beforeUpdate()
* updated()
3). 銷毀vue實體: vm.$destory()
* beforeDestory()
* destoryed()
2. 常用的生命周期方法
created()/mounted(): 發送ajax請求, 啟動定時器等異步任務
beforeDestory(): 做收尾作業, 如: 清除定時器

<div id="test">
	<button @click="destroyVue">destory vue</button>
	<p v-if="isShow">尚硅谷IT教育</p>
</div>
<script type="text/javascript">
	new Vue({
		el: '#test',
		data: {
			isShow: true
		},

		beforeCreate() {
			console.log('beforeCreate()')
		},

		created() {
			console.log('created()')
		},

		beforeMount() {
			console.log('beforeMount()')
		},

		mounted() {
			// 初始化顯示后立即呼叫
			console.log('mounted()')
			this.intervalId = setInterval(() => {
				console.log('-----')
				this.isShow = !this.isShow
			}, 1000)
		},

		beforeUpdate() {
			console.log('beforeUpdate()')
		},
		updated() {
			console.log('updated()')
		},

		beforeDestroy() {
			console.log('beforeDestroy()')
			// 執行收尾的作業
			clearInterval(this.intervalId)
		},

		destroyed() {
			console.log('destroyed()')
		},

		methods: {
			destroyVue() {
				this.$destroy()
			}
		}
	})
</script>

在這里插入圖片描述
附上vue的生命周期圖:
在這里插入圖片描述

二十. 過渡和影片

1. vue影片的理解
??操作css的trasition或animation
??vue會給目標元素添加/移除特定的class
2. 基本過渡影片的編碼
??1). 在目標元素外包裹
??2). 定義class樣式
?? 1>. 指定過渡樣式: transition
?? 2>. 指定隱藏時的樣式: opacity/其它
3. 過渡的類名
??xxx-enter-active: 指定顯示的transition
??xxx-leave-active: 指定隱藏的transition
??xxx-enter

實體一:

<div id="demo">
	<button @click="show = !show">Toggle</button>
	<transition name="xxx">
		<p v-show="show">hello</p>
	</transition>
</div>	
/*指定過渡樣式*/
.xxx-enter-active, .xxx-leave-active {
	transition: opacity 1s
}
/*指定隱藏時的樣式*/
.xxx-enter, .xxx-leave-to {
	opacity: 0;
}
<script type="text/javascript">
	new Vue({
    el: '#demo',
    data: {
      show: true
    }
  })
</script>

實體二:

<div id="demo2">
	<button @click="show = !show">Toggle2</button>
	<transition name="move">
		<p v-show="show">hello</p>
	</transition>
</div>
.move-enter-active {
	transition: all 1s
}

.move-leave-active {
	transition: all 3s
}

.move-enter, .move-leave-to {
	opacity: 0;
	transform: translateX(20px)
}
<script type="text/javascript">		
new Vue({
	el: '#demo2',
	data: {
		show: true
	}
})
</script>

實體三:

<div id="example-2">
	<button @click="show = !show">Toggle show</button>
	<br>
	<transition name="bounce">
		<p v-if="show" style="display: inline-block">Lorem</p>
	</transition>
</div>
在這里插入代碼片
`.bounce-enter-active {
	animation: bounce-in .5s;
}
.bounce-leave-active {
	animation: bounce-in .5s reverse;
}
@keyframes bounce-in {
	0% {
		transform: scale(0);
	}
	50% {
		transform: scale(1.5);
	}
	100% {
		transform: scale(1);
	}
}

```javascript
<script>
  new Vue({
    el: '#example-2',
    data: {
      show: true
    }
  })
</script>

可自己運行查看效果,

二十一. 過濾器

1. 理解過濾器
功能: 對要顯示的資料進行特定格式化后再顯示
注意: 并沒有改變原本的資料, 而是產生新的對應的資料
2. 編碼
1). 定義過濾器
Vue.filter(filterName, function(value[,arg1,arg2,…]){
// 進行一定的資料處理
return newValue
})
2). 使用過濾器

{{myData | filterName}}

{{myData | filterName(arg)}}

<div id="test">
	<h2>顯示格式化的日期時間</h2>
	<p>{{time}}</p>
	<p>最完整的: {{time | dateString}}</p>
	<p>年月日: {{time | dateString('YYYY-MM-DD')}}</p>
	<p>時分秒: {{time | dateString('HH:mm:ss')}}</p>
</div>
<script type="text/javascript" src="https://cdn.bootcss.com/moment.js/2.22.1/moment.js"></script>
<script type="text/javascript">
	// 定義過濾器
	Vue.filter('dateString', function (value, format='YYYY-MM-DD HH:mm:ss') {
	
	    return moment(value).format(format);
	})
	
	
	new Vue({
	    el: '#test',
	    data: {
	      time: new Date()
	    },
	    mounted () {
	      setInterval(() => {
	        this.time = new Date()
	      }, 1000)
	    }
	})
</script>

這里引入了moment,詳情可查看其官網moment.js

也可以查看我的博客 初識react(13)—— 使用 moment 來獲取日期 ,不過我這篇博客是基于 react 寫的,可以參考著看,下面是上述代碼運行結果:

在這里插入圖片描述

二十二. 指令

1. 常用內置指令

v:text : 更新元素的 textContent
v-html : 更新元素的 innerHTML
v-if : 如果為true, 當前標簽才會輸出到頁面
v-else: 如果為false, 當前標簽才會輸出到頁面
v-show : 通過控制display樣式來控制顯示/隱藏
v-for : 遍歷陣列/物件
v-on : 系結事件監聽, 一般簡寫為@
v-bind : 強制系結決議運算式, 可以省略v-bind
v-model : 雙向資料系結
ref : 為某個元素注冊一個唯一標識, vue物件通過$refs屬性訪問這個元素物件
v-cloak : 使用它防止閃現運算式, 與css配合: [v-cloak] { display: none }

<div id="example">
  <p ref="msg">abcd</p>
  <button @click="hint">提示</button>
  <p v-cloak>{{content}}</p>
</div>
 [v-cloak] { display: none }
<script type="text/javascript">
new Vue({
    el: '#example',
    data: {
      content: '<a href="http://www.baidu.com">百度一下</a>'
    },
    methods: {
      hint () {
        alert(this.$refs.msg.innerHTML)
      }
    }
  })
</script>

在這里插入圖片描述

2. 自定義指令

1. 注冊全域指令
Vue.directive(‘my-directive’, function(el, binding){
el.innerHTML = binding.value.toupperCase()
})
2. 注冊區域指令
directives : {
‘my-directive’ : {
bind (el, binding) {
el.innerHTML = binding.value.toupperCase()
}
}
}
3. 使用指令
v-my-directive='xxx’

<div id="test1">
	<p v-upper-text="msg"></p>
	<p v-lower-text="msg"></p>
</div>

<div id="test2">
	<p v-upper-text="msg"></p>
	<p v-lower-text="msg"></p>
</div>
<script type="text/javascript">
 // 注冊一個全域指令
  // el: 指令所在的標簽物件
  // binding: 包含指令相關資訊資料的物件
  Vue.directive('upper-text', function (el, binding) {
    console.log(el, binding)
    el.textContent = binding.value.toUpperCase()
  })
  new Vue({
    el: '#test1',
    data: {
      msg: "I Like You"
    },
    
    // 注冊區域指令
    directives: {
      'lower-text'(el, binding) {
        console.log(el, binding)
        el.textContent = binding.value.toLowerCase()
      }
    }

  })

  new Vue({
    el: '#test2',
    data: {
      msg: "I Like You Too"
    }
  })
</script>

在這里插入圖片描述

二十三. 插件

1.首先創建一個js檔案,如:

在這里插入圖片描述

2.在該js檔案中,寫如下所示代碼,向外暴露該 js 檔案:

(function (window) {

  //這里寫入你的代碼
  
  //向外暴露
  window.MyPlugin = MyPlugin
})(window)

3.在 html 檔案中引入該 js 檔案:

<script type="text/javascript" src="vue-myPlugin.js"></script>

4.使用 該 js 檔案方法:

Vue.use(MyPlugin)
Vue.xxx()

以上是我通過看視頻學習,對 vue 基礎知識的一次總結,主要是為了方便自己以后翻閱,希望也能幫助到大家,

以上內容來自尚硅谷的視頻,不理解的可以看視頻學習,

轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/197229.html

標籤:其他

上一篇:事件流

下一篇:原生Javascript(語言基礎和流程控制陳述句)—1_Sander_2020的博客—CSDN博客

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 網閘典型架構簡述

    網閘架構一般分為兩種:三主機的三系統架構網閘和雙主機的2+1架構網閘。 三主機架構分別為內端機、外端機和仲裁機。三機無論從軟體和硬體上均各自獨立。首先從硬體上來看,三機都用各自獨立的主板、記憶體及存盤設備。從軟體上來看,三機有各自獨立的作業系統。這樣能達到完全的三機獨立。對于“2+1”系統,“2”分為 ......

    uj5u.com 2020-09-10 02:00:44 more
  • 如何從xshell上傳檔案到centos linux虛擬機里

    如何從xshell上傳檔案到centos linux虛擬機里及:虛擬機CentOs下執行 yum -y install lrzsz命令,出現錯誤:鏡像無法找到軟體包 前言 一、安裝lrzsz步驟 二、上傳檔案 三、遇到的問題及解決方案 總結 前言 提示:其實很簡單,往虛擬機上安裝一個上傳檔案的工具 ......

    uj5u.com 2020-09-10 02:00:47 more
  • 一、SQLMAP入門

    一、SQLMAP入門 1、判斷是否存在注入 sqlmap.py -u 網址/id=1 id=1不可缺少。當注入點后面的引數大于兩個時。需要加雙引號, sqlmap.py -u "網址/id=1&uid=1" 2、判斷文本中的請求是否存在注入 從文本中加載http請求,SQLMAP可以從一個文本檔案中 ......

    uj5u.com 2020-09-10 02:00:50 more
  • Metasploit 簡單使用教程

    metasploit 簡單使用教程 浩先生, 2020-08-28 16:18:25 分類專欄: kail 網路安全 linux 文章標簽: linux資訊安全 編輯 著作權 metasploit 使用教程 前言 一、Metasploit是什么? 二、準備作業 三、具體步驟 前言 Msfconsole ......

    uj5u.com 2020-09-10 02:00:53 more
  • 游戲逆向之驅動層與用戶層通訊

    驅動層代碼: #pragma once #include <ntifs.h> #define add_code CTL_CODE(FILE_DEVICE_UNKNOWN,0x800,METHOD_BUFFERED,FILE_ANY_ACCESS) /* 更多游戲逆向視頻www.yxfzedu.com ......

    uj5u.com 2020-09-10 02:00:56 more
  • 北斗電力時鐘(北斗授時服務器)讓網路資料更精準

    北斗電力時鐘(北斗授時服務器)讓網路資料更精準 北斗電力時鐘(北斗授時服務器)讓網路資料更精準 京準電子科技官微——ahjzsz 近幾年,資訊技術的得了快速發展,互聯網在逐漸普及,其在人們生活和生產中都得到了廣泛應用,并且取得了不錯的應用效果。計算機網路資訊在電力系統中的應用,一方面使電力系統的運行 ......

    uj5u.com 2020-09-10 02:01:03 more
  • 【CTF】CTFHub 技能樹 彩蛋 writeup

    ?碎碎念 CTFHub:https://www.ctfhub.com/ 筆者入門CTF時時剛開始刷的是bugku的舊平臺,后來才有了CTFHub。 感覺不論是網頁UI設計,還是題目質量,賽事跟蹤,工具軟體都做得很不錯。 而且因為獨到的金幣制度的確讓人有一種想去刷題賺金幣的感覺。 個人還是非常喜歡這個 ......

    uj5u.com 2020-09-10 02:04:05 more
  • 02windows基礎操作

    我學到了一下幾點 Windows系統目錄結構與滲透的作用 常見Windows的服務詳解 Windows埠詳解 常用的Windows注冊表詳解 hacker DOS命令詳解(net user / type /md /rd/ dir /cd /net use copy、批處理 等) 利用dos命令制作 ......

    uj5u.com 2020-09-10 02:04:18 more
  • 03.Linux基礎操作

    我學到了以下幾點 01Linux系統介紹02系統安裝,密碼啊破解03Linux常用命令04LAMP 01LINUX windows: win03 8 12 16 19 配置不繁瑣 Linux:redhat,centos(紅帽社區版),Ubuntu server,suse unix:金融機構,證券,銀 ......

    uj5u.com 2020-09-10 02:04:30 more
  • 05HTML

    01HTML介紹 02頭部標簽講解03基礎標簽講解04表單標簽講解 HTML前段語言 js1.了解代碼2.根據代碼 懂得挖掘漏洞 (POST注入/XSS漏洞上傳)3.黑帽seo 白帽seo 客戶網站被黑帽植入劫持代碼如何處理4.熟悉html表單 <html><head><title>TDK標題,描述 ......

    uj5u.com 2020-09-10 02:04:36 more
最新发布
  • 2023年最新微信小程式抓包教程

    01 開門見山 隔一個月發一篇文章,不過分。 首先回顧一下《微信系結手機號資料庫被脫庫事件》,我也是第一時間得知了這個訊息,然后跟蹤了整件事情的經過。下面是這起事件的相關截圖以及近日流出的一萬條資料樣本: 個人認為這件事也沒什么,還不如關注一下之前45億快遞資料查詢渠道疑似在近日復活的訊息。 訊息是 ......

    uj5u.com 2023-04-20 08:48:24 more
  • web3 產品介紹:metamask 錢包 使用最多的瀏覽器插件錢包

    Metamask錢包是一種基于區塊鏈技術的數字貨幣錢包,它允許用戶在安全、便捷的環境下管理自己的加密資產。Metamask錢包是以太坊生態系統中最流行的錢包之一,它具有易于使用、安全性高和功能強大等優點。 本文將詳細介紹Metamask錢包的功能和使用方法。 一、 Metamask錢包的功能 數字資 ......

    uj5u.com 2023-04-20 08:47:46 more
  • vulnhub_Earth

    前言 靶機地址->>>vulnhub_Earth 攻擊機ip:192.168.20.121 靶機ip:192.168.20.122 參考文章 https://www.cnblogs.com/Jing-X/archive/2022/04/03/16097695.html https://www.cnb ......

    uj5u.com 2023-04-20 07:46:20 more
  • 從4k到42k,軟體測驗工程師的漲薪史,給我看哭了

    清明節一過,盲猜大家已經無心上班,在數著日子準備過五一,但一想到銀行卡里的余額……瞬間心情就不美麗了。最近,2023年高校畢業生就業調查顯示,本科畢業月平均起薪為5825元。調查一出,便有很多同學表示自己又被平均了。看著這一資料,不免讓人想到前不久中國青年報的一項調查:近六成大學生認為畢業10年內會 ......

    uj5u.com 2023-04-20 07:44:00 more
  • 最新版本 Stable Diffusion 開源 AI 繪畫工具之中文自動提詞篇

    🎈 標簽生成器 由于輸入正向提示詞 prompt 和反向提示詞 negative prompt 都是使用英文,所以對學習母語的我們非常不友好 使用網址:https://tinygeeker.github.io/p/ai-prompt-generator 這個網址是為了讓大家在使用 AI 繪畫的時候 ......

    uj5u.com 2023-04-20 07:43:36 more
  • 漫談前端自動化測驗演進之路及測驗工具分析

    隨著前端技術的不斷發展和應用程式的日益復雜,前端自動化測驗也在不斷演進。隨著 Web 應用程式變得越來越復雜,自動化測驗的需求也越來越高。如今,自動化測驗已經成為 Web 應用程式開發程序中不可或缺的一部分,它們可以幫助開發人員更快地發現和修復錯誤,提高應用程式的性能和可靠性。 ......

    uj5u.com 2023-04-20 07:43:16 more
  • CANN開發實踐:4個DVPP記憶體問題的典型案例解讀

    摘要:由于DVPP媒體資料處理功能對存放輸入、輸出資料的記憶體有更高的要求(例如,記憶體首地址128位元組對齊),因此需呼叫專用的記憶體申請介面,那么本期就分享幾個關于DVPP記憶體問題的典型案例,并給出原因分析及解決方法。 本文分享自華為云社區《FAQ_DVPP記憶體問題案例》,作者:昇騰CANN。 DVPP ......

    uj5u.com 2023-04-20 07:43:03 more
  • msf學習

    msf學習 以kali自帶的msf為例 一、msf核心模塊與功能 msf模塊都放在/usr/share/metasploit-framework/modules目錄下 1、auxiliary 輔助模塊,輔助滲透(埠掃描、登錄密碼爆破、漏洞驗證等) 2、encoders 編碼器模塊,主要包含各種編碼 ......

    uj5u.com 2023-04-20 07:42:59 more
  • Halcon軟體安裝與界面簡介

    1. 下載Halcon17版本到到本地 2. 雙擊安裝包后 3. 步驟如下 1.2 Halcon軟體安裝 界面分為四大塊 1. Halcon的五個助手 1) 影像采集助手:與相機連接,設定相機引數,采集影像 2) 標定助手:九點標定或是其它的標定,生成標定檔案及內參外參,可以將像素單位轉換為長度單位 ......

    uj5u.com 2023-04-20 07:42:17 more
  • 在MacOS下使用Unity3D開發游戲

    第一次發博客,先發一下我的游戲開發環境吧。 去年2月份買了一臺MacBookPro2021 M1pro(以下簡稱mbp),這一年來一直在用mbp開發游戲。我大致分享一下我的開發工具以及使用體驗。 1、Unity 官網鏈接: https://unity.cn/releases 我一般使用的Apple ......

    uj5u.com 2023-04-20 07:40:19 more