Vue学习,可是没学会

想把springboot和vue结合起来,可是简单的学完了vue仍是不知道怎么使用,vue要不要单独开一个服务去支撑才可使用?一直没想明白这个问题 ,先记录下他的简单使用方法和标签javascript

@初始化:
var vm = new Vue({
  // 选项
})

@数据绑定最多见的形式就是使用 {{...}}(双大括号)的文本插值:

<div id="vue_det">
    <h1>site : {{site}}</h1>
    <h1>url : {{url}}</h1>
    <h1>Alexa : {{alexa}}</h1>
</div>
<script type="text/javascript">
// 咱们的数据对象
var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
var vm = new Vue({
    el: '#vue_det',
    data: data
})

@它们都有前缀 $,以便与用户定义的属性区分开来
document.write(vm.$data === data) // true
document.write("<br>") 
document.write(vm.$el === document.getElementById('vue_det')) // true

@使用 v-html 指令用于输出 html 代码:
<div id="app">
    <div v-html="message"></div>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: '<h1>菜鸟教程</h1>'
  }
})
</script>
@HTML 属性中的值应使用 v-bind 指令。
<div id="app">
  <label for="r1">修改颜色</label><input type="checkbox" v-model="use" id="r1">
  <br><br>
  <div v-bind:class="{'class1': use}">
    v-bind:class 指令
  </div>
</div>
    
<script>
new Vue({
    el: '#app',
  data:{
      use: false
  }
});
</script>
@Vue.js 都提供了彻底的 JavaScript 表达式支持。
@指令是带有 v- 前缀的特殊属性。
<div id="app">
    <p v-if="seen">如今你看到我了</p>
</div>
v-if 指令将根据表达式 seen 的值(true 或 false )来决定是否插入 p 元素。
@参数在指令后以冒号指明。例如, v-bind 指令被用来响应地更新 HTML 属性:
 <pre><a v-bind:href="url">菜鸟教程</a></pre>
@ v-on 指令,它用于监听 DOM 事件:
	<a v-on:click="doSomething">
	
@修饰符是以半角句号 . 指明的特殊后缀,用于指出一个指令应该以特殊方式绑定。
例如,.prevent 修饰符告诉 v-on 指令对于触发的事件调用 event.preventDefault():
<form v-on:submit.prevent="onSubmit"></form>

@v-model 在 input 输入框中咱们可使用 v-model 指令来实现双向数据绑定:
<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  }
})
</script>
v-model 指令用来在 input、select、textarea、checkbox、radio 等表单控件元素上建立双向数据绑定,根据表单上的值,自动更新绑定的元素的值。
按钮的事件咱们可使用 v-on 监听事件,并对用户的输入进行响应。

如下实例在用户点击按钮后对字符串进行反转操做:

<div id="app">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">反转字符串</button>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})
</script>

@Vue.js 容许你自定义过滤器,被用做一些常见的文本格式化。由"管道符"指示, 格式以下:

<!-- 在两个大括号中 -->
{{ message | capitalize }}

<!-- 在 v-bind 指令中 -->
<div v-bind:id="rawId | formatId"></div>

@缩写
v-bind 缩写
Vue.js 为两个最为经常使用的指令提供了特别的缩写:

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>
v-on 缩写
<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>
@v-if 指令
在元素 和 template 中使用 v-if 指令:
@v-else
能够用 v-else 指令给 v-if 添加一个 "else" 块:
@v-else-if
v-else-if 在 2.1.0 新增,顾名思义,用做 v-if 的 else-if 块。能够链式的屡次使用:
@v-show
咱们也可使用 v-show 指令来根据条件展现元素:
@v-for 指令。

v-for 指令须要以 site in sites 形式的特殊语法, sites 是源数据数组而且 site 是数组元素迭代的别名。

<div id="app">
  <ul>
    <li v-for="value in object">
    {{ value }}
    </li>
  </ul>
</div>
 
<script>
new Vue({
  el: '#app',
  data: {
    object: {
      name: '菜鸟教程',
      url: 'http://www.runoob.com',
      slogan: '学的不只是技术,更是梦想!'
    }
  }
})
</script>
第三个参数为索引:
    <li v-for="(value, key, index) in object">
     {{ index }}. {{ key }} : {{ value }}
    </li>
 第二个的参数为键名:
   <li v-for="(value, key) in object">
    {{ key }} : {{ value }}
    </li>
	v-for 也能够循环整数
	 <li v-for="n in 10">
     {{ n }}
    </li>
	
	@计算属性关键词: computed。
	computed vs methods
	能够说使用 computed 性能会更好,可是若是你不但愿缓存,你可使用 methods 属性。

@ 监听属性 watch,咱们能够经过 watch 来响应数据的变化。

如下实例经过使用 watch 实现计数器:
<div id = "app">
    <p style = "font-size:25px;">计数器: {{ counter }}</p>
    <button @click = "counter++" style = "font-size:25px;">点我</button>
</div>
<script type = "text/javascript">
var vm = new Vue({
    el: '#app',
    data: {
        counter: 1
    }
});
vm.$watch('counter', function(nval, oval) {
    alert('计数器值的变化 :' + oval + ' 变为 ' + nval + '!');
});
</script>


如下实例进行公里与米之间的换算:

实例
<div id = "computed_props">
    公里 : <input type = "text" v-model = "kilometers">
    米 : <input type = "text" v-model = "meters">
