vue 基础语法 总结及例子说明

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_38378384/article/details/85632897

一.创建vue新项目.开启服务

安装好vue-cli后,进入vue目录后,执行vue init webpack "项目名称"

以下是各类参数的说明:

①Project name 项目名称

②Project description 项目描述

③Author 作者

④Vue build 创建模式,目录

⑤Use ESLint to lint your code

⑥Set up unit tests

⑦Setup e2e tests with Nightwatch 以上三个不选择No的话会选择严格模式,写项目时会出现很多告警错误

⑧Should we run "npm install" for you after the project has been created 是否自动执行安装依赖

然后cd 项目名称,执行npm run dev ,打开http://localhost:8080 即可访问。

注意:Vue.js 不支持 IE8 及其以下 IE 版本。

二.常见语法总结

1.差值表达法

<div id="root">{{msg}}</div>

<script>

//实例化Vue对象

new Vue({

// 挂载点(用来绑定与元素的)

el: '#root',

// 数据对象(自定义数据对象)

data:{

msg:'hello world' //实际上就是数据绑定的形式

}

})

2.模板加差值方式 (所谓的模板即除了数据本身还有一些HTML标签等东西)

<div id="root"></div>

<script>

//实例化Vue对象

new Vue({

// 挂载点(用来绑定与元素的)

el: '#root',

//模板

template:'<h1>你好{{msg}}</h1>',

// 数据对象(自定义数据对象)

data:{

msg:'vue',

}

})

</script>

3.使用v-html 和v-text (主要使用输出未解析的HTML和文本的)

<div id="root">

<p v-text="msg">用了v-text,这里的东西不会显示的</p>

<span>上面用的v-text是不会解析html标签的</span>

<p v-html="name">用了v-html,这里的东西不会显示的</p>

<span>上面用的v-html是会解析html标签的</span>

</div>

<script>

//实例化Vue对象

new Vue({

// 挂载点(用来绑定与元素的)

el: '#root',

// 数据对象(自定义数据对象)

data:{

msg:'vue',

name:'<h1>mclink</h1>',

}

})

</script>

5.事件处理器(点击事件触发)

<div id="root">

<div v-on:click="change">{{msg}}</div>

<div @click="change">{{msg}}</div> <!-- v-on可以写成@ -->

</div>

<script>

//实例化Vue对象

new Vue({

// 挂载点(用来绑定与元素的)

el: '#root',

// 数据对象(自定义数据对象)

data:{

msg:'vue',

name:'<h1>mclink</h1>',

},

//方法实现

methods:{

change:function(){

this.msg='i love vue'

}

}

})

</script>

5.1事件修饰符

Vue.js 为 v-on 提供了事件修饰符来处理 DOM 事件细节,如:event.preventDefault() 或 event.stopPropagation()。

Vue.js通过由点(.)表示的指令后缀来调用修饰符。

<!-- 阻止单击事件冒泡 --> 

<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>

                    

  • .stop: 不会一直传递,自己运行结束就结束了。
  • .prevent: 比如 submit 加了这个,就不会提交了。
  • .capture: 在传递的父子事件种,加了这个,无论先点哪个,都先执行这个。
  • .self: 只有点击自己本身才会执行,点他的子元素也不会被传递。
  • .once: 只执行一次。

5.2 按键修饰符

Vue 允许为 v-on 在监听键盘事件时添加按键修饰符:

例如:

<!-- 只有在 keyCode 是 13 时调用 vm.submit() -->

<input v-on:keyup.13="submit">

因为不可能记住所有的keycode,故可以使用别名的方式

<!-- 同上 -->

<input v-on:keyup.enter="submit"> 

<!-- 缩写语法 --> 

<input @keyup.enter="submit">

全部的按键别名:(监听键盘点击事件)

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

6.VUE 表单


 

<!-- :和v-bind的效果是一样的,是一种简写方式 -->

<div id="root">



<div v-bind:title="title">mclink</div>

<div :title="title">mclink</div>



<input :value="content"/><p>这是没有双向绑定的,修改值data不会变</p>

<input v-model="content"/><p>这是进行了双向绑定的,修改同时改变data</p>

<div>{{content}}</div>

</div>

<script>

new Vue({

el:"#root",

data:{

title:"这是一个提醒",

content:"这是content",

},

})

</script>

:value 只是将值单向的绑定,即只会从data里面取值,但是不会改变data的值,而v-model则是双向

绑定,不仅会从data取值而且还能对应的修改data的值

7. 计算属性computed和侦听器wantch

<div id="root">

姓:<input v-model="firstname" />

名:<input v-model="lastname"/>

<div>

全名:<input v-model="fullname"/>

</div>

<div> {{count}} </div>

</div>

<script>

new Vue({

el:"#root",

data:{

firstname:"",

lastname:"",

count:0,

},

computed:{

fullname:function()

{

return this.firstname+' '+this.lastname

}

},

//监听器

watch:{

fullname:function()

{

this.count++

},

},

})

</script>

computed是在HTML DOM加载后马上执行的,如赋值;

而methods则必须要有一定的触发条件才能执行,如点击事件;

watch呢?它用于观察Vue实例上的数据变动。对应一个对象,键是观察表达式,值是对应回调。值也可以是方法名,或者是对象,包含选项。

执行顺序为:默认加载的时候先computed再watch,不执行methods;等触发某一事件后,则是:先methods再watch。

8.条件语句及循环语句

①v-if的使用

<div id="root">

<p v-if='ok'>{{message}}</p> <!-- 当OK的值为false时,移除该dom节点 -->

<p v-else>好玩吗?</p>

<button @click = 'click'>点我</button>

</div>

<script>

new Vue({

el: '#root',

data: {

message: 'Hello Vue!',

ok:true

},

methods:{

click:function(){ <!-- 绑定点击事件,切换是否切换文字 -->

this.ok = !ok;

}

}

})

</script>

②v-show的使用

与v-if类似,但是不会改变dom元素,只会再该元素上加上style = display:none 来隐藏

③v-for 循环语句的使用

v-for可以把数据中的一个数组对应为一组元素

v-for 指令需要以 item in items 形式的特殊语法, items 是源数据数组并且 item 是数组元素迭代的别名。

<div id="root">

<ul>

<li v-for="item in list">{{item}}</li>

<br/>

<span style="display: none">加上key可以增加效率,Key要求每项的值都是不同的,即唯一性 </span>

<li v-for="(item,index) of list" :key="index">{{item}}</li>

</ul>

</div>

<script>

new Vue({

el:"#root",

data:{

list:[1,2,3,4,5,6,7,8],

}

})

</script>

使用 v-for="item in list"  或者 v-for="item of list" 进行遍历都可。

猜你喜欢

转载自blog.csdn.net/qq_38378384/article/details/85632897
今日推荐