前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >vue2.0教程

vue2.0教程

作者头像
lilugirl
发布2019-05-28 11:20:45
8370
发布2019-05-28 11:20:45
举报
文章被收录于专栏:前端导学

第一步永远是下载 vue.js

或者使用CDN <script src="https://unpkg.com/vue/dist/vue.js"></script>

第一节 简单的数据绑定

  • vue的初始化
  • el 和 data的用法
  • v-for的用法
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="vue.js"></script>
</head>
<body>
  <div id="app">
    todo list

  <ul>
    <li v-for="todo in todos">{{todo.title}}</li>
  </ul>
  </div>

  <script>
     new Vue({
       el:'#app',
       data:{
         message:'hello world',
         todos:[
           {id:1,title:'my to do lsit'},
           {id:2,title:'my to do lsit2'}
         ]
       }
     });
  </script>
</body>
</html>

第二节 含form表单的双向绑定

  • v-bind的用法
  • v-model的用法
  • v-on的用法
  • methods的用法
  • computed的用法
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="vue.js"></script>
  <style>
  .completed{
    color:green;
    text-decoration:line-through;

  }
  .btn-danger{
    background:yellow;
  }
  .btn-success{
    background:green;
  }
  </style>
</head>
<body>
  <div id="app">
    <h1>my todo list {{todoCount}}</h1>

  <ul>
    <li v-for="(todo,index) in todos" v-bind:class="{'completed':todo.completed}">{{todo.title}} <button v-on:click="toggleCompletion(todo)" v-bind:class="[todo.completed? 'btn-danger':'btn-success']">{{todo.completed? 'undo':'complete'}}</button>  <button v-on:click="deleteTodo(index)">delete</button></li>
  </ul>
  <form v-on:submit.prevent="addTodo(newTodo)">
    <input type="text" v-model="newTodo.title">
    <button type="submit">add</button>
  </form>
  </div>

  <script>
     new Vue({
       el:'#app',
       data:{
         message:'hello world',
         todos:[
           {id:1,title:'my to do lsit',completed:false},
           {id:2,title:'my to do lsit2',completed:true}
         ],
         newTodo:{id:null,title:''}
       },
       computed:{
         todoCount(){
           return this.todos.length;
         }
       },
       methods:{
         addTodo(newTodo2){
           this.todos.push(newTodo2);
           this.newTodo={id:null,title:'',completed:false}
         },
         deleteTodo(index){
           this.todos.splice(index,1);
         },
         toggleCompletion(todo2){
           todo2.completed=!todo2.completed;
         }
       }
     });
  </script>
</body>
</html>

第三节 组件的使用

  • Vue.component的定义和使用
代码语言:javascript
复制
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <script src="vue.js"></script>
  <style>
  .completed{
    color:green;
    text-decoration:line-through;

  }
  .btn-danger{
    background:yellow;
  }
  .btn-success{
    background:green;
  }
  </style>
</head>
<body>
  <div id="app">
    <h1>my todo list {{todoCount}}</h1>

   <todo-items :todos="todos"></todo-items>
   <todo-form :todos="todos"></todo-form>

  </div>
 <script type="text/x-template" id="todo-items-template">
   <ul>
     <li v-for="(todo,index) in todos" v-bind:class="{'completed':todo.completed}">{{todo.title}} <button v-on:click="toggleCompletion(todo)" v-bind:class="[todo.completed? 'btn-danger':'btn-success']">{{todo.completed? 'undo':'complete'}}</button>  <button v-on:click="deleteTodo(index)">delete</button></li>
   </ul>
 </script>

 <script type="text/x-template" id="todo-form-template">

   <form v-on:submit.prevent="addTodo(newTodo)">
     <input type="text" v-model="newTodo.title">
     <button type="submit">add</button>
   </form>

 </script>

  <script>
     Vue.component('todo-items',{
       template:'#todo-items-template',
       props:['todos'],
       methods:{

         deleteTodo(index){
           this.todos.splice(index,1);
         },
         toggleCompletion(todo2){
           todo2.completed=!todo2.completed;
         }
       }
     });

     Vue.component('todo-form',{
       template:'#todo-form-template',
       props:['todos'],
       data(){
         return {
            newTodo:{id:null,title:''}
         }
       },
       methods:{
         addTodo(newTodo){
           this.todos.push(newTodo);
           this.newTodo={id:null,title:'',completed:false}
         }

       }

     });

     new Vue({
       el:'#app',
       data:{
         message:'hello world',
         todos:[
           {id:1,title:'my to do lsit',completed:false},
           {id:2,title:'my to do lsit2',completed:true}
         ],

       },
       computed:{
         todoCount(){
           return this.todos.length;
         }
       }

     });
  </script>
</body>
</html>

第四节 使用 Vue 脚手架工具进行组件化开发

下载安装

github地址 https://github.com/vuejs/vue-cli

根据提示 执行命令行

代码语言:javascript
复制
npm install -g vue-cli

然后在适当的目录下执行

代码语言:javascript
复制
vue init webpack vuejs-2.0-cli

如果你发现命令过程中遇到了错误,一时半会儿解决不了,那么就放弃命令下载吧

直接 下载文件包呗

将下载的文件解压缩移动到你合适的目录下

进入该项目目录 执行命令

代码语言:javascript
复制
npm install
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一步永远是下载 vue.js
  • 第一节 简单的数据绑定
  • 第二节 含form表单的双向绑定
  • 第四节 使用 Vue 脚手架工具进行组件化开发
    • 下载安装
    相关产品与服务
    内容分发网络 CDN
    内容分发网络(Content Delivery Network,CDN)通过将站点内容发布至遍布全球的海量加速节点,使其用户可就近获取所需内容,避免因网络拥堵、跨运营商、跨地域、跨境等因素带来的网络不稳定、访问延迟高等问题,有效提升下载速度、降低响应时间,提供流畅的用户体验。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档