1. 程式人生 > >Vue初接觸 stage1

Vue初接觸 stage1

troy 打印 一個 分享圖片 imp 聲明 通過 搜索 無法使用

開始學Vue辣!哈哈哈哈哈真的好好玩啊Vue!這個寫法我真的太愛了!

stage1 4-27

先寫一下安裝Vue devtools時遇到的問題(說來神奇,我是寫第一個實例的時候試著在控制臺打印了這個空的實例發現Vue很貼心的給出了這個)

註意事項:1.引入的Vue必須是開發版本(development)

技術分享圖片

2.安裝完後出現Vue.js not detected問題,

技術分享圖片

打開谷歌瀏覽器擴展程序欄(在“更多工具”中),找到devtools插件,復制這一行id

技術分享圖片

打開everything(一個很好用的整理、清理文件用的軟件,搜索速度非常快),粘貼這一行id,找到這個文件夾(與id同名)

技術分享圖片

打開這個json文件,將這一項改為true

技術分享圖片

仍舊無法使用?打開擴展程序欄,進入詳細信息

技術分享圖片

確認這些選項被勾選~

雙向數據綁定的原生js實現:

技術分享圖片

好啦開始快落!

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv
="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="https://vuejs.org/js/vue.js"></script> </head> <body> <div id="box1"> <input type="text" v-model="name" placeholder="您的用戶名"> <h1>你好,{{ name }}</
h1> <h1 v-html = "link"></h1><!--輸出html內容--> <h1 v-pre>{{ 不會被替換的內容 }}</h1> </div> <div id="currentTime"> <p>{{ date }}</p> <p>{{ date | formateDate }}</p> <!-- 過濾器還可以串聯如 | fliter1 | filter2--> <!-- 過濾器可以添加參數如 filter(‘arg1‘,‘arg2‘),將被傳遞給第二個和第三個參數 --> </div> <div id="simpleCalc"> {{ (num/10) + 9 }} {{ isOk ? ‘sure‘ : ‘nope‘ }} {{ text.split(‘,‘).reverse().join(‘,‘) }} </div> </body> <!-- <script src="https://vuejs.org/js/vue.js"></script> --> <script> var initData = { a:1 } var app = new Vue({//創建一個vue的根實例,並啟動vue應用 el:#box1,//el用於指定一個頁面中已經存在的dom元素掛載這個vue實例,既可以是html元素,也可以是css選擇器(getElementById) data:{ name:‘‘, a:initData,//可以顯式聲明數據,也可以指向一個已有的變量,且這二者之間默認建立了雙向綁定 link:"<a href = ‘#‘>鏈接</a>" }, created:function(){ console.log(this.a);//不能寫app.a!會報錯 }, mounted() { console.log(this.$el); }, }) console.log(app.$el,app.name);//通過這個指針來訪問該元素 //生命周期,每個vue實例創建時都會經歷一系列初始化過程,同時也會調用相應的生命周期鉤子 //created:在實例創建完成後使用,已經完成了數據的觀測,但尚未掛載至元素($el不可用) //mounted:el掛載完成後調用,一般第一個業務邏輯從這裏開始 //beforeDestory:在實例銷毀之前調用,一般用於解綁使用事件監聽器監聽的事件(回收內存?) //一個實時顯示當前時間的vue實例 //進行格式化處理 var formate = function(value){ return value < 10 ? 0 + value : value; }; var showCurrentTime = new Vue({ el:"#currentTime", data:{ date:new Date()//顯示當前時間 }, filters:{//過濾器的使用 formateDate:function(value){ var date = new Date(value), year = date.getFullYear(), month = formate(date.getMonth() + 1), day = formate(date.getDay()), hours = formate(date.getHours()), minutes = formate(date.getMinutes()), seconds = formate(date.getSeconds()); return year + "-" + month + "-" + day + + hours + ":" + minutes + ":" + seconds; } }, mounted() { var _this = this;//聲明一個變量指向vue實例,保證作用域一致,(不是很懂) this.timer = setInterval(function(){ _this.date = new Date();//每隔一秒更新一次date },1000) }, beforeDestroy() { if(this.timer){//在實例銷毀前清除定時器(釋放內存?) clearInterval(this.timer); } }, }); var simpleCalc = new Vue({ el:"#simpleCalc", data:{ num:500, isOk:true, text:1,2,3,4,5,6 } }); </script> </html>

要十分註意的:

過濾器、生命周期與鉤子、聲明數據與訪問數據

Vue初接觸 stage1