zoukankan      html  css  js  c++  java
  • VUE框架简单基础

    一个构建用户界面的框架

    通过指令,来给DOM元素赋值或者其他操作。

    1. 简单的指令及其作用:

    在HTML标签中显示数据:
      --> {{}}
      --> v-text
      --> v-html
      这三条指令都是给HTML具体标签填充内容,可以是文本,也可以是其他标签
      -------------------
      --> v-if
      --> v-else
      这两条命令配合使用,如果变量为true,则插入if所在的标签,否则就插入else所在的标签。
      -------------------
      --> v-show
      如果变量为true则显示v-show所在的标签,否则隐藏v-show所在的标签,即添加属性display: none;
      注意和v-if的区别:一个是插入/删除标签的操作,一个是显示/隐藏标签的操作(标签一直都存在)
      -------------------
      --> v-for 循环数组或者对象{}
      --> v-bind 绑定标签的属性,随时修改
      --> v-on 为标签绑定事件
      例子:
      <head>
        <script src="vue.js"></script>
      </head>
      <body>
        <div id="app">
          <p>{{v1}}</p>
          <p v-text="v1"></p>
          <p v-html="v2"></p>
          <p v-if="v3">哈哈哈</p>
          <p v-else="v3">呜呜呜</p>
          <p v-show="v3">嘻嘻嘻</p>
          
    <a v-bind:href="url">{{url}}</a>
          <input type="button" v-on:click="showtest"/>
        </div>
        
        <div id="fTest">
        <ul>
         <li v-for="item in d1">
        {{item}}
         </li>
        </ul>

        <ul>
         <li v-for="(item,index) in d1">
         {{index}},{{item}}
         </li>
         </ul>

         <ul>
         <li v-for="(val,key) in d2">
         {{key}},{{val}}
         </li>
         </ul>
        </div>

        
        <script>
          var vm = new Vue({
            el:"#app",
            data:{
              v1:"哈喽",
              v2:"<a>hello</a>",
              v3:true,
              url:"http://www.baidu.com"
            },
            methods:{
               showtest: function(){
                  alert(123)
               }
            }
          })

          var f = new Vue({
           el:"#fTest",
           data:{
           d1:[11,22,33,44],
           d2:{'name':'egon','age':23,'weight':45,'height':180}
           }
          })

        <script>
      </body>

     2. v-model的使用:

    数据的双向绑定:应用于input标签
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    </head>
    <body>
    <div id="app">
    用户名:<input type="text" v-model="username">
    密码:<input type="password" v-model="password">
    <input type="button" value="登录" @click="login">
    </div>

    <script>

    var vm = new Vue({
    el:"#app",
    data:{
    username:'',
    password:''
    },
    methods:{
    login:function () {
    console.log(this.username+" "+this.password) #可以直接取到input标签中输入的值,而不必去找到标签,然后再取值
    }
    }
    })

    </script>
    </body>
    </html>
     
    应用在select标签:
    <div id="app1">
    <select name="city" v-model="v1">
    <option value="1">衡水</option>
    <option value="2">石家庄</option>
    <option value="3">保定</option>
    <option value="4">唐山</option>
    </select>
    <input type="button" value="提交" @click="sel">
    </div>

    <script>
    var c = new Vue({
    el:"#app1",
    data:{
    v1:'1' #默认选中衡水
    },
    methods:{
    sel:function () {
    console.log(this.v1)
    }
    }
    })
    </script>
     

    3. axios(异步请求)的应用

    类似于ajax
    主要有两种请求方式:get和post
    1.get请求:有两个参数
            --->1 请求的url
            --->2 请求需要加在url后面的参数params
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <script src="axios.js"></script>
    </head>
    <body>
    <div id="app">
    <input type="button" value="加载数据" @click="load">

    <p v-text="v1"></p>
    </div>

    <script>

    var vm = new Vue({
    el:"#app",
    data:{
    v1:''
    },
    methods:{
    load:function () {
    url='index/load/'; #去哪请求数据
    var self = this; #这个this指的是vm
    axios.get(url,{
    params:{
    'name':'egon',
    'age':13
    }
    }).then(function (response) {
                   console.log(this) #这里的this是Windows object,不能取到data中的值
    self.v1 = response; #把返回的数据赋值给vm中的变量v1
    console.log(response)
    }).catch(function (err) {
    console.log(err)
    })
    }
    }
    })

    </script>
    </body>
    </html>
     
    2.post请求
    有三个参数:
      -->1 url,往哪发送数据
      -->2 {},要发送的数据,最外层是字典,数据以键值对存在
      -->3 {},携带请求头
    <!DOCTYPE html>
    <html lang="en">
    <head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="vue.js"></script>
    <script src="axios.js"></script>
    </head>
    <body>
    <div id="app">
    用户名:<input type="text" v-model="username">
    密码:<input type="password" v-model="pwd">
    <input type="button" value="提交" @click="login">
    </div>

    <script>

    var vm = new Vue({
    el:"#app",
    data:{
    username:'',
    pwd:''
    },
    methods:{
    login:function () {
    url='hotcity.json';
    axios.post(url,
    {
    username:this.username,
    pwd:this.pwd
    },{
    'headers':{'Content-Type':'application/x-www-form-urlencode'}
    }).then(function (response){
    console.log(response)
    }).catch(function (err){

    })
    }
    }
    });

    </script>
    </body>
    </html>
     

     二、通过脚手架创建VUE工程:

      --> 安装脚手架

        npm install vue-cli -g

      -->创建基于webpack模板的项目

        vue init webpack myProject

      -->进入项目并安装依赖

        cd myProhect

        npm install

      -->启动项目

        npm run dev

  • 相关阅读:
    ajax请求先发后至问题处理
    Jquery 使用val时触发change事件
    let与var的几个主要区别
    正则表达式s字符匹配
    Ext.DateField设置Format无法提交数据
    swift基本示例
    div 中文会换行 英文不换行
    js 动画提示数据有变化
    为什么要写博客
    突然发现一个开源项目TXQR和我之前申请的一个专利挺像的
  • 原文地址:https://www.cnblogs.com/guomeina/p/7844608.html
Copyright © 2011-2022 走看看