v-for="(item,index) in list" :key="index" v-on:[eventName]="handleClick(item.doSome,index)" >我的是动态元素--{ {item.doSome}}</button> <button @click="allClick">双点所有按钮失效</button> </template> <script> export default { name: "app", data() { return { list: [ { doSome: "doSomg1" }, { doSome: "doSomg2" }, { doSome: "doSomg3" }, { doSome: "doSomg4" }, { doSome: "doSomg5" }, { doSome: "doSomg6" } eventName: "click", newArrys: new Array(5), mounted() { var s = new Array(5); console.log(this.newArrys); methods: { handleClick(i, inedx) { let doSomes = i; this[doSomes](inedx); doSomg1(inedx) { this.newArrys[inedx] = !this.newArrys[inedx]; if (this.newArrys[inedx]) { console.log("doSomg1", this.newArrys[inedx]); doSomg2(inedx) { console.log("doSomg2"); doSomg3(inedx) { console.log("doSomg3"); doSomg4(inedx) { console.log("doSomg4"); doSomg5(inedx) { console.log("doSomg5"); doSomg6(inedx) { console.log("doSomg6"); allClick(){ this.eventName=='click'? this.eventName=null: this.eventName='click' </script> &lt;template&gt; &lt;div id="app"&gt; &lt;div class="dynamic"&gt; &lt;button class="dynamic-item" v-for="(item,index) in list" :key="index" v-on:[eventName]="handleClick(item.doSome,index)" &gt;我的是动态元素--{{i 是什么 在了解 是什么之前,先了解一下什么是指令: 在 ” vue ” 中,指令是带有 v- 前缀的特殊属性,用来修饰标签的(自 义组件在这里也统一归为标签,因为其使用方式和原生标签一样),其值的约束和模板语法一样,支持表达式、变量。 指令会监测其值的变化,并将其的变化反应给所处的DOM 我们来看一下上一章最后的例子:
用jquery的时候你会发现,页面渲染后 动态 生成的dom,在生成之前的代码是没办法取到相应对象的,必须重新获取.但是 vue 基于数据 的特性让它能生成的时候直接 数据。 html: vue js中的 事件 ,使用<v xss=removed>来完成的,这里函数名是 义在 Vue 实例中的methods对象中的, Vue 实例可以直接访问其中的方法。 二、 事件 方式 1、 直接在标签中写js方法  <button v-on:click=alert('hi')>执行方法的第一种 写法 </button> 2、调用method的办法 <button v-on:click=run()>执行方法的第一种 写法 </button> <button @click=run()>执行方法的 简写 写法 </button> export default { data ()
在上图中将a标签的href属性值设置为toutiao, VUE 实例将自动去data里面寻找toutiao属性进行值 。 不只是a标签,所有的html标签属性都可以通过v-bind进行值 ,然后通过改变数据 动态 改变它的属性值。 错误的 写法 注意一下:初学者容易犯错,这样写是错误的,v-bind:h
从 2.6.0 开始,可以用方括号括起来的 JavaScript 表达式作为一个指令的参数: 动态 参数 属性名: <a v-bind:[attributeName]="url"> ... </a> attributeName 是一个 JavaScript 表达式进行 动态 求值,求得的值将会作为最终的参数来使用。 Vue 实例有一个 data 属性 attributeName...
我们想要实现上面点击button按钮实现tab栏切换,可以通过如下两种方式: 第一个是使用v-if进行判断,代码如图所示: 我们通过一个变量当前的值是否为某一个字符串,来确 是否需要展示某一个组件。但是明显存在一个缺点就是代码过于繁琐。 第二个方法:采用 动态 组件的形式 动态 组件component是一个全局注册的组件,其中存在一个属性为is,值为组件名,并且兼容大小写。 二、参数传入 如果想要在component上向某一个组件上传递属 通过使用保留的 <component> 元素, 动态 到它的 is 特性,我们让多个组件可以使用同一个挂载点,并 动态 切换。根据 v-bind:is="组件名" 中的组件名去自动匹配组件,如果匹配不到则不显示。改变挂载的组件,只需要修改is指令的值即可。 父组件就可以通过is方法,在一个挂载点上 动态 的切换多个子组件 <template> <!-- 动态 组件 --> <div class="dynamicCom
最近在使用 vue -cli3配合iview框架搭建新的项目中用到了iview中的menu菜单,按照官网 写法 不太好,因为一般项目都是从后端 动态 获取菜单列表,所以我们需要将官网代码稍作修改,代码如下: 注意事项: 【1】菜单高亮部分 动态 路由跳转的页面 Menu组件中有一个active-name反映的是当前高亮区域,因此可以 动态 active-name来实现高亮显示。前提是需要将MenuItem 的name也设置成页面路由的name 【2】 动态 获取菜单数据,需要更新菜单 this.$nextTick(() => { this.$refs.side_menu.updateOpen
现在很多网站,都是希望 动态 切换class,更换css样式。下面我们使用 Vue 的v-bind class v-bind 动态 class 对象语法 (常用) red和size的值为true就在class显示red和size,false就不显示。下面有两种 写法 : <style> .red{ color: red; .size{ font-size: 20px; </style> <!-- 写法 一--> {{list}}
如果 status为其他,样式为greenRoom2 :class=”{‘redRoom’: Number(items.status) === 1, ‘greenRoom1’: Number(items.status) === 2, greenRoom2: Number(items.status) > 2}” 补充知识: vue 根据变量值来判断显示class 我就废话不多说了,大家还是直接看代码吧~ <div :class=”[‘bottom-btn’,{‘face-btn’:type==’ <div id="app"> <button @[n.value]="doEvent(n.value)" v-for="(n,i) of eventList" :key="i">{{n.name}}</button> <script src="./ vue .js"></script> <script> var app = .
遇到一个问题,一个点击方法在v-for里的一个元素上,由于该方法需要处理本次循环的数据并影响本次循环的其他元素,所以暂时没有想到可以把方法声明在 vue 的methods里的方法,所以就直接写在了元素上: <view @click="function(){if(order.createTime!=-1){order.createTime=-1;}else{order.createTime=1}}"> <view style="width: 50vw;" >回收物品</