vue渲染

在组件中data是一个方法里面的值要是一个对象return出去

export default {
name: "HelloWorld",
data() {
return {
msg: "vue 学习旅程"
};
}
};

如果是new的事例 data就是一个对象

var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue!'
}
})

组件例子:

1.使用  {{}}  文本插值符

f1 <template>
<div class="hello">
<div>{{msg}}</div>
</div>
</template> <script>
export default {
name: "HelloWorld",
data() {
return {
msg: "vue 学习旅程"
};
}
};
</script> 效果:

// v-text v-html 区别
<template>
<div class="hello">
<span v-text="word1">11</span>
<span v-html="word2">11</span>
</div>
</template> <script>
export default {
name: "HelloWorld",
data() {
return {
word1: " <div>安稳1</div> ",
word2: "<div>安稳2</div> "
};
}
};
</script> 效果:
总结: v-html解析html 两个都会覆盖标签内容 {{}}不会覆盖 {{}}和v-text都不解析html内容

vue指令

2.v-bind

改指令的意思是:“将这个元素节点的 title 特性和 Vue 实例的 message 属性保持一致”。 v-bind可以简写 :

<template>
<div class="hello">
<span v-bind:title="msg">鼠标悬停几秒钟查看此处动态绑定的提示信息!</span>
</div>
</template> <script>
export default {
name: "HelloWorld",
data() {
return {
msg: "vue 学习旅程"
};
}
};
</script> 鼠标悬浮效果:

3.v-if 指令

绑定一个布尔值   true是显示  false隐藏

<template>
<div class="hello">
<span v-if="active">{{msg}}</span>
</div>
</template> <script>
export default {
name: "HelloWorld",
data() {
return {
msg: "vue 学习旅程",
active: true
};
}
};
</script>

4.v-for

注意点:

1.需要加key值 -通过key值来提升渲染的效率默认用 “就地复用” 策略

2.v-for

 v-for="(item,index) in items"     第一参数item是每一项的数组元素  第二参数index是当前项的索引    (和angularjs 相反 )
也可以用of代替in作为分隔符,也是最接近javascript迭代器的语法。 这时候每一项的意义有一些不一样
 v-for="(item,key,index) of items"  第一参数item元素 第二参数key为键名 第三个参数index 为索引
<template>
<div class="hello">
   <span v-for="(item,index) in msg" :key="index">{{item.a}}</span>
  // <span v-for="item in msg">{{item.a}}</span> 注意这种写法不会影响效果,但是编辑器语法会报错出现红色波浪线 记得加上key值
 </div>
</template>
 <script>
export default {
name: "HelloWorld",
data() {
return {
msg: [{ a: 1 }, { a: 2 }, { a: 3 }]
};
}
};
</script> 效果:

5.v-on

事件绑定可以cy()也可以cy直接绑定   加括号传参数 v-on可以简写@

<div id="app-5">
<p>{{ message }}</p>
<button v-on:click="reverseMessage">逆转消息</button>
</div>
var app5 = new Vue({
el: '#app-5',
data: {
message: 'Hello Vue.js!'
},
methods: {
reverseMessage: function () {
this.message = this.message.split('').reverse().join('')
}
}
}) 以上我们直接写死的点击事件 也可以使用动态参数作为事件名绑定处理函数
<div id="app-5">
<button v-on:[eventname]="reverseMessage">动态事件名</button>
</div>
var app5 = new Vue({
el: '#app-5',
data: {
  eventname:'focus'
  },
  methods: {
reverseMessage: function () {
    。。。。。。
   }
}
})
当 值为'focus' v-on:[enentname]等价 v-on:focus 包括(v-bind 和 v-on 的动态参数 )
动态事件参数注意点:
1.非字符串类型都会触发警告
2.语法约束空格引号无效并且回避大小写
3.计算属性复杂的表达式也会无效
例:
<a v-bind:['foo' + bar]="value"> ... </a> //触发警告
<a v-bind:[someAttr]="value"> ... </a>  //流浪器特效强制转小写

这个是官网的事例:我看到了一个reverse()的方法 以前没用过所以做一下记录~

var vm = new Vue({
date:{
message="abcdefg"
}
)}
//split(' ')分裂,也就是把一个数据拆分   
message.split(' ') == [ "a", "b", "c", "d", "e", "f", "g"]
//reverse( )翻转,把数据反过来 !只对数组有效
message.split(' ').reverse() == ['g', "f", "e".......]
//join(' ')重组,把数组合成一个字符串
//把数据反过来重组
message.split(' ').reverse( ).join(' ')

6.v-model

<template>
<div class="hello">
<input type="text" v-model="msg" />
<p>{{msg}}</p>
</div>
</template> <script>
export default {
name: "HelloWorld",
data() {
return {
msg: "vue 双向绑定"
};
}
};
</script>

v-model的修饰符,一起记录一下

