v-on: = @,v-bind: = :,For example:v-on:click = @click,v-bind:x  = :x,

V-bind:绑定值,值是单项绑定,只有所绑定的值更改影响使用值,不会反向影响。

v-model:双向绑定值,使用值和赋值任何一个更改都会影响另一方的改变。

v-html:绑定标签,将动态的值写入标签中,并且可以用在后台传过来的富文本。

v-show:控制当前标签区域的显隐性,隐藏也会占用标签空间。

v-if:控制当前标签的增删,视觉效果同样是显隐,但是是删除标签。

v-else:结合v-if使用,理论类似if-else语句。

v-for:遍历指令,可遍历数组,对象,使用数组遍历出来的每个元素变成对象。

@click: 单次点击事件,和原生jquery里的点击事件一样,只是更改了形式

@dbclick:双击事件,同上,@mousemove:鼠标事件,同js。

@click.once:点击事件只触发一次,@click.prevent:点击不跳转,@mousemove.stop:事件停止器可用于很多场景。

@keyup:键盘事件,键值修饰符。@keyup.enter:@keyup.alt.enter:回车事件

ref方法:给标签添加别名,然后使用this.$refs来将方法赋予想要使用的。

computed:vue里的计算属性,dom结构大幅度变化,大量搜索或者复杂计算的时候,将计算方法写进computed里,能够减少项目支出。不过该方法只有在虚拟dom和真实dom不同的时候才会触发,methods里的方法只要调用都会触发。

动态绑定css:v-bind:class=\'{a:b,c:b}\',ac代表css样式表里像样的class名,b的true或false代表是否启用.

computed里面赋值,change(){return:{colorA:this.x,colorB:this.x}},标签里@click=“x=!x”

实例化多个Vue对象,通过conputed返回同样的greet方法,在更改的实例中,methods里写将要更改的内容。

组件嵌套:新建组件,然后在使用的组件里直接引用,全局引用Vue.compents(组件名),局部引用:import 名称 from 路径;

scope属性:将css限制在当前组件中使用,>>>标签可无视scope属性。

props传值:在定义监听的组件中props:[‘name’],在要传值的组件中<div :name=\'number\'></div>,不要使用字面量的方式传值,尽量使用:的方式动态传值。

事件传值:子组件$emit的方式发送,父组件$event的方式接收。this.$emit(\'name\',\'子向父传值\'),父组件的标签里<app @Changed=\"name($event)\" : =\" \"></app>,methods里name(){this. =

生命周期:官方介绍很详细,建议自己理解。

method

checkbox选择传给后台名称:

<li style=\"border-right: 1px solid #ECEDEE\" v-for=\"(item,index) in arr\" >

<input type=\"checkbox\" class=\"one\" @click.parent=\"one(item,index)\" v-model=\"item.state\">

<label for=\"one\">

<p class=\"name\">{{item.name}}</p>

</label>

</li>

one(val,index,e) {

val.state=!val.state

for(let i=0;i<this.arr.length;i++){

if(i===index){

if(this.arr[i].state){

this.axiosarr[index]=val

}else{this.axiosarr.splice(index,1)}}}}

checkbox通过请求后台数据渲染列表,然后根据选择状态反传状态。

<div class=\"ones\" v-for=\"(item, index) in aData\" :key=\"index\">

<input type=\"checkbox\":id=\"item.factoryId\":value=\"item.type\"@click=\"one(index,item)\">

<label :for=\"item.factoryId\">

<p class=\"name\">{{item.factoryName}}</p>

<p class=\"explain\">点击关联</p>

</label>

</div>

this.$axios({

}).then(res => {

console.log(res.data.data);

res.data.data.forEach(item => {

this.$set(item, \'type\', false)

this.aData.push(item)

})})

one(index,item) {

this.aData[index].type = !this.aData[index].type

this.axiosarr = []

this.aData.forEach(item => {

if (item.type) {

this.axiosarr.push(item.factoryId)}})

在遇到多个v-show/v-if控制,后台没有给标识的情况下,自己加索引。

<img v-show=\"creentIndex==index?!show:show\" :src=\"and+item.licensePath\" alt=\"\">

data里定义:creentIndex:-1,show:false

doclick(index){

if( this.creentIndex == index){

//一般控制的下标都不会超过1000

this.creentIndex = 1000

}else{

this.creentIndex = index}}

 

 

 

收藏 打印