Vue Day01

作者: 啊啊啊阿南 | 来源:发表于2017-12-26 17:18 被阅读0次
var vm = new Vue({
  el: '#app',  //选取数据要挂载的范围 querySelector
  data: {
    message: 'Hello World'
})

{{}}将模型的数据显示在页面上

<!--支持三元表达式-->
{{ message ? message : 'init data' }}

{{*}}首次绑定数据后,不随数据变化(绑定一次)

<!--只绑定一次 视图变化时不再变化-->
{{ *message }}


{{{}}} 将html类型的数据正常绑定到页面上

{{{ message }}} //message :'<h1>Hello</h1>'

在示例创建后加载以前不存在的属性是不会刷新视图的

var mess = {
  name: 'he'
};
var vm = new Vue({
  el: '#app',  
  data: {
    message: 'Hello World'
});
//当前实例vm和mess这个对象只想同意内存空间
vm.message.name = 100;
//在实例创建后挂载以前不存在的属性是不会刷新视图的
mess.age = 100;
// vm.$set  Vue.set
alert(vm.message == mess);//true

$data可以直接更改对象指定

//vm.$data 就是data对应的这个对象
vm.$data = { age: 10};

vm.$el 不能更改绑定数据的元素

vm.$el = document.getElementById('app1');

computed 计算属性

computed:{
  sum: function(){//默认调get方法
  //在vm中所有的this只想的都是当前实例
    return this.message + 10;
  }
  count:{
    get(){
      return this.price*2; 
    },
    set(val){
      this.price = 40;
    }
   }
  }

变量闪烁问题

css代码

/*属性选择器 [属性名]*/
[v-cloak] :display:none;
/*vue加载完该属性会被移除*/

html代码

<div id="app">
    <!-- Vue编译完成之前{{message}}已字符串显示在页面 编译完后才被替换-->
    <!-- v-text 、v-bind 等可以解决单个标签的闪烁问题-->
    {{message}}
    <!-- v-cloak 可以解决多级数据闪烁问题-->
     <div v-cloak>{{message}}</div>
</div>

v-show 与v-if的区别

v-show 操作的是样式 频繁切换
v-if 操作的是DOM

<!-- 多了一个空的div -->
<div v-if='true'>
  <div>hello</div>
</div>
<!-- template 不会被渲染 只有v-if支持template  v-show不支持template-->
<template v-if='true'>
  <div>hello</div>
  <div>world</div>
</template>
<!-- v-else要紧跟在v-if后面 也可以跟在v-show 后面-->
<div v-else>
  i love you
</div>

遍历对象

message: {
  name: 'zq',
  age: 9
}
<template v-for ='val in message'>
  {{$key}} : {{val }}
</template>
//结果:name:aq age:9
<template v-for ='(key , val) in message'>
  {{$index}}{{key}} : {{$key}} : {{val }}<br>
<!--$index 索引 从0开始  $odd $even $first $last-->
</template>
/*结果:
0name:name:aq 
1age:age:9
*/

遍历数组

message: [
  {name: 'zfpx', type: ['backbone']},
  {name: 'zfpx', type: ['jquery','react','angular']},
  {name: 'zfpx', type: ['nodejs','angularjs',vuejs']}
]
<template v-for ='mes in message'>
  {{$index}} : {{mes .name}} : {{mes .type}}<br>
</template>
<template v-for ='(key,value) in message'>
  {{key}} : {{value .name}} : {{value .type}}<br>
</template>

嵌套循环

<template v-for ='(key,value) in message'>
  <template v-for ='(childKey,t) in value.type'>
    {{key}} : {{childKey}} : {{t}}<br>
  </template>
</template>

遍历数组中相同的项 如果没有唯一的键供追踪 尽量使用track-by (如果没有 开发版会给出warn)
message: [
'苹果' ,'苹果', '苹果', '苹果'
]

<template v-for ='(key,value) in message' track-by="$index">
   {{value}}<br>
</template>

相关文章

  • vue知识整理

    # Vue.js - day01 ## 插件安装推荐 vscode有二个常用插件:vetur,Vue 2 Snip...

  • Vue.js - day01

    Vue.js - day01 插件推荐 vue官方推出的插件,高亮,一些提示 vue的代码提示 框架的学习方式 没...

  • vue day01

    1.mvvm 分别代表什么? MVVM模式是Model、View、ViewModel的简称:1.Model(数据模...

  • Vue Day01

    {{}}将模型的数据显示在页面上 {{*}}首次绑定数据后,不随数据变化(绑定一次) {{{}}} 将html类型...

  • vue.js基础笔记

    2018/10/15周一 day01 一 什么是Vue.js 答:vue.js是一个轻量级的,的一个渐进式的一个框...

  • Vue基础-day01

    vm 插值表达式 v-text 插值表达式、v-text、v-html的区别及应用场景 v-bind v-for ...

  • 100天iOS数据结构与算法实战 Day01

    100天iOS数据结构与算法实战 Day01 100天iOS数据结构与算法实战 Day01

  • 汤小洋Vue笔记Day01

    汤小洋Vue课程代码记录课程连接地址:http://edu.51cto.com/course/10543.html...

  • vue源码之分析-day01

    1,vue 使用 rollup打包构建工具 2,根据上图的 web-full-dev 命令 找到源文件和打...

  • day01 Vue.js起步

    1.Vue.js介绍 Vue.js官网Vue.js 是一个JavaScriptMVVM库,是一套构建用户界面的渐进...

网友评论

      本文标题:Vue Day01

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