欢迎光临散文网 会员登陆 & 注册

Vue 基础(1)

2021-06-12 21:47 作者:刂C刂C刂  | 我要投稿

el 选项:

1. 可以是 css 选择器的格式字符串 或 HTMLElement 实例,且只能是单个实例。

css 选择器的格式字符串
HTMLElement 实例

2.  挂载完毕后,可以通过 vm.$el 进行访问。

      例如:上面的vm实例就可以这样获取: console.log( vm.$el )

3. 未设置 el 的Vue实例,可以通过 .$mount() 进行挂载,其参数形式与el规则相同。

 .$mount() 进行挂载


插值表达式:{{}}

  1. 只能书写在标签内容区域,可以与其他内容混合。

  2. 内部只能书写JavaScript表达式,不能书写语句。


data 选项

  1. 用于存储Vue实例需要使用的数据,值为对象类型。

  2. data 中的数据可以通过 vm.$data 或 vm. 数据直接访问。

通过vue实例,直接获取data数据

    3.  data 中的数据可以直接在视图中,通过插值表达式访问。

    4. data 中的数据为响应式数据,发生改变时,视图会自动更新。(即:数据驱动视图)

    5. data 中存在数组时,索引操作和length操作无法自动更新视图,这时可以借助 Vue.set()  方法替代操作。

由此可以看出,Vue数据驱动视图,可能是通过重写setter,只要调用set 这个js的取值接口,就触发视图更新。(仅个人猜测,有待验证)

  
methods 选项:

  1. 用于存储需要在Vue实例中使用的函数。

  2. methods 中的方法可以通过 Vue实例.方法名 直接访问。

  3. 方法中的 this 为 Vue实例,可以便捷的访问 实例data 中的数据。

  4. methods中定义的方法也可以操作 methods中的其他方法。

无论是data中的数据,还是methods中的方法,都是定义在 vm实例中的。所以调用时,一定不要忘记 this 。


Vue 指令:

Vue中的指令的本质上是以 v- 开头的 HTML自定义属性。

HTML 有两种属性形式:固有属性( 如:src title value style class 等) ;自定义属性(一般用于存储数据)。

鉴于自定义属性在Vue中应用极多,所以这里简单介绍下自定义属性:

dataset:自定义属性在HTML5 中的应用

setAttribute 和 getAttribute

没有兼容性问题

二者异同是:setAttribute 和 getAttribute 可以操作所有自定义属性,而dataset只是自定义属性的一个子集,只能操作 data-属性名 格式的自定义属性。


内容处理功能:

+ v-once 指令:使元素内部的插值表达式只生效一次,不再随着vue实例中data数据的变化而变化,不需要传值。

+ v-text 指令:元素内容整体替换为指定纯文本数据,可传值。

+ v-html 指令:元素内容整体替换为指定的HTML文本。

如果 v-text 或 v-html 传入的值,是引入data中的数据,那么data数据改变,会影响到它们。

视图效果


属性绑定:

 + v-bind指令:用于动态绑定 HTML属可以简写为 :

   - 如果更新data中的数据,与之相应的 v-bind绑定的属性内容也会改变

   - v-bind 中允许使用表达式:<p :class=" 'box' + 3 "></p> 等价于 <p :class=" box3 "></p>

    - v-bind 中允许使用表达式,也就意味着我们可以使用三元运算符:

        <p :class=" flag? box1:box2"></p>

    - 使用 v-bind 绑定元素的 class 属性:<p class="box1" :class="box2"></p> 

        -- 为了更灵活的操作class属性,vue中还为其提供了特殊的处理方式

        -- <p :class="{类名1:true,类名2:false,类名3:false,}"></p>  => 只类名一生效

        -- <p :class="[ 'a', { b: true }, c ]"></p>  => 还可以这样灵活书写

    - 使用 v-bind 绑定元素的 style 属性:<p :style="color:pink"></p> 


    

渲染功能:

事件处理:

表单数据双向绑定:

自定义指令:


Vue 基础(1)的评论 (共 条)

分享到微博请遵守国家法律