最近打算重温一遍vue的知识,正好总结一份笔记。
基本用法
<span>Text:{{text}}span>
<span v-text="text">span> 这个属于指令
<li data-id="{{id}}">li>
有时候只需要渲染一次数据,后续数据变化不再关心,可以通过“*”实现
<span>Text:{{*text}}span>
如果是html片段,可以这样表示
<span v-html="text">span> 这个属于指令
<span>Text:{{{text}}}span>
表达式是各种数值、变量、运算符的综合体
{{ cents/100 }}
{{ true?1:0 }}
{{ example.split(",") }}
无效示例
{{ var logo= 'DDFE' }}
{{ if(true) return 'DDFE' }}
添加过滤器,允许过滤器串联,还支持传入参数
{{ example | toUpperCase }}
{{ example | filterA | filterB }}
{{ example | filter a b }}
Vue.config是一个对象,包含了Vue.js的所有全局配置,可以在Vue实例化前修改其中的属性
Vue.config.delimiters = ["<%","%>"];
如果修改了默认的分隔符,则文本插值中的语法{{example}}变成<%example%>
Vue.config.unsafeDelimiters = ["<$","$>"];
如果修改了默认的HTML插值分隔符,则HTML插值的语法由{{example}}变成< example e x a m p l e >
v-if
可以根据表达式的值在DOM中生成或移除一个元素。支持template语法,惰性语法-如果初始渲染时条件为假,则什么也不做,在条件第一次为真时才开始局部编译v-show
可以根据表达式的值显示或者隐藏HTML元素。不支持template语法。 v-else
v-modal
input、select、text、CheckBox、radio
等表单控件元素上创建双向数据绑定 type="text" v-modal="data.name" placeholder="" />
v-modal
上可以加多个参数number、lazy、debounce
v-for
数据重复渲染指令 <li v-for="item in items" class="item-{{$index}}">
{{$index}}-{{item.name}}
li>
v-for可以和Vue.js提供的内置过滤器和排序数据一起使用。
(1)filterBy
语法:filterBy searchKey [in dataKey…]
用法:
<input v-modal="searchText">
<ul>
<li v-for="user in users | filterBy searchText in 'name'">{{name}}li>
ul>
再输入框输入名称,ul数据会根据输入的值,在users的name字段中过滤出我们想要的信息,并展示出来。
(2) orderBy
语法:orderBy sortKey [reverseKey]
用法:
<ul>
<li v-for="user in users | orderBy field reverse">{{user.name}}li>
ul>
在ul标签中根据field变量代表的tag字段正序排列数据
v-text
v-html
v-bind
bind:src="imgSrc">
:src="imgSrc">
在绑定prop时,prop必须在子组件中声明。可以用修饰符指定不同的绑定类型。
.sync-双向绑定,只能用于prop
.once-单项绑定,只能用于prop
.camel-将绑定的特性名字转换回驼峰命名。只能用于普通HTML特性的绑定,通常用于绑定用驼峰命名的SVG特性,比如viewBox。
<my-component :prop.sync="someThing">my-component>
v-on
<button v-on:click="doThis">button>
<button v-on:click="doThis('hello',$event)">button>
<button @click="doThis">button>
v-on后面可以添加的修饰符:
.stop-调用event.stopPropagation()
.prevent-调用event.preventDefault()
.capture-添加事件监听时使用capture模式
.self-只当事件是从侦听器绑定的元素本身触发时才触发回调
.{KeyCode|KeyAlias}-只在指定按键上触发回调。Vue.js提供的键有:[esc:27、tab:9、enter:13、space:32、’delete’:[8,46]、up:38、left:37、right:39、down:40]
v-ref
v-el
<span v-el:msg>hellospan>
<span v-el:other-msg>worldspan>
通过this.$els获取响应的DOM元素:
this.$els.msg.textContent //-> "hello"
this.$els.otherMsg.textContent //-> "world"
v-pre
v-cloak
[v-cloak]{display:none}
一起使用,这个指令可以隐藏未编译的Mustache标签直到实例准备完毕,否则在渲染页面时,有可能用户会先看到Mustache标签,然后看到编译后的数据。 <div v-cloak>
{{message}}
div>
下一篇vue笔记,具体讲下Vue的自定义指令,这篇文章就先写到这里。