zoukankan      html  css  js  c++  java
  • DAY 73 vue01

    1 Vue,js框架,渐进式框架(局部,全部用)(混合开发可以用,前后端分页也可以用(用的最多))
    2 mvvm架构:model,viewmodel,view
    3 单页面开发(全部用vue开发,就一个index.html页面),其他都是组件间的替换
    4 组件化开发:页面组件,普通组件
    5 编译---》1个index.html,css,js,图片
    6 插值语法
    -{{ 变量,js语法,三目运算符}}
    7 文本指令
    -v-html
       -v-text
       -v-show
       -v-if
    8 事件指令
    -v-on:click='函数'
       -@click='函数'

     

    1 属性指令

    v-bind:src/href/name/='变量'
    缩写成
    :src='变量'

     

    2 style和class的使用


    #js数组操作,增加值,修改值,删除值,vue的页面都会变
    可以检测到变动的数组页面也跟着编号的操作:

    push:最后位置添加 pop:最后位置删除 shift:第一个位置删除 unshift:第一个位置添加 splice:切片 sort:排序 reverse:反转

    检测不到变动的数组页面不变化的操作:

    filter():过滤 concat():追加另一个数组 slice(): map():

    原因:

    作者重写了相关方法(只重写了一部分方法,但是还有另一部分没有重写)

    3 条件渲染

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
       <script src="./js/vue.js"></script>
       <style>

       </style>
    </head>
    <body>

    <div id="app">

       <div v-if="a=='A'">A</div>
       <div v-else-if="a=='B'">B</div>
       <div v-else>其他</div>


    </div>


    </body>

    <script>


       var vm = new Vue({
           el: '#app',
           data: {
               a:'A'
          },
           methods: {
               handle() {
                   this.style_obj.fontSize = '90px'
              }
          }

      })
    </script>

    </html>

     

    4 列表渲染(购物车)

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
       <script src="./js/vue.js"></script>
       <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
       <style>

       </style>
    </head>
    <body>

    <div id="app">
    <button @click="handld">点我加载数据</button>
       <hr>
       <table class="table" v-if="!goods.length==0">
           <thead>
           <tr>
               <th>商品名字</th>
               <th>价格</th>
               <th>数量</th>
           </tr>
           </thead>
           <tbody>
           <tr v-for="good in goods">
               <td>{{good.name}}</td>
               <td>{{good.price}}</td>
               <td>{{good.count}}</td>
           </tr>
           </tbody>
       </table>
       <div v-else>
          什么东西都没有
       </div>

    </div>


    </body>

    <script>


       var vm = new Vue({
           el: '#app',
           data: {
               goods:[]
          },
           methods:{
               handld(){
                   //去后台加载数据
                   this.goods=[{name:'特斯拉',price:10000,count:1},{name:'包子',price:3,count:10},{name:'花卷',price:5,count:12}]
              }
          }


      })
    </script>

    </html>

     

    5 v-for

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
       <script src="./js/vue.js"></script>
       <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
       <style>

       </style>
    </head>
    <body>

    <div id="app">
       <ul>
           <!--   <li v-for="l in list">{{l}}</li>-->
           <li v-for="(value,index) in list">第{{index}}个人------名字是:{{value}}</li>


       </ul>

       <hr>


       <h1>循环对象</h1>
       <div>
           <span v-for="o in obj"><p>{{o}}</p></span>
       </div>

          <div>
           <span v-for="(value,key) in obj"><p>key值是:{{key}},value值是{{value}}</p></span>
       </div>


    </div>


    </body>

    <script>


       var vm = new Vue({
           el: '#app',
           data: {
               //数组
               list: ['张三', '李四', '王五'],
               //对象
               obj: {name: 'lqz', age: '19', sex: '男'}
          }


      })
    </script>

    </html>

     

    6 事件处理

    事件处理

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
       <script src="./js/vue.js"></script>
       <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
       <style>

       </style>
    </head>
    <body>
    <div class="container-fluid">
       <div class="row">
           <div class="col-lg-6 col-md-offset-3">

               <div id="app">
                   <!--               <input type="text" v-model="name" placeholder="光标移开触发-blur" v-on:blur="handle_blur">-->
                   <!--               <input type="text" v-model="name" placeholder="请输入要搜索的内容-change" v-on:change="handle_change">-->
    <!--               <input type="text" v-model="name" placeholder="请输入要搜索的内容-input" v-on:input="handle_input">-->
                   <input type="text" v-model="name" placeholder="请输入要搜索的内容-input" @input="handle_input">
                   <ul>
                       <li v-for="l in list">{{l}}</li>
                   </ul>

               </div>

           </div>

       </div>


    </div>


    </body>

    <script>


       var vm = new Vue({
           el: '#app',
           data: {
               name: '',
               list_old: ['a', 'atm', 'atmtw', 'atmtwxx', 'b', 'body', 'bodyxx', 'tm', 'm'],
               list: ['a', 'atm', 'atmtw', 'atmtwxx', 'b', 'body', 'bodyxx', 'tm', 'm']
          },
           methods: {
               handle_input() {
                   //只要输入框文字发生变化,就会触发它
                   //根据输入的值,过滤list
                   // let _this=this
                   // this.list.filter(function (item) {
                   //     console.log(_this.list_old)
                   //
                   // })


                   this.list = this.list_old.filter(item => {
                       if (item.indexOf(this.name) > -1) {
                           return true
                      } else {
                           return false
                      }

                  })

              },
               handle_change() {
                   console.log('change')
                   console.log(this.name)
              },
               handle_blur() {
                   console.log('blur')
                   console.log(this.name)
              },
          }


      })

       // let list = ['a', 'atm', 'atmtw', 'atmtwxx', 'b', 'body', 'bodyxx', 'tm', 'm']

       // let list_new=list.filter(function (item) {
       //     if(item.length>=3){
       //         return true
       //     }else{
       //         return false
       //     }
       //
       // })
       //箭头函数---es6的语法
       // let list_new = list.filter(item => {
       //     if (item.length >= 3) {
       //         return true
       //     } else {
       //         return false
       //     }
       // })
       // console.log(list_new)
       //
       //
       // var a = (data, a) => {
       //
       // }
       // var b = function (data, a) {
       //
       //
       // }


       let a='efy'
       let str_a='abcdefg'
       console.log(str_a.indexOf(a))

    </script>

    </html>

     

    阻止事件冒泡

    <!DOCTYPE html>
    <html lang="en">
    <head>
       <meta charset="UTF-8">
       <title>Title</title>
       <script src="./js/vue.js"></script>
       <link href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
       <style>

       </style>
    </head>
    <body>
    <div class="container-fluid">
       <div class="row">
           <div class="col-lg-6 col-md-offset-3">

               <div id="app">
                   <div v-on:click="div_click">
                       <button @click.stop="button_click">点我看美女</button>
                   </div>

                   <hr>
                   <div v-on:click.self="div_click">
                       <button @click="button_click">点我看美女2</button>
                       <span>dadfafdasdfadsf</span>

                   </div>


                   <hr>
                   <a href="http://www.baidu.com" @click.prevent="handle_a">点我看没办</a>

                   <hr>
                   <button @click.once="handle_one">我只能点一次</button>
               </div>

           </div>

       </div>


    </div>


    </body>

    <script>


       var vm = new Vue({
           el: '#app',
           data: {},
           methods: {
               div_click() {
                   alert('div被点击了')
              },
               button_click() {
                   alert('button被点击了')
              },
               handle_a(){
                   alert('a链接跳转阻挡了')
                   location.href='http://www.baidu.com'
              },
               handle_one(){
                   alert('我只会谈一次')
              }
          }


      })

    </script>

    </html>

     

  • 相关阅读:
    java基础知识
    谈谈休眠/睡眠/关机和laptop硬件寿命
    常用的git指令查询
    java swing scroll can not work
    不必要的windows服务
    工作分配问题
    回溯算法
    第四章上机实践
    算法第四章作业
    第三章上机实践
  • 原文地址:https://www.cnblogs.com/DEJAVU888/p/14893819.html
Copyright © 2011-2022 走看看