Vue.js是一款前端框架,它让开发者轻松构建交互式的Web应用程序。Vue 2.x版本是目前最稳定和流行的版本,本文将详细介绍Vue 2.x的基础API。
Vue实例
在使用Vue.js时,我们需要创建一个Vue实例,该实例是Vue的核心。我们可以通过以下方式创建Vue实例:
var vm = new Vue({ //选项 })
其中,vm
是一个Vue实例对象,我们可以在选项中设置数据、计算属性、方法等。
数据
Vue.js提供了data
选项,它允许我们定义应用程序要使用的数据。这些数据可以是数字、字符串、数组、对象等类型。例如:
var vm = new Vue({ data: { message: 'Hello World!' } })
在模板中可以使用{{}}
语法绑定数据:
<div>{{ message }}</div>
计算属性
除了直接绑定数据外,Vue还提供了计算属性(computed
)选项。计算属性会根据依赖变化而重新计算结果。例如,我们可以定义一个计算属性来获取字符串的长度:
-- -------------------- ---- ------- --- -- - --- ----- ----- - -------- ------ ------- -- --------- - -------------- ---------- - ------ -------------------- - - --
在模板中可以使用计算属性:
<div>{{ messageLength }}</div>
方法
Vue.js提供了methods
选项,允许我们定义方法。我们可以将事件处理程序添加到方法中,并在模板中使用这些方法。例如,我们可以定义一个方法来翻转字符串:
-- -------------------- ---- ------- --- -- - --- ----- ----- - -------- ------ ------- -- -------- - --------------- ---------- - ------------ - ------------------------------------------ - - --
在模板中可以使用方法:
<button v-on:click="reverseMessage">Reverse Message</button>
模板语法
Vue.js使用类似HTML的模板语法。模板中可以包含绑定、指令、事件等。
数据绑定
Vue.js提供了数据绑定语法,通过它可以将数据和模板进行关联。数据绑定可以是插值表达式、绑定属性等形式。例如:
<div>{{ message }}</div> <input v-bind:value="message">
指令
Vue.js提供了指令语法,它们以v-
前缀命名。指令用于在模板中添加特殊功能,例如条件渲染、循环、事件绑定等。例如:
-- -------------------- ---- ------- ---- ---- --- ---- ------------------- ------------ ---- -- --- ---- --- ----------- -- --------- ---- ------- ----- ---- ---- --- ------- ------------------------------ -----------
过滤器
Vue.js提供了过滤器语法,可以对数据进行格式化。使用|
操作符来应用过滤器。例如:
<div>{{ message | reverse }}</div>
在Vue实例中定义过滤器:
-- -------------------- ---- ------- --- -- - --- ----- ----- - -------- ------ ------- -- -------- - -------- --------------- - ------ ----------------------------------- - - --
生命周期钩子函数
Vue.js提供了生命周期钩子函数,它们允许我们在实例的不同阶段添加自定义逻辑。常见的生命周期钩子函数有created
、mounted
、updated
和destroyed
。例如:
var vm = new Vue({ created: function() { console.log('Vue实例被创建!'); }, mounted: > 来源:[JavaScript中文网](https://www.javascriptcn.com/post/1574) ,转载请注明来源 [https://www.javascriptcn.com/post/1574](https://www.javascriptcn.com/post/1574)