Vue初接觸 stage1
阿新 • • 發佈:2019-04-27
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