<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      Vue - 入門

      零:前端目前形勢

      前端的發展史

      1. HTML(5)、CSS(3)、JavaScript(ES5、ES6):編寫一個個的頁面 -> 給后端(PHP、Python、Go、Java) -> 后端嵌入模板語法 -> 后端渲染完數據 -> 返回數據給前端 -> 在瀏覽器中查看

      2. Ajax的出現 -> 后臺發送異步請求,Render+Ajax混合

      3. 單用Ajax(加載數據,DOM渲染頁面):前后端分離的雛形

      4. Angular框架的出現(1個JS框架):出現了“前端工程化”的概念(前端也是1個工程、1個項目)

      5. ReactVue框架:當下最火的2個前端框架(Vue:國人喜歡用,React:外國人喜歡用)

      6. 移動開發(Android+IOS) + Web(Web+微信小程序+支付寶小程序) + 桌面開發(Windows桌面):前端 -> 大前端

      7. 一套代碼在各個平臺運行(大前端):谷歌Flutter(Dart語言:和Java很像)可以運行在IOS、Android、PC端

      8. 在Vue框架的基礎性上 uni-app一套編碼 編到10個平臺

      9. 在不久的將來 ,前端框架可能會一統天下

      詳細的發展史:
      https://zhuanlan.zhihu.com/p/337276087?utm_source=wechat_session&utm_medium=social&utm_oi=41967790587904

      一:Vue介紹 和 基本使用

      1.Vue介紹

      Vue (讀音 /vju?/,類似于 view) 是一套用于構建用戶界面的漸進式框架

      與其它大型框架不同的是,Vue 被設計為可以自底向上逐層應用

      Vue 的核心庫只關注視圖層,不僅易于上手,還便于與第三方庫或既有項目整合

      漸進式框架

      可以一點一點地使用它,只用一部分,也可以整個工程都使用它

      網站

      2.Vue特點

      易用

      通過 HTML、CSS、JavaScript構建應用

      靈活

      不斷繁榮的生態系統,可以在一個庫和一套完整框架之間自如伸縮。

      高效

      • 20kB min+gzip 運行大小
      • 超快虛擬 DOM
      • 最省心的優化

      3.M-V-VM思想

      ① MVVM介紹

      MVVM 是Model-View-ViewModel 的縮寫,它是一種基于前端開發的架構模式,是一種事件驅動編程方式

      • Model :vue對象的data屬性里面的數據,這里的數據要顯示到頁面中
      • View :vue中數據要顯示的HTML頁面,在vue中,也稱之為“視圖模板” (HTML+CSS)
      • ViewModel:vue中編寫代碼時的vm對象,它是vue.js的核心,負責連接 View 和 Model數據的中轉,保證視圖和數據的一致性,所以前面代碼中,data里面的數據被顯示中p標簽中就是vm對象自動完成的(雙向數據綁定:JS中變量變了,HTML中數據也跟著改變)
        image

      ② MVVM的特性

      • 低耦合視圖(View)可以獨立于Model變化和修改,1個ViewModel可以綁定到不同的View上,當View變化的時候 Model可以不變,當Model變化的時候 View也可以不變
      • 可復用:可以把一些視圖邏輯放在1個ViewModel中,讓很多View重用這端視圖的邏輯(以此減少代碼冗余)
      • 獨立開發開發人員可以專注于業務邏輯數據的開發(ViewModel),設計人員可以專注于頁面設計
      • 可測試:界面元素是比較難以測試的,而現在的測試可以針對ViewModel來編寫

      ③ MVVM的邏輯

      image

      4.組件化開發、單頁面開發

      組件化開發

      類似于DTL中的include每一個組件的內容都可以被替換和復用
      image

      單頁面開發

      只需要1個頁面,結合組件化開發來替換頁面中的內容

      頁面的切換只是組件的替換,頁面還是只有1個index.html

      5.版本

      1.X:使用得較少

      2.X:普遍使用

      3.X:剛出沒多久,只有Beta版

      6.引入方式

      ① CDN的方式引入

      <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
      

      ② 下載后導入

      其實就是直接在瀏覽器中打開https://cdn.jsdelivr.net/npm/vue/dist/vue.js, 然后復制下來,創建一個js文件再粘貼進去

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

      7.補充

      解釋型的語言是需要解釋器的

      js就是一門解釋型語言,只不過js解釋器被集成到了瀏覽器中

      所以,在瀏覽器的Console中輸入命令,就和在cmd中輸入python后,進入交互式環境一樣

      nodejs:一門后端語言

      把chrome的v8引擎(解釋器),安裝到操作系統之上

      8.簡單使用

      index.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>vue的簡單使用</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	{ {name} }
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box', // 在box這個div中可以寫 vue的語法
      		data: {
      			name: 'Hello World'
      		}
      	})
      </script>
      </html>
      

      雙向數據綁定測試

      vm._data.name='darker'    // 修改js中變量的值
      $('#box').text('hahah')    // 修改HTML的div中的值
      

      image

      二:模板語法

      1.插值語法

      語法:{ { 變量、js語法、三目表達式 } }

      index.html

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>插值</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<ul>
      		<li>字符串:{ {name} }</li>
      		<li>數值:{ {age} }</li>
      		<li>數組:{ {list1} }</li>
      		<li>對象:{ {obj1} }</li>
      		<li>字符串:{ {link1} }</li>
      		<li>運算:{ {10+20+30+40} }</li>
      		<li>三目運算符:{ {10>20?'是':'否'} }</li>
      	</ul>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box', // 在box這個div中可以寫 vue的語法
      		data: {
      			name: 'Darker', // 字符串
      			age: 18, // 數值
      			list1: [1,2,3,4],   // 數組
      			obj1: {name: 'Darker', age: 19}, // 對象
      			link1: '<a >百度一下 你就知道</a>'
      		}
      	})
      </script>
      </html>
      

      image

      三:指令

      1.文本指令

      指令 釋義
      v-html 讓HTML渲染成頁面
      v-text 標簽內容顯示js變量對應的值
      v-show 放1個布爾值:為真 標簽就顯示;為假 標簽就不顯示
      v-if 放1個布爾值:為真 標簽就顯示;為假 標簽就不顯示

      v-show 與 v-if 的區別:

      • v-show:標簽還在,只是不顯示了(display: none)
      • v-if:直接操作DOM,刪除/插入 標簽

      v-html:讓HTML渲染成頁面

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>v-html</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<ul>
      		<li v-html="link1"></li>
      	</ul>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box', // 在box這個div中可以寫 vue的語法
      		data: {
      			link1: '<a >百度一下 你就知道</a>'
      		}
      	})
      </script>
      </html>
      

      image

      v-text:標簽內容顯示js變量對應的值

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>v-text</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<ul>
      		<li v-text="link1"></li>
      	</ul>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box', // 在box這個div中可以寫 vue的語法
      		data: {
      			link1: '<a >百度一下 你就知道</a>',
      		}
      	})
      </script>
      </html>
      

      image

      v-show:顯示/隱藏內容

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>v-show</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<h3>案例:控件通過按鈕來控制顯示和小事</h3>
      	<button @click="handleClick()">點我</button>
      	<br>
      	<div v-show="isShow">isShow</div>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box',
      		data: {
      			isShow: true,
      		},
      		methods: {
      			handleClick(){
      			  this.isShow = !this.isShow    // this指的是當前的vue對象
      			},
      		}
      	})
      </script>
      </html>
      

      image

      v-if:顯示/刪除內容

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>v-if</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<h3>案例:控件通過按鈕來控制顯示和消失</h3>
      	<button @click="handleClick()">點我</button>
      	<br>
      	<div v-if="isCreated">isCreated</div>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box',
      		data: {
      			isCreated:true
      		},
      		methods: {
      			handleClick(){
      			  this.isCreated = !this.isCreated    // this指的是當前的vue對象
      			},
      		}
      	})
      </script>
      </html>
      

      image

      2.事件指令

      指令 釋義
      v-on 觸發事件(不推薦)
      @ 觸發事件(推薦)
      @event 觸發event事件(可以是其他任意事件

      v-on:click可以縮寫成@click

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>事件指令</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      </head>
      <body>
      <div id="box">
      	<button v-on:click="handleClick1">點我1</button>
      	<!-- 下面這個用的多 -->
      	<button @click="handleClick2">點我2</button>
      	<!-- 如果不傳參數,是沒有區別的 -->
      	<button @click="handleClick3()">點我3-1(帶括號)</button>
      	<!-- 如果要傳參數 -->
      	<button @click="handleClick3(1,22,333)">點我3-2(帶括號+參數)</button>
      	<!-- 傳入事件 -->
      	<button @click="handleClick4($event)">點我4(帶事件參數)</button>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box',
      		data: {
      		},
      		methods: {
      			handleClick1() {
      				console.log('點我1')
      			},
      			handleClick2() {
      				console.log('點我2')
      			},
      			handleClick3(a,b,c) {
      				console.log(a,b,c)
      			},
      			handleClick4(event) {
      				console.log(event)
      			},
      		}
      	})
      </script>
      </html>
      

      image

      3.屬性指令

      指令 釋義
      v-bind 直接寫js的變量或語法(不推薦)
      : 直接寫js的變量或語法(推薦)

      v-bind:class='js變量'可以縮寫成:class='js變量'

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>屬性指令</title>
      	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
      	<style>
      		.red {
      			color: rgba(255, 104, 104, 0.7);
      		}
      		.purple {
      			color: rgba(104, 104, 255, 0.7);
      		}
      	</style>
      </head>
      <body>
      <div id="box">
      	<img v-bind:src="url" alt="" height="100">
      	<br>
      	<button @click="handleClick">點我變色</button>
      	<div :class="isActive?'red':'purple'">
      		<h1>我是一個div</h1>
      	</div>
      </div>
      </body>
      <script>
      	let vm = new Vue({
      		el: '#box',
      		data: {
      			url: 'https://ss0.bdstatic.com/70cFvHSh_Q1YnxGkpoWK1HF6hhy/it/u=205441424,1768829584&fm=26&gp=0.jpg',
      			change: 'red',
      			isActive: true
      		},
      		methods: {
      			handleClick() {
      				this.isActive = !this.isActive
      			},
      		}
      	})
      </script>
      </html>
      

      image

      四:Style 和 Class

      數據的綁定

      語法:

      :屬性名='js變量/js語法'

      • :class='js變量、字符串、js數組'
        class:三目運算符、數組、對象

      • :style='js變量、字符串、js數組'
        style:三目運算符、數組[{backgreound: ‘red’},]、對象

          <!DOCTYPE html>
          <html lang="en">
          <head>
          	<meta charset="UTF-8">
          	<title>Style 和 Class</title>
          	<script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.12/vue.min.js"></script>
          	<style>
          		.red {
          			color: rgba(255, 104, 104, 0.7);
          		}
          		.font-20 {
          			font-size: 20px;
          		}
          		.be-bold {
          			font-weight: bold;
          		}
          	</style>
          </head>
          <body>
          <div id="box">
          	<p>我是一個普通的p標簽</p>
          	<div :class="class_obj">
          		<p>我是一個不普通的p標簽1</p>
          	</div>
          	<button @click="handleClick">點擊放大字體</button>
          	<div :style="style_obj">
          		<p>我是一個不普通的p標簽2</p>
          	</div>
          </div>
          </body>
          <script>
          	let vm = new Vue({
          		el: '#box',
          		data: {
          			// class_obj: 'red',    // 放1個是字符串
          			class_obj: ['red', 'font-20', 'be-bold'],    // 放2個是數組
          			// class_obj: { red:true, be-bold:false},    // 也可以放對象
          			// 數組.push()   從尾部添加1個元素
          			// 數組.pop()    刪除最后1個元素 并返回
          			// 對象的寫法
          			style_obj: {
          				color: 'red',
          				fontSize: '20px'
          			}
          			// style_obj: [{background:'red'}, {fontSize:'20px'}]
          		},
          		methods: {
          			handleClick(){
          				this.style_obj['fontSize']='30px'
          			}
          		}
          	})
          </script>
          </html>
        

      下方試驗的命令

      vm.class_obj.pop()
      vm.class_obj.pop()
      vm.class_obj.pop()
      vm.class_obj.push('be-bold')
      vm.class_obj.push('red')
      vm.class_obj.push('font-20')
      

      image


      image

      posted @ 2024-06-30 21:03  二價亞鐵  閱讀(190)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 亚洲午夜福利网在线观看 | 日本边添边摸边做边爱| 国产精品免费看久久久| 丁香花成人电影| 人妻体体内射精一区二区| 不卡一区二区国产在线| 国内久久人妻风流av免费| 久久久亚洲欧洲日产国码aⅴ| 无码人妻丰满熟妇区bbbbxxxx| 国模少妇无码一区二区三区| 熟女精品视频一区二区三区| 亚洲精品无码久久千人斩| 色偷偷亚洲男人的天堂| 九九热在线这里只有精品| 中文字幕有码无码AV| 色九月亚洲综合网| 国产国语一级毛片| 推油少妇久久99久久99久久| 色一情一乱一伦麻豆| 农村老熟女一区二区三区| 亚洲女同精品久久女同| 国产亚洲精品日韩av在| 久久毛片少妇高潮| 余江县| 亚洲一区二区三区黄色片| 无码国内精品久久人妻蜜桃| 亚洲熟妇av一区二区三区宅男| 亚洲精品一区二区三区不| 国产在线午夜不卡精品影院| 鲁丝片一区二区三区免费| 内射极品少妇xxxxxhd| 免费看久久妇女高潮a| 国产精品区一区第一页| 加勒比亚洲天堂午夜中文| 欧洲无码一区二区三区在线观看 | 99久久久无码国产麻豆| 天天做天天爱夜夜爽女人爽| 曰韩无码二三区中文字幕| 四虎永久精品在线视频| 精品免费国产一区二区三区四区 | 亚洲国产熟女一区二区三区|