Vue是一个构建用户界面的框架,它基于标准HTML、CSS和JavaScript构建,并提供了一套声明式的、组件化的编程模型。以下是Vue基础语法的详细介绍:
一、Vue实例
- 创建Vue实例:要让Vue工作,必须创建一个Vue实例,且要传入一个配置对象。例如:
new Vue({el: '#root', data: {name: '宋一鲤'}})
。其中,el
用于指定当前Vue实例为哪个容器服务,值通常为CSS选择器字符串;data
用于存储数据,供el
所指定的容器去使用。 - Vue模板:root容器里的代码被称为Vue模板,它依然符合HTML规范,只不过混入了一些特殊的Vue语法。
- Vue实例和容器:Vue实例和容器是一一对应的,在真实开发中通常只有一个Vue实例,并且会配合着组件一起使用。
二、数据绑定
- 插值语法:
{{xxx}}
中的xxx
要写JS表达式,且xxx
可以自动读取到data
中的所有属性。一旦data
中的数据发生了改变,那么页面中用到该数据的地方也会自动更新。 - 指令语法:Vue中有很多指令,用于解析标签属性、解析标签体内容、绑定事件等。例如,
v-bind:href="xxx"
(或简写为:href="xxx"
)用于单向数据绑定,数据只能从data
流向页面;v-model:value="xxx"
(或简写为v-model="xxx"
)用于双向数据绑定,数据不仅能从data
流向页面,还能从页面流向data
。注意,v-model
只能应用在表单类元素(输入类元素)上。
三、常用指令
- v-text:将数据源中的数据渲染到标签体中的内容,但会覆盖标签体中原有的内容。
- v-html:可以将带标签的字符串渲染成真正的HTML内容。
- v-show:根据条件切换元素的显示状态,原理是动态为元素添加或移除
display:none
样式。 - v-if:根据条件判定是否渲染元素,原理是每次动态创建或移除元素。
- v-else:与
v-if
配合使用,当v-if
的条件为false时,v-else
对应的元素会被渲染。 - v-for:用于遍历数组或对象,渲染一个元素列表。在使用
v-for
时,建议为每个元素指定一个唯一的key
值,以提升性能和防止列表状态紊乱。
四、事件处理
- v-on:用于绑定事件,语法为
v-on:event="methodName"
(或简写为@event="methodName"
)。事件的回调需要配置在methods
对象中。 - 事件修饰符:Vue提供了一些事件修饰符,如
.prevent
用于阻止事件的默认行为,.stop
用于阻止事件冒泡。 - 按键修饰符:Vue提供了一些常用的按键别名,如
enter
、delete
(捕获“删除”和“退格”键)、esc
、space
等。对于Vue未提供别名的按键,可以使用原始的key值去绑定,但要注意转为kebab-case(短横线命名)。
五、计算属性与侦听器
- 计算属性:要用的属性不存在,要通过已有的属性计算得来。计算属性最终会出现在Vue实例上,可以直接读取使用。计算属性有缓存机制,当依赖的数据没有改变时,多次访问计算属性会立即返回之前的计算结果,而不必重新计算。
- 侦听器:当需要在数据变化时执行异步或开销较大的操作时,可以使用Vue提供的侦听器(watchers)功能。通过
watch
选项来指定一个对象,对象的键是需要观察的数据或计算属性,值是一个回调函数。当指定的数据或计算属性发生变化时,回调函数会被调用。
六、组件
- 组件定义:组件是Vue.js最强大的功能之一,它允许我们将界面拆分成可重用的独立单元。组件可以使用Vue.extend()方法或直接在Vue实例中通过
components
选项来定义。 - 组件使用:在父组件的模板中,可以通过
<子组件标签></子组件标签>
的形式来使用子组件。同时,可以使用props
属性来向子组件传递数据。 - 父子组件通信:父组件可以通过
props
向子组件传递数据,子组件可以通过$emit
方法触发事件来向父组件发送消息。
七、MVVM模型
- M:模型(Model),对应
data
中的数据。 - V:视图(View),模板代码。
- VM:视图模型(ViewModel),Vue实例。在MVVM模型中,ViewModel起着连接View和Model的作用,同时用于处理View中的逻辑。
综上所述,Vue基础语法包括Vue实例的创建与配置、数据绑定与指令的使用、事件处理与修饰符、计算属性与侦听器以及组件的定义与使用等内容。这些基础语法是构建Vue应用的基础和核心。