一个数字,每点击一下按钮加1.
~~~
<body>
<div id="app">
{{a}}
<p>
<button @click="add">add</button>
</p>
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
a: 1,
},
methods: {
add: function () {
this.a++;
}
}
});
</script>
~~~
# methods中参数的传递
使用方法和正常的javascript传递参数的方法一样,分为两部:
1、在methods的方法中进行声明,比如我们给add方法加上一个num参数,就要写出`add:function(num){}.`
2、调用方法时直接传递,比如我们要传递2这个参数,我们在button上就直接可以写。`<button @click=”add(2)”></button>.`
~~~
<body>
<div id="app">
{{a}}
<p>
<button @click="add(2)">add</button>
</p>
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
a: 1,
},
methods: {
add: function (num) {
if (num != '') {
this.a += num;
} else {
this.a++;
}
}
}
});
</script>
~~~
# methods中的$event参数
传递的$event参数都是关于你点击鼠标的一些事件和属性。我们先看看传递的方法。
传递:`<button @click=”add(2,$event)”>add</button> `。
我们这时候可以打印一下,看看event到底是个怎样的对象。你会发现,它包含了大部分鼠标事件的属性。
~~~
methods: {
add: function (num, event) {
console.log(event);
}
}
~~~
然后你点击下那个button,控制台就打印出来了
# native 给组件绑定构造器里的原生事件。
在实际开发中经常需要把某个按钮封装成组件,然后反复使用,如何让组件调用构造器里的方法,而不是组件里的方法。就需要用到我们的.native修饰器了。
现在我们把我们的add按钮封装成组件:
声明btn对象:
~~~
var btn={
template:`<button>组件Add</button>`
}
~~~
在构造器里声明:
~~~
components:{
"btn":btn
}
~~~
用.native修饰器来调用构造器里的add方法
~~~
<p><btn @click.native="add(3)"></btn></p>
~~~
~~~
<body>
<div id="app">
{{a}}
<p>
<btn @click.native="add(3)"></btn>
</p>
</div>
</body>
<script type="text/javascript">
var btn = {
template: `<button>组件add</button>`
};
var app = new Vue({
el: '#app',
data: {
a: 1,
},
components: {
"btn": btn
},
methods: {
add: function (num) {
console.log(num);
}
},
});
</script>
~~~
# 作用域外部调用构造器里的方法
这种不经常使用,如果你出现了这种情况,说明你的代码组织不够好
~~~
<button onclick="app.add(4)" >外部调用构造器里的方法</button>
~~~
~~~
<body>
<div id="app">
<p><button onclick="app.add(4)">add</button></p>
</div>
</body>
<script type="text/javascript">
var app = new Vue({
el: '#app',
data: {
a: 1,
},
methods: {
add: function (num) {
console.log(num);
}
},
});
</script>
~~~
- HTML
- 标签
- 超链接
- 列表
- 表格和表单
- h5新增标签
- 快捷方式
- 标签包含
- CSS
- 选择器
- 行内,块元素,链接
- css三大特性
- 盒子模型
- 定位
- css可见性
- emment书写
- 文本元素
- 外观属性
- 背景
- 浮动
- ps
- 用户界面样式
- 显示和隐藏
- 过渡
- 2D,3D变形
- 动画animation
- 伸缩布局(CSS3)
- BFC
- 优雅降级和渐进增强
- 3D旋转
- 双飞翼和圣杯
- JS基础
- 输出消息的几种方式
- 数据类型
- Date对象
- Math对象
- Array对象
- 字符串常用方法
- 数据类型转换
- 等号运算
- 代码调试
- 数组
- 函数
- WebAPI
- webapi简介
- 获取页面元素
- 事件
- 属性操作
- 创建元素
- 节点操作
- 事件详解
- BOM
- 位置相关属性
- 拖拽弹窗
- 弹出层加遮罩
- ES6
- let和const
- 解构表达式变化
- 函数优化
- map和reduce
- nrm
- npm
- npm基础
- package.json
- 淘宝镜像
- webpack
- 介绍
- 多入口文件(Multiple entry files)
- Webpack CSS loader加载器
- webpack Image loader 加载图片
- uglify-js压缩打包JS
- webpack构建本地服务器
- vue内部指令
- v-if,v-show,v-for
- v-text,v-html
- v-on
- v-model
- v-bind
- v-pre,v-cloak,v-once
- vue全局api
- Vue.directive 自定义指令
- vue.extend构造器的延伸
- vue.set全局操作
- Vue的生命周期(钩子函数)
- Template 制作模版
- Component 初识组件
- Component 组件props 属性设置
- Component 父子组件关系
- Component 标签
- vue选项
- propsData Option全局扩展数据传递
- computed Option 计算选项
- Methods Option 方法选项
- watch选项监控数据
- Mixins 混入选项操作
- Extends Option 扩展选项
- delimiters 选项
- vue实例和内置组件
- 实例属性
- 实例方法
- 实例事件
- 内置组件 -slot
- vue-cli
- vue-cli介绍
- 项目目录结构
- vue-cli模板
- vue-router
- 简介
- 配置子路由
- 参数传递
- 单页面多路由区域操作
- url传递参数
- vscode