<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
<div> <h1> Hello!{{name}} {{Date.now()}} {{address}} </h1> </div> <script> Vue.config.productionTip = false //阻止vue在生成時自動產生提示 //建立Vue範例 new Vue({ el:'#root', //el用於指定當前Vue範例為哪個容器服務,值通常為css選擇器字串。 data:{ //data中用於儲存資料,資料供el所指定的容器去使用,值我們暫時先寫成一個物件。 name:'Tree', address:'China' } }) </script>
注意點:
1.{ { xxx } } 這裡的xxx要寫的是js表示式,並且它會自動讀取到data中所有的屬性
2.一旦data中的資料發生改變,那麼頁面用帶該資料的地方也會自動更新
3.插值語法的功能:用於去解析標籤體內容,標籤體就是起始標籤和結束標籤中間的內容,例如:<h1> xxx </h1> xxx就是標籤體
4.要區分什麼是js表示式?什麼是js程式碼?
1. 什麼是js表示式? 表示式可以產生一個值或者返回一個值 (1) a = 1 (2) a+b (3) Date.now() 函數 (4) x = Y ? 1 : 2 2. 什麼是js程式碼?(語句) (1) if(){} (2) for(){} js表示式就是一種特殊的js程式碼
指令語法有很多,下面例子只是其中一個 v-bind: ===> 可以簡寫為 :
加入該指令後 " " 裡的內容就會變成js表示式,而不是字串(這個知識點很重要後面使用的地方會很多)
該方法是解析標籤得屬性,指令的功能很強大可以解析標籤(例如:解析標籤體,標籤屬性,繫結事件)
<div class="wrapper"> <h1>你好啊!{{name}}</h1> <hr> <a :href="school.url">點選進入{{school.name}}</a> <a v-bind:href="school.url">點選進入{{school.name}}</a> </div> <script> Vue.config.productionTip = false new Vue({ el:".wrapper", data:{ name:"Tree", school:{ name: "bilibili", url:"https://www.bilibili.com/" } } }) </script>
<div class="wrapper"> <!-- 普通寫法 --> <!-- 單項資料繫結: <input type="text" v-bind:value="name"><br> 雙向資料繫結: <input type="text" v-model:value="name"> --> <!-- 簡便寫法 --> 單項資料繫結: <input type="text" :value="name"><br> 雙向資料繫結: <input type="text" v-model="name"> </div> <script> Vue.config.productionTip = false new Vue({ el:".wrapper", data:{ name:"Hello" } }) </script>
<div class="root"> <input type="text" v-model="message"> <p>{{message}}</p> </div> <script> Vue.config.productionTip = false //阻止vue在生成時自動產生提示 new Vue({ el:".root", data:{ message:'Hello! Vue' } }) </script>
1.v-model的三個修飾符:
2.v-model收集的就是value的值
<div id="root"> <form @submit.prevent="demo"> <!-- 當點選按鈕時,會有預設行為提交資訊,重新整理頁面--> <!-- v-model.trim表示去掉前後空格 --> 賬號:<input type="text" v-model.trim="userinfo.account"><br><br> 密碼:<input type="password" v-model="userinfo.password"><br><br> <!-- input型別的number是限制使用者的輸入,而v-model.number是將收到的資料轉換為number型別,二者配合使用 --> 年齡:<input type="number" v-model.number="userinfo.age"><br><br> 性別: <!-- 對於單選項,我們通過取相同的名字來表示是一組的 --> 男<input type="radio" v-model="userinfo.sex" name="sex" value="男"> 女<input type="radio" v-model="userinfo.sex" name="sex" value="女"><br><br> 愛好: <input type="checkbox" v-model="userinfo.hobby" value="打籃球">打籃球 <input type="checkbox" v-model="userinfo.hobby" value="敲程式碼">敲程式碼 <input type="checkbox" v-model="userinfo.hobby" value="乾飯">乾飯 <br><br> 所屬校區: <select v-model="userinfo.address"> <option value="">請選擇地區</option> <option value="北京">北京</option> <option value="上海">上海</option> <option value="廣州">廣州</option> <option value="深圳">深圳</option> </select><br><br> <!-- v-model.lazy:表示當失去焦點的時候再接收資料 --> 其他資訊:<textarea cols="20" rows="3" v-model.lazy="userinfo.other"></textarea> <br><br> <input type="checkbox" v-model="userinfo.agree">同意並接受 <a href="#" style="text-decoration: none;">《使用者協定》</a> <br><br> <button>提交</button> </form> </div> <script> Vue.config.productionTip = false let vm = new Vue({ el: '#root', data: { userinfo:{ account:"", password:"", age:"", sex:"", hobby:[], address:"", other:"", agree:"" }, }, methods: { demo(){ console.log(JSON.stringify(this.userinfo)); } }, }) </script>
M
模型(Model) :data中的資料
V
檢視(View) :模板程式碼(不是靜態頁面)
VM
viewModel: 檢視模型(Vue的範例)
對MVVM的理解:
MVVM 本質上即模型-檢視-檢視模型。模型model指的是後端傳遞的資料,檢視view指的是所看到的頁面。檢視模型viewModel是 mvvm 模式的核心,它是連線 view 和 model 的橋樑。它有兩個方向:
將模型轉化成檢視,即將後端傳遞的資料轉化成所看到的頁面。實現的方式是:資料繫結
將檢視轉化成模型,即將所看到的頁面轉化成後端的資料。實現的方式是:DOM 事件監聽
這兩個方向都實現的,我們稱之為資料的雙向繫結
Object.defineProperty - 第一個引數:指定的物件 - 第二個引數:要新增的屬性名 - 第三個引數:設定項
<script> let number = 20 Vue.config.productionTip = false //阻止預設提示 var person = { name : "jack", address : "hgs" } Object.defineProperty(person,"age",{ // value: 18 , // enumerable:true, 控制屬性是否能夠進行列舉,預設值false // writable:true, 控制屬性是否能夠被修改,預設值false // configurable:true 控制屬性是否能夠被刪除,預設值fasle // 上面屬於基本設定,下面get和set很重要 //當有人讀取person的age屬性時get函數(getter)就會被呼叫,返回的值就是age的值 get(){ console.log("讀取成功!"); return number }, //當有人修改Person的age屬性時set函數(setter)就會被呼叫,修改後的值就會被獲取到value set(value){ console.log("修改的值: "+value); number = value } })
自我對於資料代理的理解:
data
的資料傳入到vm下的_data
中去,並且把_data
的資料利用Object.defineProperty
也就是資料代理到vm中去通過getter和setter去讀/修改,這樣做的目的是方便寫程式碼,直接{{name
}},不用{{_data.name
}}.<div id="root"> <h1>Hello!{{_data.name}}</h1> <h1>Hello!{{_data.address}}</h1> <h1>Hello!{{name}}</h1> <h1>Hello!{{address}}</h1> </div> <script> Vue.config.productionTip = false //阻止預設的提示 var vm = new Vue({ el: '#root', data: { name:"Jack", address:"China" } }) </script>
以上就是今天要講的內容,本文僅僅簡單介紹了Vue的一些基本知識,希望對大家有幫助!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45