كيفاش نصاوب Note App ب Vuejs
نظرة سريعة بالفيديو
1- الملف script.js
new Vue({
el: "#app",
data: {
notes: [],
note: ''
},
methods: {
addNote: function() {
this.notes.push({ note: this.note });
this.note = '';
},
removeNote: function(index) {
this.notes.splice(index, 1);
}
}
});
2- الملف index.html
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">
<link rel="stylesheet" href="style.css">
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css">
</head>
<body>
<nav class="navbar navbar-default">
<div class="container-fluid">
<!-- Brand and toggle get grouped for better mobile display -->
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1" aria-expanded="false">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Vuejs-Note</a>
</div>
<!-- Collect the nav links, forms, and other content for toggling -->
<div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Accueil <span class="sr-only"></span></a></li>
</ul>
</div>
<!-- /.navbar-collapse -->
</div>
<!-- /.container-fluid -->
</nav>
<div class="container">
<div class="row" id="app">
<div class="col-md-6 col-md-offset-3">
<div class="panel panel-default">
<div class="row">
<div class="col-md-6 col-md-offset-3">
<h3 class="text-info text-center">Notebook</h3>
<form class="form" style="padding:10px;" v-on:submit.prevent>
<div class="form-group">
<div class="row">
<div class="col-md-10">
<input type="text" placeholder="Entrer votre note" v-model="note" class="form-control">
</div>
<div class="col-md-2">
<button class="btn btn-success btn-md" v-on:click="addNote">+</button>
</div>
</div>
</div>
</form>
<div class="row">
<div class="col-md-12">
<div v-if="notes.length">
<transition-group name="list" tag="ul">
<li v-for="(nt,index) in notes" class="list-group-item" v-bind:key="nt">{{nt.note}}<button class="btn btn-danger btn-xs pull-right" v-on:click="removeNote(index)"><span class="fa fa-trash"></span></button></li>
</transition-group>
</div>
<div v-else>
<p class="text-info">Aucun note trouvée.</p>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<script src="https://unpkg.com/vue"></script>
<script src="script.js"></script>
</body>
</html>
3- الملف style.css
فيه غادي يكونوا les styles ديالنا لي غادي نضيفوا بهم تغييرات على design ديال la page ديالنا الكود ديال الملف هو:
body {
font-family: Verdana, Geneva, Tahoma, sans-serif;
}
.panel {
background: beige;
}
#result {
height: 40px;
width: 150px;
background: #8D8D81;
color: #ffffff;
padding: 10px;
border-radius: 2px;
}
.btn {
padding-left: 10px;
padding-right: 10px;
}
.list-enter-active,
.list-leave-active {
transition: all 1s;
}
.list-enter,
.list-leave-to
/* .list-leave-active below version 2.1.8 */
{
opacity: 0;
transform: translateY(30px);
}