一、条件控制指令
1、v-if,条件渲染

<div id="J_app">
  <p v-if="show">显示该标签</p>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    show: true
  }
})

2、template使用
template元素最终不会出现在dom中

<div id="J_app">
  <template v-if="isdisplay">
    <h1>模板标签会隐藏</h1>
    <p>模板标签会隐藏</p>
    <p>模板标签会隐藏</p>
  </template>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    isdisplay: true
  }
})

3、v-else使用

<div id="J_app">
  <div v-if="type === 'A'"> A </div>
  <div v-else-if="type === 'B'"> B </div>
  <div v-else-if="type === 'C'"> C </div>
  <div v-else> Not A/B/C </div>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    type: 'D'
  }
})

4、数据遗留

<div id="J_app">
  <template v-if="loginType === 'username'">
    <label>Username</label>
    <input placeholder="Enter your username">
  </template>
  <template v-else>
    <label>Email</label>
    <input placeholder="Enter your email address">
  </template>
</div>

5、数据不遗留

<div id="J_app">
  <template v-if="loginType === 'username'">
    <label>Username</label>
    <input placeholder="Enter your username" key="username-input">
  </template>
  <template v-else>
    <label>Email</label>
    <input placeholder="Enter your email address" key="email-input">
  </template>
</div>

6、v-show,条件展示

<div id="J_app">
  <p v-show="isdisplay">只是做了隐藏,元素本身没有从dom上消失</p>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    isdisplay: true
  }
})

v-show不支持template,也不支持v-else,通过是否添加display:none控制显隐,v-if的切换开销比较大。

二、循环控制指令
1、固定值

<div id="J_app">
  <span v-for="i in 10"> {{ i }} </span>
</div>

2、template使用

<div id="J_app">
  <ul>
    <template v-for="item in items">
      <li>{{ item.option }}</li>
      <li class="divider"></li>
    </template>
  </ul>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    items: [
      { option: '前进' },
      { option: '后退' },
      { option: '休息' }
    ]
  }
})

3、遍历数组

<div id="J_app">
  <ol>
    <li v-for="item in items" :key="item.id">
      {{ item.text }}
    </li>
  </ol>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    items: [
      { text: '学习 webpack' },
      { text: '学习 Vue' },
      { text: '整个牛项目' }
    ]
  }
})
<div id="J_app">
  <ol>
    <li v-for="(item,index) in items">
      {{ flag }} - {{ item.index }} - {{ item.text }}
    </li>
  </ol>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    flag: "parent",
    items: [
      { text: '学习 webpack' },
      { text: '学习 Vue' },
      { text: '整个牛项目' }
    ]
  }
})
//改变原数组,数组变异
vapp.items.push({text:'学习es6'})
//返回新数组
vapp.items = vapp.items.filter(function (item) {
  return item.text.match(/学习/)
})
//修改某项
Vue.set(vapp.items, 2, { text: '学习vue,需要基础知识做铺垫'})
<div id="J_app">
  <ol>
    <li v-for="num in evenNumbers"> {{ num }} </li>
  </ol>
</div>
//显示数组过滤的副本,而不改变原来的数组
var vapp = new Vue({
  el: '#J_app',
  data: {
      numbers: [ 1, 2, 3, 4, 5 ]
  },
  computed: {
      evenNumbers: function () {
        return this.numbers.filter(function (number) {
          return number % 2 === 0
        })
      }
    }
})
<div id="J_app">
  <ol>
    <li v-for="num in even(numbers)"> {{ num }} </li>
  </ol>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
      numbers: [ 1, 2, 3, 4, 5 ]
  },
  methods: {
      even: function (numbers) {
        return numbers.filter(function (number) {
          return number % 2 === 0
        })
      }
   }
})

4、遍历对象

<ul id="J_app">
  <li v-for="value in personObj"> {{ value }} </li>
</ul>
var vapp = new Vue({
  el: '#J_app',
  data: {
    personObj: {
      firstName: 'Camille',
      lastName: 'Hou',
      age: 30
    }
  }
})
//添加sex属性到personObj对象
Vue.set(vapp.personObj,'sex','male')
//也可以用
vapp.$set(vapp.personObj,'sex','male')
//为已有对象赋予多个属性值
vapp.personObj = Object.assign({}, vapp.personObj, {
  weight: 105,
  len: '158cm'
})
<div id="J_app">
  <div v-for="(value, key) in personObj">
    {{ key }}:{{ value }}
  </div>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    personObj: {
      firstName: 'Camille',
      lastName: 'Hou',
      age: 30
    }
  }
})
<div id="J_app">
  <div v-for="(value, key, index) in personObj">
    {{ index }}、{{ key }}、{{ value }}
  </div>
