美文网首页
vue笔记-day1

vue笔记-day1

作者: yscmh | 来源:发表于2018-08-09 19:53 被阅读0次

1.MVVM概念

MVVM的概念-这张图很值钱.png

2.Vue基本结构代码和MVVM的对应关系

<script src="./lib/vue-2.5.16.js"></script>
<!-- 这里创建了一个容器,将来Vue就会控制整个容器中的所有代码 -->
<!-- 这个被vm控制的区域,就是MVVM中的View层 -->
<div id="app">
    <p>{{msg}}</p>
</div>
<script>
    // new出来一个实例,这个实例就是MVVM中的VM层
    const vm=new Vue({
        el:"#app",//通过el属性,指定vm调度者控制页面上的哪个区域
        data:{  //这个data对象就是MVVM中的Model层
            msg:"甄嬛"
        }
    })
</script>

3.插值表达式

  插值表达式的用法:表达式/三元表达式,只能用在元素的内容区域

   <div id="app">
    <!-- 插值表达式的用法 : 表达式/三元表达式 -->
    <p>{{msg}}</p>
    <!--  插值表达式中使用  + 拼接字符串 -->
    <p>{{name+"18岁"}}</p>
    <!-- 插值表达式中使用  数字运算符 -->
    <p>{{2*3}}</p>
    <!-- 插值表达式中使用  三元运算符 -->
    <p>{{8%2 === 0 ? "偶数":"奇数"}}</p>
    <!-- 三元表达式 从data中取值 -->
    <p>{{age > 18? "已成年":"未成年"}}</p>
</div>
<script>
    const vm=new Vue({
        el:"#app",
        data:{
            msg:"华妃",
            name:"jack",
            age:20
        }
    })
</script>

4.指令v-text

  v-text是用来渲染文本的,用法: v-text="属性名"

 注意:只能被使用在标签的属性上,会把元素内部的内容全部替换掉,

  1. v-text 会把元素内部的内容都替换掉

       <div id="app">
            <p v-text="msg">123</p>
        </div> 
       const vm=new Vue({
         el:"#app",
         data:{
             msg:"这是一首简单的小情歌"
         }
     })
    结果是:这是一首简单的小情歌,,会把123替换掉
    

5.指令v-html

  v-html是用来渲染带标签的文本,用法: v-html="属性名"

6.插值表达式,v-text和v-html的区别

 1.插值表达式

  1.插值表达式可以渲染普通的文本,使用在标签的内容innerHtml区域, 用法: {{}}
  注意:插值表达式不会清空元素中其它的内容, 插值表达式,只是一个占位符,不会清空元素的内容,但是在网速慢的情况下,会出现闪烁的问题,v-text没有闪烁问题,使用v-cloak指令,解决插值表达式闪烁问题

     <p v-cloak>123{{msg}}456</p>
      结果是:   123这是一首简单的小情歌456

  2.v-text指令

   v-text指令也可以用来渲染普通文本,用法:v-text="属性名"
   注意:只能被使用在标签的属性上,会把元素内部的内容全部替换掉,

        <div id="app">
            <p v-text="msg">123</p>
        </div> 
       const vm=new Vue({
         el:"#app",
         data:{
             msg:"这是一首简单的小情歌"
         }
     })
    结果是:这是一首简单的小情歌,,会把123替换掉

  3.v-html指令

  1. v-html是用来渲染带标签的文本,用法: v-html="属性名"

7.v-bind指令

    可以用来动态的绑定属性,用法: v-bind:属性名="data中的属性名",简写形式 :属性名="data中的属性名",可以用来绑定class样式,用法 :class="{'类名':布尔值}" 布尔值为true则样式显示,为false则样式不显示

