vue-starter-study-node

万嘉石
2023-12-01

参考文献:https://www.jianshu.com/p/c4a87e1b4ef7 

1 vue 挂载点 模板 与实例 

挂载点:Vue中的el属性所绑定的DOM节点,Vue只会处理挂载点内的内容;

模板:挂载点内部的内容都是模板
模板不仅仅可以放在挂载点内部,也可以放在Vue实例中,用template属性,写在template属性中;

实例:如:new Vue({……})

2 实例中的常用的属性方法事件

属性

vm.$data 获取实例中的数据对象,页可简写为vm.msg 直接访问data中的数据变量名;

vm.$el 获取vm实例中的dom对象(挂载点)

vm.$option 获取实例中的选项,如mthods data 或者子弟定义在data外的选项;

vm.$refs 获取实例中所有添加了ref的Dom对象,

方法

 

3 常用指令

v-text :不转义,直接文本输出,可以等同于JS的text属性;

<h1 v-text="msg"></h1>
等价于
<h1>{{msg}}</h1>

v-html :转义,并解释为html,等同于JS的innerHtml;

<h1 v-html="msg"></h1>

v-once:其关联的实例只会渲染一次

v-show:根据条件展示元素,其元素一定会存在于dom中;

v-if:可以实现条件渲染,根据表达式的值的真假条件来渲染元素;

v-else:是搭配v-if使用的,它必须紧跟在v-if或者v-else-if后面,否则不起作用;

v-else-if:充当v-if的else-if块,可以链式的使用多次,可以更加方便的实现switch语句;

注意:v-if有更高的切换开销,v-show有更高的初始渲染开销;
因此,如果要非常频繁的切换,则使用v-show较好;如果在运行时条件不太可能改变,则v-if较好

v-bind:动态绑定一个或多个特性,常用于动态绑定class、style、href等;

<div id="app">
    <!--数组语法:errorClass在data对应的类一定会添加-->
    <!--is-active是对象语法,根据activeClass对应的取值决定是否添加-->
    <p :class="[{'is-active':activeClass},errorClass]">12345</p>
</div>
<script>
    var app = new Vue({
        el: '#app',
        data: {
            activeClass: false,
            errorClass: 'text-danger'
        }
    })
</script>

渲染结果:

<!--因为activeClass: false,所以is-active不被渲染-->
<p class = "text-danger"></p>

 

v-on:绑定事件,事件定义在methods中

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>
<!-- 阻止单击事件继续传播 -->
<a v-on:click.stop="doThis"></a>

<!-- 提交事件不再重载页面 -->
<form v-on:submit.prevent="onSubmit"></form>

<!-- 修饰符可以串联 -->
<a v-on:click.stop.prevent="doThat"></a>

<!-- 只有修饰符 -->
<form v-on:submit.prevent></form>

<!-- 添加事件监听器时使用事件捕获模式 -->
<!-- 即元素自身触发的事件先在此处处理,然后才交由内部元素进行处理 -->
<div v-on:click.capture="doThis">...</div>

<!-- 只当在 event.target 是当前元素自身时触发处理函数 -->
<!-- 即事件不是从内部元素触发的 -->
<div v-on:click.self="doThat">...</div>

<!-- 点击事件将只会触发一次 -->
<a v-on:click.once="doThis"></a>

<!-- 滚动事件的默认行为 (即滚动行为) 将会立即触发 -->
<!-- 而不会等待 `onScroll` 完成  -->
<!-- 这其中包含 `event.preventDefault()` 的情况 -->
<div v-on:scroll.passive="onScroll">...</div>

v-model:在表单元素上创建双向数据绑定,监听用户输入以便更新数据

<input type="text" v-model="message" placeholder="edit me">
<p>Message is: {{ message }}</p>

v-model修饰符
<1> .lazy
默认情况下,v-model同步输入框的值和数据。可以通过这个修饰符,转变为在change事件再同步。

<input v-model.lazy="msg">

<2> .number
自动将用户的输入值转化为数值类型

<input v-model.number="msg">

<3> .trim
自动过滤用户输入的首尾空格

<input v-model.trim="msg">

 

v-for:用v-for指令根据遍历数组来进行渲染

<div v-for="item in items">
  {{ item.text }}
</div>

<!-- item 为当前项,index 为索引 -->
<p v-for="(item, index) in list">{{item}} -- {{index}}</p>

<!-- item 为值,key 为键,index 为索引 -->
<p v-for="(item, key, index) in obj">{{item}} -- {{key}}</p>

 

 

 

 

 

 

 

 

 类似资料: