关于methods,官方文档中有这么一段描述:
注意不应该使用箭头函数来定义method函数(例如:plus:()=>this.a++)
问题一:为什么methods中不能使用箭头函数?
可以到是可以,但是不能使用this,会出现问题
this通俗的讲就是方法的上一层所指代的对象
//方法foo定义方式一:
const foo =function(){
console.log(this)
}
foo();//这里this,取function的上一层,上一层是script了,所以这里的this是window
const obj ={bar:foo};
obj.bar();//这里this,取function的上一层,上一层是{bar:foo}了,所以这里的this是bar
//方法foo定义方式二:
const foo =()=>{
console.log(this)
}
foo();//箭头函数是不绑定this的,所以只要是箭头函数的this,就指的是默认的window
const obj ={bar:foo};
obj.bar();//箭头函数是不绑定this的,所以只要是箭头函数的this,就指的是默认的window
问题二:不是用箭头函数的情况下,this到底指向的是什么?(一道面试题)
https://mp.weixin.qq.com/s/hYm0JgBI25grNG_2sCRlTA
把这篇文章读懂就知道了
步骤:
1、复制自己需要生成代码片段的代码
2、https://snippet-generator.app/在该网站中生成代码片段
3、在vscode中配置代码片段,复制到大括号里,如果有多个代码片段,中间用逗号隔开
{{message}}-{{message}}
{{counter*10}}
{{ message.split(" ").reverse().join(" ") }}
{{reverse()}}
{{isshow?"哈哈哈":"呵呵呵"}}
其子组件或子标签中所有内容都指挥渲染一次。
{{counter}}
{{counter}}
跟{{}}语法等价,或者说不如{{}}好用,因为不能写表达式啥的,所以很少用
\
{{message}}
如果我们想展示的内容是html,但是vue不会对html做解析的,如果我们希望内容被解析出来可以使用v-html
{{message}}
加了这个,那么{{}}会失去作用
{{message}}
有时候,浏览器会出现{{message}}的问题,即先把{{message}}呈现在浏览器上,然后再解析,解析成功 后,这个属性(v-cloak会消失),使用时结合css使用
{{message}}
以上讲的主要是将值插入到模板内容中
但是,除了内容需要动态决定外,某些属性值我们也希望动态绑定
比如动态绑定a元素的href属性
绑定属性我们使用v-bind
缩写::
百度一下
Document
哈哈哈
呵呵呵
呵呵呵
呵呵呵
哈哈哈
哈哈哈
哈哈哈
哈哈哈
呵呵呵
呵呵呵
嘎嘎嘎
嘎嘎嘎
哈哈哈
哈哈哈
哈哈哈
哈哈哈2
等价结果
缩写:@
参数:event
预期:function、Inline Statement(行内语句)、Object
用法:绑定事件监听
修饰符:相当于对事件进行了一些特殊的处理
Document
div
v-on绑定对象
v-on绑定对象语法糖
关于methods,官方文档中有这么一段描述:
注意不应该使用箭头函数来定义method函数(例如:plus:()=>this.a++)
问题一:为什么methods中不能使用箭头函数?
可以到是可以,但是不能使用this,会出现问题
this通俗的讲就是方法的上一层所指代的对象
//方法foo定义方式一:
const foo =function(){
console.log(this)
}
foo();//这里this,取function的上一层,上一层是script了,所以这里的this是window
const obj ={bar:foo};
obj.bar();//这里this,取function的上一层,上一层是{bar:foo}了,所以这里的this是bar
//方法foo定义方式二:
const foo =()=>{
console.log(this)
}
foo();//箭头函数是不绑定this的,所以只要是箭头函数的this,就指的是默认的window
const obj ={bar:foo};
obj.bar();//箭头函数是不绑定this的,所以只要是箭头函数的this,就指的是默认的window
问题二:不是用箭头函数的情况下,this到底指向的是什么?(一道面试题)
https://mp.weixin.qq.com/s/hYm0JgBI25grNG_2sCRlTA
把这篇文章读懂就知道了
步骤:
1、复制自己需要生成代码片段的代码
2、https://snippet-generator.app/在该网站中生成代码片段
3、在vscode中配置代码片段,复制到大括号里,如果有多个代码片段,中间用逗号隔开
{{message}}-{{message}}
{{counter*10}}
{{ message.split(" ").reverse().join(" ") }}
{{reverse()}}
{{isshow?"哈哈哈":"呵呵呵"}}
其子组件或子标签中所有内容都指挥渲染一次。
{{counter}}
{{counter}}
跟{{}}语法等价,或者说不如{{}}好用,因为不能写表达式啥的,所以很少用
\
{{message}}
如果我们想展示的内容是html,但是vue不会对html做解析的,如果我们希望内容被解析出来可以使用v-html
{{message}}
加了这个,那么{{}}会失去作用
{{message}}
有时候,浏览器会出现{{message}}的问题,即先把{{message}}呈现在浏览器上,然后再解析,解析成功 后,这个属性(v-cloak会消失),使用时结合css使用
{{message}}
以上讲的主要是将值插入到模板内容中
但是,除了内容需要动态决定外,某些属性值我们也希望动态绑定
比如动态绑定a元素的href属性
绑定属性我们使用v-bind
缩写::
百度一下
Document
哈哈哈
呵呵呵
呵呵呵
呵呵呵
哈哈哈
哈哈哈
哈哈哈
哈哈哈
呵呵呵
呵呵呵
嘎嘎嘎
嘎嘎嘎
哈哈哈
哈哈哈
哈哈哈
哈哈哈2
等价结果
缩写:@
参数:event
预期:function、Inline Statement(行内语句)、Object
用法:绑定事件监听
修饰符:相当于对事件进行了一些特殊的处理
Document
div
v-on绑定对象
v-on绑定对象语法糖