制作公司网站用什么软件,自媒体app推广是做什么的,服装设计是冷门专业吗,网页设计页面制作步骤一. 事件处理
在 Vue.js 中#xff0c;v-on 指令被用于监听 DOM 事件#xff0c;并在事件触发时执行相应的方法#xff0c;这些方法就是事件处理器。v-on 指令有简写形式 #xff0c;例如 clickhandleClick 会监听点击事件并执行 handleClick 方法。
事件处理…一. 事件处理
在 Vue.js 中v-on 指令被用于监听 DOM 事件并在事件触发时执行相应的方法这些方法就是事件处理器。v-on 指令有简写形式 例如 clickhandleClick 会监听点击事件并执行 handleClick 方法。
事件处理器在 Vue.js 组件中十分重要因为使用事件处理器可以让用户与组件进行交互例如按钮点击、表单提交等操作。
使用 Vue.js 中的事件处理器非常简单只需要在需要监听事件的元素上通过 v-on 指令来绑定方法。例如下面的示例代码展示了一个按钮并在点击时调用一个名为 clickMe 的方法 div idappbutton typebutton clickclickMe点我/button/divscript typetext/javascriptnew Vue({el:#app,data(){return {msg:今天的不开心就到此为止吧}},methods:{clickMe(){alert(this.msg)}}})/script
上述代码中methods 对象中的 clickMe方法为点击事件的处理器方法中使用 alert t弹窗弹出提示信息。
1.1 事件修饰符
Vue通过由点(.)表示的指令后缀来调用修饰符 .stop .prevent .capture .self .once !-- 阻止单击事件冒泡 --a v-on:click.stopdoThis/a!-- 提交事件不再重载页面 --form v-on:submit.preventonSubmit/form!-- 修饰符可以串联 --a v-on:click.stop.preventdoThat/a!-- 只有修饰符 --form v-on:submit.prevent/form!-- 添加事件侦听器时使用事件捕获模式 --div v-on:click.capturedoThis.../div!-- 只当事件在该元素本身而不是子元素触发时触发回调 --div v-on:click.selfdoThat.../div!-- click 事件只能点击一次 --a v-on:click.oncedoThis/a 1.2 按键修饰符 Vue允许为v-on在监听键盘事件时添加按键修饰符 !-- 只有在 keyCode 是 13 时调用 vm.submit() -- input v-on:keyup.13submit Vue为最常用的按键提供了别名 !-- 同上 -- input v-on:keyup.entersubmit 全部的按键别名 .enter .tab .delete (捕获 删除 和 退格 键) .esc .space .up .down .left .right .ctrl .alt .shift .meta 二. 表单的综合案例 div idapp姓名:input namename v-modelname /br密码:input typepassword v-modelpwd /br性别:span v-fors in sexListinput typeradio namesex v-modelsex :values.id{{s.name}}/spanbr爱好:span v-forh in hobbiesinput typecheckbox namemyHobby v-modelmyHobby :valueh.id{{h.name}}/spanbr籍贯:select namemyAddr v-modelmyAddroption v-fora in address :valuea.id{{a.name}}/option/selectbr个人简介:textarea v-modelsign cols8 rows5/textareabr确认:input typecheckbox v-modelok /brbutton v-showok clickdosubmit提交/button/divscript typetext/javascriptnew Vue({el:#app,data(){return {name:小灰灰,pwd:123456,sex:1,sexList:[{name:男,id:1},{name:女,id:2},{name:未知,id:3}],hobbies:[{name:跑步,id:1},{name:打游戏,id:2},{name:唱歌,id:3},{name:绘画,id:4}],myHobby:[null],address:[{name:湖南,id:1},{name:湖北,id:2},{name:云南,id:3},{name:贵州,id:4}],myAddr:null,sign:null,ok:false}},methods:{dosubmit(){var obj {};obj.name this.name;obj.pwd this.pwd;obj.sex this.sex;obj.hobby this.myHobby;obj.address this.myAddr;obj.sign this.sign;obj.ok this.ok;console.log(obj);}}})/script效果 三. 组件通信
3.1 组件简介 组件(Component)是Vue最强大的功能之一 组件可以扩展HTML元素封装可重用的代码 组件系统让我们可以用独立可复用的小组件来构建大型应用几乎任意类型的应用的界面都可以抽象为一个组件树
3.2 全局和局部组件 全局组件Vue.component(tagName, options)tagName为组件名options为配置选项。 局部组件: new Vue({el:#d1,components:{...}}) 注册后我们可以使用以下方式来调用组件 tagName/tagName 3.3 props props是父组件用来传递数据的一个自定义属性。 父组件的数据需要通过props把数据传给子组件子组件需要显式地用props选项声明 prop 注1因为组件是可复用的 Vue 实例所以它们与 new Vue 接收相同的选项例如 data、computed、watch、methods以及生命周期钩子等。仅有的例外是像el这样根实例特有的选项。
注2当我们定义这个 button-counter 组件时你可能会发现它的data并不是像这样直接提供一个对象 data: { count: 0 } 取而代之的是一个组件的data选项必须是一个函数因此每个实例可以维护一份被返回对象的独立的拷贝 data: function () { return { count: 0 } }
注3定义组件名的方式有两种 短横线分隔命名(建议使用) Vue.component(my-component-name, { /* ... */ })引用方式my-component-name 首字母大写命名 Vue.component(MyComponentName, { /* ... */ })引用方式 my-component-name和MyComponentName都是可接受的
注4HTML 中的特性名是大小写不敏感的所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时 camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名 props: [postTitle],my-tag post-titlehello!/my-tag
注5props: [title, likes, isPublished, commentIds, author] 每个 prop 都有指定的值类型 props: { title: String, likes: Number, isPublished: Boolean, commentIds: Array, author: Object, callback: Function, contactsPromise: Promise // or any other constructor