美文网首页
Vue2.0基础

Vue2.0基础

作者: 伽蓝star | 来源:发表于2019-02-27 23:26 被阅读0次

MVC和MVVM 的区别

MVC

  • 整体框架的开发思想
  • M代表了数据层一般是后台的数据调用和sql语句交互
  • C一般是router和control 承载了路由分发和逻辑处理
  • V则是显示交互层 一般就是前端开发所考虑的

MVVM

  • 前端开发所拥有的思想,让开发者不在关心与频繁且琐碎的DOM操作,而是更加专注于逻辑实现
  • M数据 指单页面中vue实例里的data所包含的数据
    var vm = new Vue({
        el: "#app",
        data: {
            msg: ""
        },
    })
  • VM 数据的实际支配者 MVVM思想的核心,数据和页面实现双向绑定就是VM的功劳也就是Vue实例所起到的作用.
  • V显示层实际的效果层,数据的渲染展示必须要经过VM才可以

Vue的基本组成

  • 引入Vue的js
  • script 标签中 创建Vue实例
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
    <script src="./lib/vue-2.4.0.js"></script>
</head>
<body>
    <div id="app">
    </div>
</body>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            msg: ""
        },
    })
</script>
</html>

Vue的指令

v-cloak

处理页面闪烁问题,当页面插值还未获取到值时页面会显示出插值,v-cloak的解决原理就是在未获得值时在元素上增加display: none来隐藏元素.

v-text

  • 可以赋值data中的数据 此时会覆盖div包裹的字符
    <div v-text ="msg2" >--------</div>

v-html

  • 可以把字符串当做html 元素来进行解析
<div v-html ="msg2" ></div>
<!-- msg2:'<h1>我是h1</h1>', -->

v-bind

  1. 用来绑定属性 简写为(:被绑定的属性),
  2. v-bind中可以写合法的js 表达式
<input type="text" v-bind:value="msg"> //初始写法
<input type="text" :value="msg"> //简写
<input type="text" :value="msg+msg2"> //合法的表达式

v-on重要的指令

  1. 用来绑定各种事件例如click,hover最多的还是点击
  2. 简写为(@:事件类型="事件函数名")
<input type="button" value="按钮" v-on:click="click"> //原始写法
<input type="button" value="按钮" @:click="click"> //缩写

v-model重要的指令

  • 双向数据交互的基础 在表单元素中使用v-model指令可以快速的得到用户输入的数据并且通过VM更新到data中
<body>
    <div id="app">
        <p>{{modelData}}</p>
        <input type="text" v-model:value="modelData"> </div>
</body>
<script>
var vm=new Vue({
    el:"#app",
    data:{
        modelData:"v-model的数据"
    },
    methods:{},
})
</script>

v-for 重要的指令

  1. 可以循环迭代数字,数组,对象数组
<ul>
  <li v-for="(item, i) in list">索引:{{i}} --- 姓名:{{item.name}} --- 年龄:{{item.age}}</li>
</ul>
  1. 迭代对象属性
<!-- 循环遍历对象身上的属性 -->
<div v-for="(val, key, i) in userInfo">{{val}} --- {{key}} --- {{i}}</div>

2.2.0+ 的版本里,当在组件中使用 v-for 时,key 现在是必须的。
当 Vue.js 用 v-for 正在更新已渲染过的元素列表时,它默认用 “就地复用” 策略。如果数据项的顺序被改变,Vue将不是移动 DOM 元素来匹配数据项的顺序, 而是简单复用此处每个元素,并且确保它在特定索引下显示已被渲染过的每个元素。
为了给 Vue 一个提示,以便它能跟踪每个节点的身份,从而重用和重新排序现有元素,你需要为每项提供一个唯一 key 属性。

v-for key使用的注意点

  1. 注意: v-for 循环的时候,key 属性只能使用 number获取string
  2. 注意: key 在使用的时候,必须使用 v-bind 属性绑定的形式,指定 key 的值
  3. 在组件中,使用v-for循环的时候,或者在一些特殊情况中,如果 v-for 有问题,必须 在使用 v-for 的同时,指定 唯一的 字符串/数字 类型 :key 值
    <p v-for="item in list" :key="item.id">
      <input type="checkbox">{{item.id}} --- {{item.name}}
    </p>

v-if

<div v-if="flag">v-if 的创建和删除</div>
<div v-if="!flag">v-if 进行取反操作</div>
<div v-if="flag?false:true">v-if js合法表达式控制</div>
  1. 当属性值为true时 创建并显示元素,false时移除元素
  2. 创建和删除会让浏览器重新渲染,导致了更多的渲染开销,但如果元素一直不显示的话就不会进行渲染

v-show

  1. 同v-if一样通过true和false来控制元素的隐藏和显示
  2. 不同于v-if 删除创建的方式,v-show 使用的时添加样式display-none来控制显隐
    image.png
  3. 和v-if相比v-show 多了初始化时的开销,少了渲染开销

相关文章

  • Vue2.0基础

    MVC和MVVM 的区别 MVC 整体框架的开发思想 M代表了数据层一般是后台的数据调用和sql语句交互 C一般是...

  • Vue2.0-Vue3.0语法差异性总结

    Vue2.0 Vue2.0实例 Vue2.0 组件 使用组件的细节 在 ttable > tbody > tr 使...

  • Vue2.0基础(一)

    Vue2.0基础(一) 搭建项目 vue官网下载vue.js[https://cn.vuejs.org/v2/gu...

  • vue(3) - 收藏集 - 掘金

    Vue2.0 Transition 常见用法全解惑 - 前端 - 掘金Vue2.0的过渡系统(transition...

  • vee-validate使用教程

    vee-validate使用教程 本文适合有一定Vue2.0基础的同学参考,根据项目的实际情况来使用,关于Vue的...

  • vee-validate使用教程

    vee-validate使用教程 本文适合有一定Vue2.0基础的同学参考,根据项目的实际情况来使用,关于Vue的...

  • vue2.0基础-简介(一)

    一、 Vue.js是什么? Vue.js(读音 /vjuː/,类似于 view) 是一套构建用户界面的渐进式框架。...

  • (24)打鸡儿教你Vue.js

    学习Vue基础语法Vue中的组件Vue-cli的使用 1、使用Vue2.0版本实现响应式编程2、理解Vue编程理念...

  • Vue2.0的Diff算法

    原文:解析Vue2.0的Diff算法 Vue2.0加入了Virtual Dom,Vue的Diff位于patch.j...

  • Vue2.0 环境搭建到运行

    Vue2.0 从环境搭建到发布 1 Vue2.0 推荐开发环境 1.1 Node.js 1.1.1 Node.js...

网友评论

      本文标题:Vue2.0基础

      本文链接:https://www.haomeiwen.com/subject/ngoquqtx.html