• vue的使用


    methods的小结

    1. 使用v-on:xxx@xxx绑定事件,其中xxx是事件名
    2. 事件的回调需要配置在methods对象中,最终会在vm上
    3. methods中配置的函数,==不要用箭头函数!==否则this就不是vm了
    4. methods中配置的函数,都是被Vue所管理的函数,this的指向是vm或组件实例对象
    5. @click="demo@click="demo($event)"效果一致,但后者可以传参

    Vue中的事件修饰符总结:

    1. prevent:阻止默认事件(常用)
    2. stop:阻止事件冒泡(常用)
    3. once:事件只触发一次(常用)
    4. capture:使用事件的捕获模式
    5. self:只有event.target是当前操作的元素时才触发事件
    6. passive:事件的默认行为立即执行,无需等待事件回调执行完毕

    修饰符可以连续写,比如可以这么用:@click.prevent.stop="showInfo"

    {{item}}--{{index}}

    在将来的项目中写v-for是需要加上:key 他的值可以写索引最好写数据中的id值

    bmustache表达式写法

    1. "app">
    2. <h2>{{firstName}}-{{lastName}}h2>
    3. <h2>{{firstName+'-'+lastName}}h2>
    4. <h2>{{count*2}}h2>
  • <script>
  • const vm = new Vue({
  • el:'#app',
  • data(){
  • return {
  • firstName:'zhang',
  • lastName:'san',
  • count:2
  • }
  • }
  • })
  • script>
  • vue的常用指令 v-for

    1. "app">
    2. <h2>{{todolists}}h2>
    3. v-for="数组或对象中的每一个值 in/of 数组或对象本身"
    4. <h2 v-for="item in obj2" :key="item.id">{{item.a}}{{item.b}}{{item.c}}h2>
  • <script>
  • const vm = new Vue({
  • el: '#app',
  • data() {
  • return {
  • todolists: ['篮球', '排球', '羽毛球', '足球'],
  • obj: {
  • a: '张三',
  • b: '李四',
  • c: '王五'
  • },
  • obj2: [{
  • id:1,
  • a: '张三',
  • }, {
  • id:2,
  • b: '李四',
  • }, {
  • id:3,
  • c: '王五'
  • }]
  • }
  • }
  • })
  • script>
  • vue的常用指令 v-once

    1. "app">
    2. <h2>{{msg}}h2>
    3. <h2 v-once>{{msg}}h2>
  • <script>
  • const vm = new Vue({
  • el:'#app',
  • data(){
  • return {
  • msg:'我就是这么倔强'
  • }
  • }
  • })
  • script>
  • vue的常用指令 v-html  重点

    1. "app">
    2. <h2 v-html="url">h2>
  • <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
  • <script>
  • const vm = new Vue({
  • el:'#app',
  • data(){
  • return {
  • }
  • }
  • })
  • script>
  • vue的常用指令 v-text 

    1. "app">
    2. <h2>{{message}},啧啧啧h2>
    3. <h2 v-text="message">,啧啧啧h2>
    4. <script>
    5. const vm = new Vue({
    6. el:'#app',
    7. data(){
    8. return {
    9. message:"你好啊"
    10. }
    11. }
    12. })
    13. script>

    vue的常用指令 v-pre 

    1. "app">
    2. <h2>{{msg}}h2>
    3. <h2 v-pre>{{msg}}h2>
    4. <script>
    5. const vm = new Vue({
    6. el:'#app',
    7. data(){
    8. return {
    9. msg:'我比v-once还要厉害'
    10. }
    11. }
    12. })
    13. script>

    vue的常用指令 v-cloak

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. <style>
    8. [v-cloak]{
    9. display: none !important;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <div id="app" v-cloak>
    15. <h2>{{msg}}h2>
    16. div>
    17. <script>
    18. setTimeout(() => {
    19. const vm = new Vue({
    20. el: '#app',
    21. data() {
    22. return {
    23. msg: '我就是这么倔强'
    24. }
    25. }
    26. })
    27. }, 200)
    28. script>
    29. body>
    30. html>

    v-bind指令 

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <img :src="src" />
    11. <img :src="url" />
    12. div>
    13. <script>
    14. const vm = new Vue({
    15. el:'#app',
    16. data(){
    17. return {
    18. src:'https://cn.bing.com/th?id=OIP.NaSKiHPRcquisK2EehUI3gHaE8&pid=Api&rs=1',
    19. url:'img/6.png'
    20. }
    21. }
    22. })
    23. script>
    24. body>
    25. html>

    v-bind绑定对象

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. <style>
    8. .active {
    9. color:#f00;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <div id="app">
    15. <h2 :class="changeActive()" @click="change">{{msg}}h2>
    16. div>
    17. <script>
    18. const vm = new Vue({
    19. el:'#app',
    20. data(){
    21. return {
    22. msg:'动态绑定对象',
    23. isactive:false
    24. }
    25. },
    26. methods:{
    27. change(){
    28. this.isactive = !this.isactive
    29. },
    30. changeActive(){
    31. return {active:this.isactive}
    32. }
    33. }
    34. })
    35. script>
    36. body>
    37. html>

    v-bind和v-for结合

    v-for时候的index索引,给每行绑定事件点击事件,点击当行是获取此行索引index并赋值给currentIndex,使用v-bind:绑定class,当index===currentIndexDom元素有active的class,颜色变红。

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. <style>
    8. .active {
    9. color: #f00;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <div id="app">
    15. <ul>
    16. <li v-for="(item,index) in movies" :key="index" :class="currentIndex==index?'active':''"@click="change(index)">{{item}}li>
    17. ul>
    18. div>
    19. <script>
    20. const vm = new Vue({
    21. el: '#app',
    22. data() {
    23. return {
    24. currentIndex: 0,
    25. movies: ["海王", "海贼王", "火影忍者", "复仇者联盟"]
    26. }
    27. },
    28. methods: {
    29. change(i) {
    30. /* this.currentIndex = i */
    31. if (this.currentIndex == i) return
    32. this.currentIndex = i
    33. }
    34. }
    35. })
    36. script>
    37. body>
    38. html>

    v-bind动态绑定class(数组用法)

    1、数组中加引号和不加引号有区别  

    2、加引号:表示字符串 是固定的,

    3、 不加引号:表示变量是不固定的

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <h2 :class="['active','aaa']">我们正在学习vueh2>
    11. <h2 :class="[active,aaa]">我们正在学习vueh2>
    12. <h2 :class="getStyle()">我们正在学习vueh2>
    13. div>
    14. <script>
    15. /* 数组中加引号和不加引号有区别
    16. 加引号:表示字符串 是固定的,
    17. 不加引号:表示变量是不固定的 */
    18. const vm = new Vue({
    19. el:'#app',
    20. data(){
    21. return {
    22. active:'isactive',
    23. aaa:'bbb'
    24. }
    25. },
    26. methods:{
    27. getStyle(){
    28. return [this.active,this.aaa]
    29. }
    30. }
    31. })
    32. script>
    33. body>
    34. html>

    v-bind动态绑定style(对象语法)

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <h2 :style="{fontSize:'50px'}">我们爱学习h2>
    11. <h2 :style="{fontSize:fontsize}">我们爱学习h2>
    12. <h2 :style="getStyle()">我们爱学习h2>
    13. div>
    14. <script>
    15. const vm = new Vue({
    16. el:'#app',
    17. data(){
    18. return {
    19. fontsize:40+'px'
    20. }
    21. },
    22. methods:{
    23. getStyle(){
    24. return {fontSize:this.fontsize}
    25. }
    26. }
    27. })
    28. script>
    29. body>
    30. html>

    v-bind动态绑定style(数组语法)

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <h2 :style="[baseStyle]">我们爱学习h2>
    11. <h2 :style="['baseStyle']">我们爱学习h2>
    12. <h2 :style="getStyle()">我们爱学习h2>
    13. div>
    14. <script>
    15. const vm = new Vue({
    16. el:'#app',
    17. data(){
    18. return {
    19. baseStyle:{background:'#f00'}
    20. }
    21. },
    22. methods:{
    23. getStyle(){
    24. return [this.baseStyle]
    25. }
    26. }
    27. })
    28. script>
    29. body>
    30. html>

    vue案例加减

    1. DOCTYPE html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="js/vue.js" type="text/javascript" charset="utf-8">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <button type="button" @click="add">+button>
    11. <h3>{{count}}h3>
    12. <button type="button" @click="sum">-button>
    13. div>
    14. <script>
    15. /* 点击事件
    16. v-on 监听事件
    17. */
    18. const vm = new Vue({
    19. el:'#app',
    20. data(){
    21. return {
    22. count:0
    23. }
    24. },
    25. methods:{//以后所有的vue中的方法都可以写在methods里面
    26. /* add:function(){
    27. console.log('add');
    28. },
    29. sum:function(){
    30. console.log('sum');
    31. } */
    32. add(){
    33. /* console.log(this); */
    34. this.count++
    35. },
    36. sum(){
    37. this.count--
    38. }
    39. }
    40. })
    41. /* 1.v-on
    42. 2.methods
    43. 3.es5和es6函数的写法
    44. 4.v-on:click 简写 @click
    45. */
    46. script>
    47. body>
    48. html>

  • 相关阅读:
    C语言《认识结构体》---重点解析内存对齐
    机器学习实战笔记(一)机器学习基础
    JavaBean事件
    猿创征文|那一年
    vue解除数据双向绑定
    AIOT介绍
    【高性能计算】CUDA,OpenCL,FPGA 加速,MPI
    软件测试 —— 常见的自动化测试架构!
    SQL没有指定返回结果类型的映射
    如何创建一个线程池,为什么不推荐使用Executors去创建呢?
  • 原文地址:https://blog.csdn.net/m0_59359854/article/details/126000859