</div>
var vapp = new Vue({
  el: '#J_app',
  data: {
    personObj: {
      firstName: 'Camille',
      lastName: 'Hou',
      age: 30
    }
  }
})

vue中的dom指令控制的更多相关文章

  1. Vue中获取dom元素

    Vue.js虽然说是数据驱动页面的,但是有时候我们也要获取dom对象进行一些操作. vue的不同版本获取dom对象的方法不一样 Vue.js  1.0版本中,通过v-el绑定,然后通过this.els ...

  2. 第七十六篇:ref引用(在vue中引用Dom的方法)

    好家伙, 引子: jQuery简化了程序员操作DOM的过程 vue 优势:MVVM 在vue中,程序员不需要操作DOM.程序员只需要把数据维护好即可!(数据驱动视图) 那么若要在vue中操作dom,这 ...

  3. vue中常见的指令

    1,差值表达式{{}} <p >{{ msg }}</p> 2.v-cloak解决差值表达式闪烁的问题 <p v-cloak>{{ msg }}</p> ...

  4. [记录] Vue中的dom操作

    使用过Vue的同学都应该有这样一个感觉,在vue中页面是基于数据驱动的,不需要我们自己操作dom,框架帮我们完成了这一步,事实上Vue官方也建议我们这样做 在绝大多数情况下是不需要操作dom就可以完成 ...

  5. 在vue中创建自定义指令

    原文:https://dev.to/ratracegrad/creating-custom-directives-in-vue-58hh 翻译:心上有杨 指令是带有 v- 前缀的特殊属性.指令的作用是 ...

  6. Vue中v-on的指令以及一些其他指令

    1.v-on的基本使用 <div id="app"> <!-- 使用事件绑定的简写形式 --> <input type="button&qu ...

  7. Vue中 等待DOM或者数据完成 在执行 --this.$nextTick()

    虽然 Vue.js 通常鼓励开发人员沿着“数据驱动”的方式思考,避免直接接触 DOM,但是有时我们确实要这么做.比如一个新闻滚动的列表项.如果在这里需要操作dom, 应该是等待 Vue 完成更新 DO ...

  8. 在vue中操作dom元素

    在vue中可以通过给标签加ref属性,就可以在js中利用ref去引用它,从而达到操作该dom元素,以下是个参考例子 1 <template> 2 <div> 3 <div ...

  9. vue中操作Dom节点的方法

    1.vue中ref操作dom节点 <template> <div id="app"> <div </div> <button @cl ...

随机推荐

  1. block循环引用

    block里边会有循环引用的风险,它可能对外部一个变量出现强引用,所以需要判断里边是否有循环引用,通过dealloc方法(销毁当前控制器.或销毁要测试的变量),判断是否循环引用.主要在block 里边 ...

  2. 【转】Linux中包管理与定时任务

    [转]Linux中包管理与定时任务 第1章 软件查询 1.1 查询软件是否安装 rpm -qa |grep cron 查询是否安装了这个软件. [root@znix ~]# rpm -qa |grep ...

  3. C#实现Zip压缩解压实例

    原文地址:https://www.cnblogs.com/GoCircle/p/6544678.html 本文只列举一个压缩帮助类,使用的是有要添加一个dll引用ICSharpCode.SharpZi ...

  4. Ex 6_20 最优二叉搜索树..._第六次作业

    假设关键字的总数为n,用c[i,j]表示第i个关键字到第j个关键字的最优二叉查找树的代价,我们的目标是求c[0,n-1].要求c[i,j],首先要从第i个关键字到第j个关键字中选一个出来作为根结点,选 ...

  5. PYTHON-基本数据类型-元祖类型,字典类型,集合类型

    内容: 1. 元组 2. 字典 3. 集合=========================== 元祖类型什么是元组: 元组就是一个不可变的列表============================ ...

  6. SqlServer 2017 下载地址及密钥

    下载地址: ed2k://|file|cn_sql_server_2017_developer_x64_dvd_11296175.iso|1769777152|E21AE7C3576C0BDF1BC0 ...

  7. PHP获取数组最后一个元素的键和值

    <?php /** * PHP获取数组中最后一个元素下标和值 */ $arr = ['1' => 'name', '3' => 2, 5 => 6, 'name' => ...

  8. php文件路径获取文件名

    物理截取: $file = '/www/htdocs/inc/lib.inc.php'; $filename = basename($file); echo $filename, '<br/&g ...

  9. tensorflow-安装

    1.pip安装(最好在虚拟环境中安装) →更新pip:pip install --upgrade pip →安装最新版tensorflow(GPU):pip install tensorflow-gp ...

  10. 持续集成一:git上传代码

    先注册一个账号,注册地址:https://github.com/ 记住地址 下载git本地客户端,下载地址:https://git-scm.com/download/win 一路next傻瓜安装,加入 ...