WEB——05.Vue

WEB——05.Vue

MVC设计模式:

  • 实际上就是把前端实现一个业务功能的代码划分为3部分

  • Model:模型,指数据模型 对应的是获取到数据的部分代码。

  • View:视图, 指页面部分代码。

  • Controller:控制器, 是把数据模型的内容展示到页面中的过程。

  • 前端MVC设计模式的弊端:需要在Controller部分 频繁进行DOM操作(遍历查找元素过程)会影响效率,从而影响用户的体验度。

M,V,VM设计模式

  • Model:模型,指数据模型 对应的是获取到数据的部分代码。
  • View:视图, 指页面部分代码。
  • VM:视图模型, 将页面中可能发生改变的元素在内存中和某一个变量进行绑定,当变量的值发生改变时,会自动从内存中找到和变量对应的元素进行修改,不需要像MVC设计模式中每次进行遍历查找,从而提高了效率,提高了用户体验度。

VUE框架

  • VUE框架是基于MVVM设计模式的前端框架。
  • 工作原理: Vue框架中的Vue对象是MVVM设计模式中的VM视图模型, 此对象负责将页面中改变的元素和data里面的变量进行绑定, 初始化时,变量的值是什么页面就显示成什么, 并且Vue对象会一直监听着data里面变量值得改变, 当值发生改变时,会自动找到与其绑定的元素并且让元素跟着发生改变,改变元素的过程是不需要程序员参与的, 从而提高了开发效率, 由于这个过程不需要频繁的进行DOM操作(遍历查找元素) 从而提高了执行效率.

引入前端三方框架的两种方式:

1.把框架文件下载到本地,复制到自己的工程中进行引入。

2.从CDN服务器直接引入到自己工程。

Vue常用命令

  • {{}}:插值,让此处的文本内容和变量进行绑定,不需要依赖某个标签存在
  • v-text=“变量”:让元素的文本内容和变量进行绑定,需要依赖标签
  • v-html=“变量”:让元素的标签内容和变量进行绑定
//初始Vue
body>
<div id = "app">
<h1>{{info}}</h1>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
  <script>
   let v = new Vue({
      el:"#app",
      data:{info:"Hello Vue"}
    })
    setTimeout(function () {
      v.info = "值被修改了!"
    },2000);
  </script>

</body>
<div>
<!--{{变量}}:插值,让此处显示的文本和变量进行绑定-->
  {{info}}<b>{{info}}</b>
<!--  v-text 让元素的文本内容和变量进行绑定,必须依赖某个标签-->
  <p v-text="info"></p>
<!--  v-html让元素的标签内容和变量进行绑定-->
  <p v-html="info"></p>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  new Vue({
    el:"div",
    data:{
      info:"文本测试<b>加粗标签</b>"
    }
  })
  • v-bind:属性名=“变量”:让元素的某个属性的值和变量进行绑定,简写把v-bind去掉
属性绑定
<div>
<!--  :属性名=变量 让元素的属性和变量进行绑定-->
  <input type="text" v-bind:value="info">
  <input type="text" :value="info">
  <a :href="url">超链接</a>
  <img :src="imageName" alt="">

</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  new Vue({
    el:"div",
    data:{
      info:"属性绑定",
      url:"http://www.baidu.com",
      imageName:"../b.jpg"
    }
  })
</script>
  • v-model=“变量”:让控件的value属性和某个变量进行双向绑定,双向绑定:变量会影响页面显示的内容,页面元素的内容改变也会影响变量,当需要从代码获取控件的值使用双向绑定。
双向绑定
div>
    <!--v-model="变量"让控件的value值和变量进行双向绑定,变量影响页面 同时页面的改动也会影响变量-->
    <input type="text" v-model="info">
    {{info}}
    <h1>注册表单</h1>
    <form action="">
        用户名:<input type="text" v-model="user.username"><br>
        密码:<input type="password" v-model="user.password"><br>
    </form>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
    let v = new Vue({
        el: "div",
        data: {
            info: "双向绑定",
            user:{
                username:"",
                password:""
            }
        }
    })
</script>
</body>
  • v-on:事件名=“方法”,绑定元素的事件,方法需要声明在Vue对象里面的methods属性里面,简写是

    @事件名=“方法”

    • @click点击事件
    • @change 值改变事件
    • @blur失去焦点事件