</div>
<p id="info"></p>
<script type = "text/javascript">
    var vm = new Vue({
    el: '#computed_props',
    data: {
        kilometers : 0,
        meters:0
    },
    methods: {
    },
    computed :{
    },
    watch : {
        kilometers:function(val) {
            this.kilometers = val;
            this.meters = this.kilometers * 1000
        },
        meters : function (val) {
            this.kilometers = val/ 1000;
            this.meters = val;
        }
    }
    });
    // $watch 是一个实例方法
    vm.$watch('kilometers', function (newValue, oldValue) {
    // 这个回调将在 vm.kilometers 改变后调用
    document.getElementById ("info").innerHTML = "修改前值为: " + oldValue + ",修改后值为: " + newValue;
})
</script>
@class 属性绑定
咱们能够为 v-bind:class 设置一个对象,从而动态的切换 class:
实例中将 isActive 设置为 true 显示了一个绿色的 div 块,若是设置为 false 则不显示:

<div v-bind:class="{ active: isActive }"></div>
@ v-on 在监听
<!-- 阻止单击事件冒泡 -->
<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>
<!-- 只当事件在该元素自己(而不是子元素)触发时触发回调 -->
<div v-on:click.self="doThat">...</div>

<!-- click 事件只能点击一次,2.1.4版本新增 -->
<a v-on:click.once="doThis"></a>
<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->
<input v-on:keyup.13="submit">
 
 @别名:
<!-- 同上 -->
<input v-on:keyup.enter="submit">
<!-- 缩写语法 -->
<input @keyup.enter="submit">
所有的按键别名:

.enter
.tab
.delete (捕获 "删除" 和 "退格" 键)
.esc
.space
.up
.down
.left
.right
.ctrl
.alt
.shift
.meta

@修饰符
.lazy
在默认状况下, v-model 在 input 事件中同步输入框的值与数据,但你能够添加一个修饰符 lazy ,从而转变为在 change 事件中同步:

<!-- 在 "change" 而不是 "input" 事件中更新 -->
<input v-model.lazy="msg" >
.number
若是想自动将用户的输入值转为 Number 类型(若是原值的转换结果为 NaN 则返回原值),能够添加一个修饰符 number 给 v-model 来处理输入值:

<input v-model.number="age" type="number">
这一般颇有用,由于在 type="number" 时 HTML 中输入的值也老是会返回字符串类型。

.trim
若是要自动过滤用户输入的首尾空格,能够添加 trim 修饰符到 v-model 上过滤输入:

<input v-model.trim="msg">
@组件<tagName></tagName>
全局组件实例
注册一个简单的全局组件 runoob,并使用它:

<div id="app">
    <runoob></runoob>
</div>
 
<script>
// 注册
Vue.component('runoob', {
  template: '<h1>自定义组件!</h1>'
})
// 建立根实例
new Vue({
  el: '#app'
})
</script>
局部组件实例
<div id="app">
    <runoob></runoob>
</div>
 
<script>
var Child = {
  template: '<h1>自定义组件!</h1>'
}
 
// 建立根实例
new Vue({
  el: '#app',
  components: {
    // <runoob> 将只在父模板可用
    'runoob': Child
  }
})
</script>
@Prop
prop 是子组件用来接受父组件传递过来的数据的一个自定义属性。

父组件的数据须要经过 props 把数据传给子组件,子组件须要显式地用 props 选项声明 "prop":
用 v-bind 指令将 todo 传到每个重复的组件中:
<div id="app">
    <ol>
    <todo-item v-for="item in sites" v-bind:todo="item"></todo-item>
      </ol>
</div>
 
<script>
Vue.component('todo-item', {
  props: ['todo'],
  template: '<li>{{ todo.text }}</li>'
})
new Vue({
  el: '#app',
  data: {
    sites: [
      { text: 'Runoob' },
      { text: 'Google' },
      { text: 'Taobao' }
    ]
  }
})
</script>
@Prop 验证
type 能够是下面原生构造器:

String
Number
Boolean
Array
Object
Date
Function
Symbol
type 也能够是一个自定义构造器,使用 instanceof 检测。
@若是你想在某个组件的根元素上监听一个原生事件。可使用 .native 修饰 v-on 。例如:

<my-component v-on:click.native="doTheThing"></my-component>
@Vue.js 自定义指令
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Vue 测试实例 - 菜鸟教程(runoob.com)</title>
<script src="https://cdn.staticfile.org/vue/2.2.2/vue.min.js"></script>
</head>
<body>
<div id="app">
	<p>页面载入时,input 元素自动获取焦点:</p>
	<input v-focus>
</div>

<script>
// 注册一个全局自定义指令 v-focus
Vue.directive('focus', {
  // 当绑定元素插入到 DOM 中。
  inserted: function (el) {
    // 聚焦元素
    el.focus()
  }
})
// 建立根实例
new Vue({
  el: '#app'
})
</script>
</body>
</html>
@钩子函数
指令定义函数提供了几个钩子函数(可选):

bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数能够定义一个在绑定时执行一次的初始化动做。

inserted: 被绑定元素插入父节点时调用(父节点存在便可调用,没必要存在于 document 中)。

update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。经过比较更新先后的绑定值,能够忽略没必要要的模板更新(详细的钩子函数参数见下)。

componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

unbind: 只调用一次, 指令与元素解绑时调用。
钩子函数参数
钩子函数的参数有:

el: 指令所绑定的元素,能够用来直接操做 DOM 。
binding: 一个对象,包含如下属性:
name: 指令名,不包括 v- 前缀。
value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2。
oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。不管值是否改变均可用。
expression: 绑定值的表达式或变量名。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。
arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"。
modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。
vnode: Vue 编译生成的虚拟节点。
oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。

@Vue.js 路由
Vue.js 路由须要载入 vue-router 库

中文文档地址:vue-router文档。
<router-link> 是一个组件,该组件用于设置一个导航连接,切换不一样 HTML 内容。 to 属性为目标地址, 即要显示的内容
相关文章
相关标签/搜索