• Vue模板语法下


    目录

    一、事件处理器

    1.冒泡事件

    2.表单案例

     二、自定义组件


    一、事件处理器

    1.冒泡事件

    什么是冒泡事件

    stop    :阻止单击事件冒泡

    once   : 只执行一次

    v-on:keyup.键盘上任意键="事件名"   :键盘按键事件

    v-on:submit.prevent="onSubmit"   :提交事件不再重载页面

    案例:

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>title>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    7. head>
    8. <style>
    9. .red{
    10. width: 400px;
    11. height: 400px;
    12. background-color: red;
    13. }
    14. .blue{
    15. width: 300px;
    16. height: 300px;
    17. background-color: skyblue;
    18. }
    19. .yellow{
    20. width: 200px;
    21. height: 200px;
    22. background-color: yellow;
    23. }
    24. .green{
    25. width: 100px;
    26. height: 100px;
    27. background-color: green;
    28. }
    29. style>
    30. <body>
    31. <div id="app">
    32. <p>冒泡事件p>
    33. <div class="red" @click="red">
    34. <div class="blue" @click.stop="blue">
    35. <div class="yellow" @click="yellow">
    36. <div class="green" @click.stop="green">div>
    37. div>
    38. div>
    39. div>
    40. <p>提交答案p>
    41. <button @click.once="dushi">{{btnv}}button>
    42. <p>按键事件p>
    43. <input v-on:keyup.enter="dushi2" id="in"/>
    44. div>
    45. body>
    46. <script type="text/javascript">
    47. //绑定界面
    48. new Vue({
    49. el:'#app',
    50. data(){
    51. return {
    52. btnv:'提交'
    53. }
    54. },
    55. methods:{
    56. red(){
    57. console.log("red");
    58. },
    59. blue(){
    60. console.log("blue");
    61. },
    62. yellow(){
    63. console.log("yellow");
    64. },
    65. green(){
    66. console.log("green");
    67. },
    68. dushi(){
    69. console.log("已做完,提交答案");
    70. },
    71. dushi2(){
    72. console.log("文本框");
    73. }
    74. }
    75. })
    76. script>
    77. html>

    2.表单案例

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>title>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <form v-on:submit.prevent="onSubmit">
    11. 姓名:<input v-model="uname"/><br>
    12. 密码:<input v-model="pwd"/><br>
    13. 性别:<input type="radio" v-model="sex" name="sex" value="1"/>
    14. <input type="radio" v-model="sex" name="sex" value="2"/>
    15. <br>
    16. 爱好:
    17. <span v-for="l in likes">
    18. <input type="checkbox" :value="l.id"/>{{l.name}}
    19. span><br>
    20. <label>成绩label>
    21. <select>
    22. <option value="-1">请选择option>
    23. <option v-for="l in types" :value="l.id">{{l.name}}option>
    24. select><br>
    25. 确认<input type="checkbox" v-model="flag" />
    26. <input type="submit" v-bind:disabled="show" v-on:click="doSubmit" value="提交"/>
    27. form>
    28. div>
    29. body>
    30. <script type="text/javascript">
    31. //绑定界面
    32. new Vue({
    33. el:'#app',
    34. data(){
    35. return {
    36. likes:[
    37. {id:1,name:'篮球'},
    38. {id:2,name:'排球'},
    39. {id:3,name:'桌球'},
    40. {id:4,name:'排球'}
    41. ],
    42. types:[
    43. {id:1,name:'差'},
    44. {id:2,name:'良'},
    45. {id:3,name:'优'}
    46. ],
    47. uname:null,
    48. pwd:null,
    49. flag:false
    50. }
    51. },
    52. computed: {
    53. show: function() {
    54. return !this.flag;
    55. }
    56. },
    57. methods: {
    58. doSubmit: function() {
    59. console.log('doSubmit')
    60. var obj = {
    61. uname: this.uname,
    62. pwd: this.pwd,
    63. age:this.age+10,
    64. sex: this.sex,
    65. likes:this.likes,
    66. types: this.types,
    67. }
    68. console.log(obj);
    69. }
    70. }
    71. })
    72. script>
    73. html>

     二、自定义组件

    template  :定义

    props   :父传子参数

    子传父

    $emit  :1.$emit 2.自定义事件  this.$emit('事件名',参数)

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>自定义组件title>
    6. <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>父组件 传参 给 子组件p>
    11. <mybutton m='zs' n='0'>mybutton>
    12. <p>子组件 传参 给 父组件p>
    13. <mybutton2 m='zs' n='0' @mymethod='xxx'>mybutton2>
    14. div>
    15. body>
    16. <script type="text/javascript">
    17. Vue.component('mybutton',{
    18. // template:'',
    19. template:'',//定义
    20. props:['m','n'],//父传子
    21. methods:{
    22. sub(){
    23. var name='张三';
    24. var sex="男";
    25. var age= 12;
    26. this.n++;
    27. console.log(name);
    28. console.log(sex);
    29. console.log(age);
    30. }
    31. }
    32. })
    33. Vue.component('mybutton2',{
    34. // template:'',
    35. template:'',//定义
    36. props:['m','n'],//父传子
    37. methods:{
    38. str(){
    39. this.n++;
    40. var name='张三';
    41. var sex="男";
    42. var age= 12;
    43. //子组件 将参数传递给父组件 的关键在于
    44. //1.$emit 2.自定义事件 this.$emit('事件名',.....)
    45. this.$emit('mymethod',{'name':name,'sex':sex,'age':age});//子传父
    46. }
    47. }
    48. })
    49. //外部组件
    50. new Vue({
    51. el:'#app',
    52. data(){
    53. return {
    54. msg:'想见你想见你想见你'
    55. }
    56. },
    57. methods:{
    58. xxx(a){
    59. console.log(a);
    60. }
    61. }
    62. })
    63. script>
    64. html>

     

  • 相关阅读:
    记一次频繁GC问题的排查
    sass和scss 有何区别?
    安全管理:守护数据库的堡垒(九)
    使用Docker-Java监听Docker容器的信息
    AutoTrain:在Google Colab上微调LLM最简单的方法
    JSD-2204-MyBatis小结-SLF4j日志-SpringMVC-Day05
    C++实践2:在c++20中为spdlog与fmt装配source_location
    模型训练出现NAN
    求解plc相关问题下载程序
    可衡量的项目目标怎么设定?
  • 原文地址:https://blog.csdn.net/weixin_61523879/article/details/126691225