1.安装或引入vue的方式:
a.直接下载并用 <script>
标签引入
b. <script>
在线引入:
生产版:<script src="https://unpkg.com/vue/dist/vue.min.js"></script>
调试版:<script src="https://unpkg.com/vue/dist/vue.js"></script>
c.在用 Vue 构建大型应用时推荐使用 NPM 安装。NPM 能很好地和诸如 webpack 或 Browserify 模块打包器配合使用。同时 Vue 也提供配套工具来开发单文件组件。
# 最新稳定版
$ npm install vue
2.vue简单例子:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://unpkg.com/vue/dist/vue.js"></script>
</head>
<body>
<div id="app">
<p>{{ message }}</p>
</div>
<script>
var app = new Vue({
el: '#app',
data: {
message: 'Hello Vue.js!'
}
})
</script>
</body>
</html>
el: '#app'表示把vue实例挂载到id为app的元素中
双大括号返回表达式的值或属性的值,单个大括号用于在bind时做逻辑判断, 比如
3.
除了文本插值,我们还可以像这样来绑定元素属性:
<div id="app-2">
|
var app2 = new Vue({
|
这里我们遇到了一点新东西。你看到的 v-bind
特性被称为指令。指令带有前缀 v-
,以表示它们是 Vue 提供的特殊特性。可能你已经猜到了,它们会在渲染的 DOM 上应用特殊的响应式行为。在这里,该指令的意思是:“将这个元素节点的 title
属性和 Vue 实例的 message
属性保持一致”。
如果你再次打开浏览器的 JavaScript 控制台,输入 app2.message = '新消息'
,就会再一次看到这个绑定了 title
特性的 HTML 已经进行了更新。
元素属性不需要{{}},直接引用值
<tr v-for="item in taskitems" onclick="onselrow(this);">
<td bgcolor="#FFFFFF" v-bind:title=item.source>{{item.source}}</td>
</tr>
4.v-if:
们不仅可以把数据绑定到 DOM 文本或属性,还可以绑定到 DOM 结构,比如用v-if控制元素是否显示
<div id="app-3">
|
var app3 = new Vue({
|
5.v-for
指令可以绑定数组的数据来渲染一个项目列表:
<div id="app-4">
|
var app4 = new Vue({
|
- 学习 JavaScript
- 学习 Vue
- 整个牛项目
在控制台里,输入 app4.todos.push({ text: '新项目' })
,你会发现列表最后添加了一个新项目。
6.v-on指令:用来绑定事件
<div id="app-5">
|
var app5 = new Vue({
|
v-on:click可以简写为:@click
还可绑定其他事件:
<form v-on:submit="onSubmit"> <input type="text"><br /> <input type="submit" value="提交"> </form>
可以传参:
<div v-for="item in fastnowdatacul" @click="taskitemclick(item)">
7.
Vue 还提供了 v-model
指令,它能轻松实现表单输入和应用状态之间的双向绑定。
<div id="app-6">
|
var app6 = new Vue({
|
在input中改变输入值,会同步变化message变量,从而同步变化p中的内容
8.组件系统是 Vue 的另一个重要概念,因为它是一种抽象,允许我们使用小型、独立和通常可复用的组件构建大型应用
在 Vue 里,一个组件本质上是一个拥有预定义选项的一个 Vue 实例。在 Vue 中注册组件很简单:
// 定义名为 todo-item 的新组件
|
现在你可以用它构建另一个组件模板:
<ol>
|
但是这样会为每个待办项渲染同样的文本,这看起来并不炫酷。我们应该能从父作用域将数据传到子组件才对。让我们来修改一下组件的定义,使之能够接受一个 prop:
Vue.component('todo-item', {
|
现在,我们可以使用 v-bind
指令将待办项传到循环输出的每个组件中:
<div id="app-7">
|
Vue.component('todo-item', {
|
- 蔬菜
- 奶酪
- 随便其它什么人吃的东西
效果跟这个一样:
<li v-for="item in groceryList">
{{item.text}}
</li>
这样式显示不了内容的:
<todo-item v-for="item in groceryList">
{{item.text}}
</todo-item>
只会显示1-3序号,text内容显示不出来,所以组件里面的内容要在组件里定义,不能到组件外。
9.methods里面的方法调用methods里面另一个方法xxx,或者使用data里的数据xxx,如果不是在回调中,可以用this.xxx或app.xxx
如果是在回调中,比如网络访问成功后回调,则必须用app.xxx,因为this在回调里不一定是指向vue对象了
在created里面调用methods方法只能用this调用,不能用app