• Vue基础语法,双向绑定


    前言:几种常见的UI框架

       Ant——Design:阿里巴巴,基于React的UI框架

       ElementUI,iview,ice:腾讯,  基于Vue的UI框架

       BootStrap:Twitter,

       AmazeUI:简单,常用

     Node.js框架及其项目管理工具:

      Express:Node JS 框架

      Koa:Express简化版

      NPM:项目综合管理工具,类似Maven

      YARN:NPM的代替方案,类似Maven和Gradle的关系

    目前:前端为主的MV*时代

      mvc( 同步通信为主):Model,View,Controller

      mvp(异步通信为主):Model,view,Presenter

      mvvm(异步通信为主):Model,View,ViewModel

    前后端分离:主要的思想就是关注度分离原则

    正题VUE

    1.是mvvm模式的实现者

      常见开发工具:VsCode

             Hubilder

             Sublime

             WebStrom    

    也可以用IDEA去做:下插件vue.js

    CDN

    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>

    扩展:vm理解

      1.首先,MVC时代,M(Model)指的是后端处理数据那一层(dao,serviice),V(View)视图,如,html,css等,C(Contrroller),前端与后端的联系都是通过它来实现,去处理前端的映射请求,到相应的 Comtroller,在Controller内含有开发者设定好的Model和数据的处理方法,执行完成后,再去转发或重定向,

      2.MVVM时代,其中vm,可以理解为前端和后端的中间件,后端仅需提供json,json传到vm层通过处理能够实时的将数据传到前端视图,前端视图再也不用考虑数据的传输和加载,仅需在使用后端数据处加{{message}}就可以,而且VM是双向绑定前后端的。 

      是MVVM的实现者核心是DOM监听(实时的监听后端数据更新),和双向绑定 
     

      

    Vue常用的7个属性

      el属性:

        用来指示从什么地方开始解析vue的语法,可以说是一个占位符

      data属性:

        用来组织从view中抽象出来的数据,可以输将视图层的数据抽象出来存放在data中

      template属性:

        用来设置模板,会替换页面属性,包括占位符

      method:

        防止页面中的业务逻辑,js方法一般都放置在method中

      render:

    一,基础语法

      1.1,v-if,v-else,v-else-if 

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    
    </head>
    <body>
    
    <!--view层,模板-->
    <div id="app">
        <h1>{{message}}</h1>
        <h1 v-if="ok">yes</h1>
        <h1 v-else>no</h1>
        <h1 v-if="type==='A'">A</h1>
        <h1 v-else-if="type==='B'">B</h1>
        <h1 v-else-if="type==='D'">d</h1>
    </div>
    
    
    
    <!--1.导入Vue.js-->
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
    <!--创建vue对象,是vue框架创建的对象-->
    <script>
        var vm = new Vue({
            <!--属性,通过id选择,#字符锁定作用-->
            el:"#app",
            <!--model,数据-->
            <!--对象,键值对-->
            data:{
                ok : true,
                type:'A'
            }
        });
    </script>
    
    </body>
    </html>

      

      1.2,v-for,遍历数组

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <!--绑定元素-->
    <div id="app">
    
        <li v-for="item in items">
            {{item.message
            }}
        </li>
    
    </div>
    
    
    
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js" ></script>
    
    <script>
        var vm = new Vue({
            el:"#app",
            data:{
                items:[
                    {message:'king'},
                    {message:'king2'}
                ]
            }
        })
    </script>
    
    </body>
    </html>

      1.3绑定事件(方法)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <div id="app">
        <!--绑定事件-->
        <button v-on:click="sayHi">Click On</button>
    </div>
    
    
    <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script>
    
    <script>
    
        var vm = new Vue({
            el:'#app',
            data:{
                message:"king"
            },
            //方法
            methods:{//方法必须定义在vue的methods对象中,v-on:去绑定事件
                sayHi:function (event){
                    alert(this.message)
                }
            }
        })
    
    </script>
    
    </body>
    </html>

    二,双向绑定  

      Vue.js是一个MVVM框架,就是数据的双向绑定:当数据发生变化时视图也会发生变化,视图发生变化时数据也会发生变化

     小demo

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>Title</title>
    </head>
    <body>
    
    <div id="app">
        <!--实现了双向绑定 -->
        <!--v-model是同步输入框的value-->

    请输入文本:<input textarea v-model="message"/>{{message}} 请输入文本(文本框):<textarea id="" name="" cols="30" rows="20" v-model="message"></textarea> {{message}} </div> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.21/dist/vue.min.js"></script> <script> var vm = new Vue({ el:"#app", data:{ message:"123" } }) </script> </body> </html>

     

  • 相关阅读:
    Vue.js 样式绑定
    Vue.js 监听属性
    【BZOJ2438】[中山市选2011]杀人游戏 Tarjan
    【BZOJ2150】部落战争 最小流
    【BZOJ4247】挂饰 背包
    【BZOJ2794】[Poi2012]Cloakroom 离线+背包
    【BZOJ1731】[Usaco2005 dec]Layout 排队布局 差分约束
    【BZOJ1058】[ZJOI2007]报表统计 STL
    【BZOJ1449/2895】[JSOI2009]球队收益/球队预算 最小费用最大流
    【BZOJ1280】Emmy卖猪pigs 最大流
  • 原文地址:https://www.cnblogs.com/CL-King/p/14005010.html
Copyright © 2020-2023  润新知