学习来源:edu.51cto.com/center/cour…
学习这个需要前端基础,如HTML\JS
建议直接取看视频,非常详细,可以开2倍速度看。
模板语法:
说白了就是数据绑定的方式,{{}}、v-bind:或:
1.数据绑定
再html里直接用{{}}方式绑定。
注意:类似以上的htmlStr绑定为例,如果你不用这种方式,你用<div v-html>这样的方式会出现很大的问题,安全性不高,容易被攻击。
2.模板表达式
表达式要在一个用例作用域下,比如上文的el:app,如果不是app里的就不能用。
单一的一个表达式的意思:如果你这么写:{{var a=100;arr.join(.)}}这样不会解析
这个理解也简单,就是绑定数据的基础上进行一些算法+-*/之类的。
3.模板属性
就是v-bindb:来绑定数据,或者直接:来绑定(:href=“url”)
指令
1.概念
这样的类型有很多,v-for v-if v-show v-bind等,后面都会学到。例如
绑定时可以带方法,比如一个点击事件
2.指令参数与修饰符
<div v-bind:title="url">其中url是属性
这个abc就是变为了动态参数,它可以再data定义,也可以再计算属性中生成
点击事件,这个event.preventDefault()这个就取消点击事件
3.指令缩写
基础指令1
1.v-show
flag:true就显示,或者flag:10>6,这个也位true,flag:3>6就是false
2.v-if
v-show和v-if有本质的区别:v-show是display的切换(它虽然没有显示出来,但是还是会渲染,你看控制台会有<div>之类的显示),v-if是有条件的渲染上去(它是会销毁和渲染),条件就是你绑定的data决定的,数据驱动视图的变化。
如果showFlag为true就显示if,如果为false就显示else
如果是true显示v-if,为false显示v-else-if,就没有走到v-else
这个v-if尽量少用。
3.v-for
3.1 循环数组
例子:
第一步:就是item in arr
第二步:绑定arr
再看例子
注意:item不是一定的,类似以前的for循环,item相当于arr[i] 的简洁形式,你可以写abc或其他的,可以自己定义。
还有其他写法
结果跟上面一样,index可以,你用i也可以,建议用index,习惯了。
建议都用in 习惯问题。
3.2 循环对象
当我们定义obj的时候
这是为什么?实际上它跟数组有很大区别,再数组每个item表示当前数组的元素,对象就是直接把value渲染出来了。
直接把对于
所以index表示所在下标,key表示属性名称,value表示属性内容
key不能重复,就类似编号。
基础结构步一样,就可以直接写出来,一样就考虑用for
key配合vue。
计算属性与方法
对象是空的,为什么
要加return
当
formaStr是计算过后的返回,重新排序,1112223334556666
get的用法
出来的结果为400
set的用法
这个结果还是为400,set要动态执行
结果就等于1400了
以下这种写法是写死的,不是动态计算属性,虽然结果出来也是对的,但是这会是什么后果?无法从data数据中来驱动,这就步符合vue的特性。
方法
这个比较简单,跟js一样,没啥好讲的。
es6可以把function这个省略,直接fan2(){}即可
外部方法(Vue外)和调用。写法如下
如果是方法记得加()
计算属性和方法的区别
计算属性定义一次,都是从缓存里拿数据。方法就是每次都是执行方法。
执行的函数越多,性能受影响。所以建议点击事件绑定函数这些使用函数,需要提前计算获取才用计算属性
计算属性本身不是函数,不能加括号,你非要变为函数,可以这么写,否则会报错。
------------不在更新,太烦了-----------------自己看视频