(1) .lazy 会转变为在 change 事件中同步 , 也就是在失去焦点 或者 按下回车键时才更新**

  <input type="text" v-model.lazy="msg" />
 
 (2) .trim  去头尾空格
  <input type="text" v-model.trim="msg" />
 
 (3).number 将输入的值转化为Number类型 ,否则虽然你输入的是数字 但它的类型其实是String,在数字输入框中比较有用
  <input type="number" v-model.number="msg" />
  

vue 学习 渲染、v-指令的更多相关文章

  1. vue学习04 v-on指令

    vue学习04 v-on指令 v-on的作用是为元素绑定事件,比如click单击,dbclick双击 v-on指令可简写为@ 代码测试 <!DOCTYPE html> <html l ...

  2. vue学习06 v-show指令

    目录 vue学习06 v-show指令 v-show指令是:根据真假切换元素的显示状态 原理是修改元素的display,实现显示隐藏 指令后面的内容,最终都会解析为布尔值(true和false) 练习 ...

  3. vue学习08 v-bind指令

    目录 vue学习08 v-bind指令 v-bind指令的作用是为元素绑定属性 完整写法是v-bind:属性名,可简写为:属性名 练习代码为: 运行效果为: vue学习08 v-bind指令 v-bi ...

  4. VUE 学习笔记 一 指令

    1.声明式渲染 v-bind 特性被称为指令.指令带有前缀 v-,以表示它们是 Vue 提供的特殊特性 <div id='app'> <span v-bind:title=" ...

  5. vue 学习八 自定义指令

    vue指令注册有两种方式 1 全局注册 在main.js中 使用vue.directive Vue.directive('alert_w', { inserted(el,bin,vn) { conso ...

  6. vue学习(十二) 指令v-if v-show 控制页面标签的显示与隐藏

    //html <div id="app"> <input type="button" value="toggle" @cl ...

  7. vue学习(三) v-bind指令

    //html <div id="app"> <input type="button" value="ok" v-bind: ...

  8. 17.VUE学习之- v-for指令的使用方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. vue学习03 v-html

    vue学习03v-html v-html指令的作用是:设置元素的内部html链接 内容有html 的结构会被解析为标签 v-text指令无论内容是什么,只会解析文本 解析文本使用v-text,需要解析 ...

随机推荐

  1. Mysql数据库(四)表记录的更新操作

    一.插入表记录 1.使用INSERT...VALUES语句插入新纪录 (1)插入完整数据 mysql> desc tb_manager; +-------+------------------+ ...

  2. Unity修改脚本后调试

    修改脚本后调试有时候需要运行,为了提高效率可以设置编辑器中执行,同时也可以开启有效性检查(即更改面板变量即可刷新代码) [ExecuteInEditMode] public class XXXX: M ...

  3. (一)初识EasyTouch

    Easy Touch是一个手指触控(可以鼠标)的插件,可以非常方便的实现各种功能,使用插件第一步是添加Easy Touch组件,可以右键添加也可以在一个空的游戏物体上添加Easy Touch脚本(非事 ...

  4. BOOL,int,float,指针变量 与“零值”比较的if语句

    分别给出BOOL,int,float,指针变量 与“零值”比较的 if 语句(假设变量名为var) 解答: BOOL型变量:if(!var) int型变量: if(var==0) float型变量: ...

  5. Python的深浅拷贝

    Python的深浅拷贝 深浅拷贝 1. 赋值,对于list, set, dict来说, 直接赋值. 其实是把内存地址交给变量并不是复制一份内容 list1 = [']] list2 = list1 p ...

  6. 激活Sublime Text 3,亲测有效!

    一.修改sunlime_text.exe 打开Sublime Text的安装目录,在修改之前要先备份一下sunlime_text.exe. 欢迎关注微信公众号:万猫学社,每周一分享Java技术干货. ...

  7. 前端技术之:如何在控制台将JS class实例输出为JSON格式

    有一个类: class Point { constructor(x, y) { this.x = x; this.y = y; } } 如果我们在控制台中输出其实例: console.log(new ...

  8. [考试反思]1026csp-s模拟测试89:不公

    稍垃圾.因为T1没A. 赶巧前一段时间学了杜教筛,结果因为教练放错题. 然后考场上疯狂yy,最后水到了一个AC. 其实的确挺不公平的,不少人也没学呢. 如果只算T1和T3的分数的话,那70分就是个垃圾 ...

  9. 「Usaco2008 Jan」人工湖O(∩_∩)O 纯属的模拟+栈

    题目描述 夏日那让人喘不过气的酷热将奶牛们的烦躁情绪推到了最高点.最终,约翰决定建一个人工湖供奶牛消暑之用. 为了使湖看起来更加真实,约翰决定将湖的横截面建成N(1≤N≤105)个连续的平台高低错落的 ...

  10. Java基础系列5:Java代码的执行顺序

    该系列博文会告诉你如何从入门到进阶,一步步地学习Java基础知识,并上手进行实战,接着了解每个Java知识点背后的实现原理,更完整地了解整个Java技术体系,形成自己的知识框架. 一.构造方法 构造方 ...