8.v-for指令

 v-for能够根据data中数据的变化自动刷新视图,
 注意1: v-for必须结合key属性来使用,它会唯一标识数组中的每一项,未来当数组中的那一项改变的时候,它会只更新那一项,好处就是提升性能。注意key的值唯一,不能重复
 注意2: 以下两种情况不会触发视图更新
   1.使用数组的length属性取改变数组的时候,不会触发视图更新(model层数据变化了,视图层没有刷新)
   2.使用数组下标的方式去改变数组的时候,也不会触发视图更新
   解决方法:
   1.使用Vue.set(arr,index,newVal) arr是需要改变的数组,index是数组里面的项,newVal是改变后的值,Vue.set(vm.arr3,0,{name:"小明",age:2222})
   2.Array.prototype.splice(),vm.arr1.splice(0,1)删除arr1数组中的第一项

1.渲染数组

  1. 数组arr1 ,item是数组中的每一项,arr1是要循环的数组

        arr1:["甄嬛","年石兰","安陵容"],
        <ul>
        <li v-for="item in arr1" :key="item">{{item}}</li>
        </ul>

  2.数组arr2

      arr2:[
               {"name":"貂蝉",age:20},
               {"name":"昭君",age:18},
           ],

    渲染方式有两种:
      2.1方法1,item是数组中的每一项,arr2是要循环的数组

   <ul>
          <li v-for="item in arr2" :key="item.name">{{item.name}}-----{{item.age}}</li>
    </ul>

      2.2方法2,item是数组中的每一项,index是数组项的索引值,arr2是要循环的数组

     <ul>
         <li v-for="(item,index) in arr2" :key="index">{{item.name}}--{{item.age}}-{{index}}</li>
    </ul>

  ###2.渲染对象
val,key,index分别代表值,键,每项的索引

 obj:{
                "邮箱":"247171",
                "电话":"284561596321",
                "爱好":"吃饭,睡觉"
           }
 <ul>
        <li v-for="(val,key,index) in obj" :key="index">{{key}}:{{val}}:{{index}}</li>
 </ul>

9.v-model指令

v-model指令用来双向数据绑定:就是model和view中的值进行同步变化 ,用法:v-model="属性名"

10.v-on 指令

  v-on用来监听事件dom事件
 用法:
   1.v-on:事件类型="执行的函数"
   2.简写@:事件类型="执行的函数"
   3.参数 @:事件类型="执行的函数(实参)"
   4.通过执行函数中添加event参数传递事件,注意只能是event,并且没有双引号
   5.事件修饰符可以给事件添加特殊功能, .stop阻止单击事件继续传播 .prevent阻止页面跳转

11. v-if和v-show指令

 v-if和v-show用来 控制元素的显示和隐藏 v-if="布尔值" v-show="布尔值" ,布尔值为true的时候显示,为false的时候不显示
  两者的区别:
   v-if通过控制dom来控制元素的显示和隐藏
  v-show通过控制样式display:none来控制元素的显示和隐藏
  使用场景区别
   1.设计到大量dom操作的时候,我们需要使用v-show
  2.设计到异步数据渲染的时候就使用v-if

相关文章

  • 笃学奖-Topic 1-A11340-甘比精读

    >> The Science Book Day1: Vocabulary 【图例注释】 [→] Day1笔记 [ ...

  • vue笔记-day1

    1.MVVM概念 2.Vue基本结构代码和MVVM的对应关系 3.插值表达式   插值表达式的用法:表达式/三元表...

  • Vue - day1

    Vue - day1 什么是Vue Vue.js 是目前最火的衣一个前端框架 Vue.js 是一套构建用户界面的框...

  • 我的英语笔记365 Day1

    #英语笔记365 Day1 外刊阅读笔记 ? 读【How the World’s Richest Country ...

  • vue入门笔记 day1

    webpack属性配置 javascript(参考webpack.config.js) webpack-ES6的处...

  • Vue-思维导图笔记

    Vue思维导图笔记 转载自vue.js思维导图笔记

  • 2019-08-03

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念;打包工具 Webpack , Gu...

  • Vue.js 学习Day1

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念;打包工具 Webpack , Gu...

  • day1

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念;打包工具 Webpack , Gu...

  • Vue基础一

    Vue.js - Day1 课程介绍 前5天: 都在学习Vue基本的语法和概念;打包工具 Webpack , Gu...

网友评论

      本文标题:vue笔记-day1

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