用于解析标签体内容
{{ xxx }},xxx是js表达式,且可以直接读取到data中的所有属性。
若:,则 v-model 收集的是 value 值,用户输入的就是 value 值。
若:,则 v-model 收集的是 value 值,且要给标签配置 value 值。
若:
1.没有配置 inpu t的 value 属性,那么收集的就是 checked(勾选 or 未勾选,是布尔值)
2.配置 input 的 value 属性:
(1) v-model 的初始值是非数组,那么收集的就是checked(勾选 or 未勾选,是布尔值)
(2)v-model 的初始值是数组,那么收集的的就是 value 组成的数组
v-model 的三个修饰符:
lazy:失去焦点再收集数据
number:输入字符串转为有效的数字
trim:输入首尾空格过滤
对要显示的数据进行特定格式化后再显示(适用于一些简单逻辑的处理)
注册过滤器:Vue.filter(name,callback)(局部过滤器) 或 new Vue{filters:{}}(全局过滤器)
使用过滤器:{{ xxx | 过滤器名}} 或 v-bind:属性 = "xxx | 过滤器名"
HTML 代码:
<!-- 用于定义全局过滤器 -->
<div id="root2">
<h2>{{msg | mySlice}}</h2>
</div>
Vue 代码:
//全局过滤器
Vue.filter('mySlice',function(value){
return value.slice(0,4)
})
new Vue({
el:'#root',
data:{
time:1621561377603, //时间戳
msg:'你好,尚硅谷'
},
// 计算属性
computed: {
fmtTime(){
return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
}
},
// 方法
methods: {
getFmtTime(){
return dayjs(this.time).format('YYYY年MM月DD日 HH:mm:ss')
}
},
//局部过滤器
filters:{
timeFormater(value,str='YYYY年MM月DD日 HH:mm:ss'){
// console.log('@',value)
return dayjs(value).format(str)
}
}
})
new Vue({
el:'#root2',
data:{
msg:'hello,atguigu!'
}
})
用于解析标签(包括:标签属性、标签体内容、绑定事件…..)。
new Vue({ directives:{指令名:配置对象 } })
或
new Vue({ directives{指令名:回调函数 } })
Vue.directive(指令名,配置对象) 或 Vue.directive(指令名,回调函数)
v-bind:href="xxx" 或 简写为 :href="xxx",xxx 同样要写 js 表达式,且可以直接读取到 data 中的所有属性。
HTML 代码:
Vue 代码:
new Vue({
el:'#root',
data:{
name:'尚硅谷',
n:1
},
directives:{
//big函数何时会被调用?1.指令与元素成功绑定时(一上来)。2.指令所在的模板被重新解析时。
// element:DOM元素,binding:传过来的值
big(element,binding){
console.log('big',this) //注意此处的this是window
// console.log('big')
element.innerText = binding.value * 10
},
fbind:{
//指令与元素成功绑定时(一上来)
bind(element,binding){
element.value = binding.value
},
//指令所在元素被插入页面时
inserted(element,binding){
element.focus()
},
//指令所在的模板被重新解析时
update(element,binding){
element.value = binding.value
}
}
}
})
手机扫一扫
移动阅读更方便
你可能感兴趣的文章