idea中安装Vue插件

  • File->Settings->Plugins 搜索Vue 如图所示 , 安装完之后重启idea

idea中添加自定义模板代码

  • File->Editor->Live Templates
<body>
<div>
  <input type="button" value="按钮" @click="f()">
  <input type="button" value="按钮" v-on:click="f()">
  <input type="text" @blur="b()">
  <select name="" @change="c()" v-model="city">
    <option >上海</option>
    <option >北京</option>
    <option>天津</option>
  </select>
</div>

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>

 let v = new Vue({
    el:"div",
    data:{
      city:""
    },
    methods:{
      f:function () {
        console.log("按钮点击了!");
      },
      b(){
        console.log("编辑完成!")
      },
      c(){
        console.log("值改变了!"+v.city)
      }
    }
  })
</script>
</body>
猜数字Vue
<div>
  <input type="text" placeholder="请输入1-100之间的整数" v-model="num">
  <input type="button" value="猜一猜" @click="f()">
  <h1>{{info}}</h1>
</div>

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  let x = parseInt(Math.random()*100)+1;
 let v = new Vue({
    el:"div",
    data:{
      num:"",
      info:""
    },
    methods: {
      f(){
        if (v.num>x){
          v.info ="猜大了!"
        }else if(v.num<x){
          v.info = "猜小了!"
        }else {
          v.info = "恭喜你,猜对了!"
        }
      }
    }
  })
</script>
</body>
计算器Vue
<body>
<div>
  <input type="text" v-model="n1">
  <input type="text" v-model="n2">
  <input type="button" value="加" @click="f('+')">
  <input type="button" value="减" @click="f('-')">
  <input type="button" value="乘" @click="f('*')">
  <input type="button" value="除" @click="f('/')">
  <h1>{{result}}</h1>
</div>
<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  let v = new Vue({
    el:"div",
    data:{
      n1:"",
      n2:"",
      result:""
    },
    methods:{
      f(x){
        v.result = eval(v.n1+x+v.n2)
      }
    }
  })
</script>
</body>
  • v-for=“(变量,i) in 数组变量”;让元素的显示数量和数组进行绑定,同时遍历数组中的每一个对象,变量代表的是数组中的每一个对象,i代表的是当前遍历的下标。
  • v-if=“变量”,元素的显示状态和变量进行绑定,true显示,false不显示(删除元素)
  • v-else和v-if指令结合使用,显示状态和v-if的元素取反
  • v-show=“变量”,元素的显示状态和变量进行绑定,true显示,false不显示(通过样式隐藏了元素),需要元素频繁切换显示状态使用v-show的执行效率会高于v-if
循环遍历员工列表
<body>
<div>
  <h1>汽车列表</h1>
  <table border="1">
    <tr>
      <th>编号</th>
      <th>品牌名称</th>
      <th>售价</th>
      <th>类型</th>
    </tr>
    <tr v-for="(car,i) in arr">
      <td>{{i+1}}</td>
      <td>{{car.name}}</td>
      <td>{{car.price}}</td>
      <td>{{car.type}}</td>
    </tr>
  </table>
</div>

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
  new Vue({
    el:"div",
    data:{
      arr:[{name:"比亚迪",price:500000,type:"轿车"},
        {name:"大众",price:400000,type:"轿车"},
        {name:"北京现代",price:500000,type:"轿车"},]
    }
  })

</script>
</body>
显示隐藏元素
<body>
<div>
  <h1 v-if="visible">刘德华</h1>
  <h1 v-else>张学友</h1>
  <h2 v-show="visible">刘德华</h2>
</div>

<script src="https://lf3-cdn-tos.bytecdntp.com/cdn/expire-1-M/vue/2.6.14/vue.min.js"></script>
<script>
 let v = new Vue({
    el:"div",
   data:{
      visible:true
   }
  })
</script>

idea中安装Vue插件

  • File->Settings->Plugins 搜索Vue 如图所示 , 安装完之后重启idea

idea中添加自定义模板代码

  • File->Editor->Live Templates

idea中安装element插件

  • 得到element.jar 文件
  • File->Settings->Plugins 如下图 操作 找到element.jar文件 最后重启idea即可
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值