消息条

v-snackbar 组件用于向用户显示快速消息。消息条支持定位、移除延迟和回调。

用例

v-snackbar 以最简单的形式向用户显示一个临时且可关闭的通知。

template script


  1. <template>
  2. <div class="text-center ma-2">
  3. <v-btn dark @click="snackbar = true">Open Snackbar</v-btn>
  4. <v-snackbar
  5. v-model="snackbar"
  6. >
  7. {{ text }}
  8. <v-btn
  9. color="pink"
  10. text
  11. @click="snackbar = false"
  12. >
  13. Close
  14. </v-btn>
  15. </v-snackbar>
  16. </div>
  17. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. snackbar: false,
  5. text: 'Hello, I\'m a snackbar',
  6. }),
  7. }
  8. </script>

Snackbars(消息条) - 图1

API

从下面选择您想要的组件,并查看可用的属性、插槽、事件和函数。

Snackbars(消息条) - 图2

实战场

template script


  1. <template>
  2. <v-card>
  3. <v-card-text>
  4. <v-container fluid>
  5. <v-row>
  6. <v-col cols="12">
  7. <v-radio-group v-model="color" row>
  8. <v-radio
  9. v-for="(colorValue, i) in ['success', 'info', 'error', 'cyan darken-2']"
  10. :key="i"
  11. :color="colorValue"
  12. :label="colorValue"
  13. :value="colorValue"
  14. ></v-radio>
  15. </v-radio-group>
  16. </v-col>
  17. <v-col cols="12" sm="3">
  18. <v-checkbox
  19. v-model="x"
  20. label="Left"
  21. value="left"
  22. ></v-checkbox>
  23. </v-col>
  24. <v-col cols="6" sm="3">
  25. <v-checkbox
  26. v-model="x"
  27. label="Right"
  28. value="right"
  29. ></v-checkbox>
  30. </v-col>
  31. <v-col cols="6" sm="3">
  32. <v-checkbox
  33. v-model="y"
  34. label="Top"
  35. value="top"
  36. ></v-checkbox>
  37. </v-col>
  38. <v-col cols="6" sm="3">
  39. <v-checkbox
  40. v-model="y"
  41. label="Bottom"
  42. value="bottom"
  43. ></v-checkbox>
  44. </v-col>
  45. <v-col cols="12" sm="3">
  46. <v-checkbox
  47. v-model="mode"
  48. label="Multi-line (mobile)"
  49. value="multi-line"
  50. ></v-checkbox>
  51. </v-col>
  52. <v-col cols="12" sm="3">
  53. <v-checkbox
  54. v-model="mode"
  55. label="Vertical (mobile)"
  56. value="vertical"
  57. ></v-checkbox>
  58. </v-col>
  59. <v-col cols="12" sm="4">
  60. <v-text-field
  61. v-model="text"
  62. class="px-4"
  63. label="Text"
  64. type="text"
  65. ></v-text-field>
  66. </v-col>
  67. <v-col cols="12" sm="4">
  68. <v-text-field
  69. v-model.number="timeout"
  70. class="px-4"
  71. label="Timeout"
  72. type="number"
  73. ></v-text-field>
  74. </v-col>
  75. </v-row>
  76. </v-container>
  77. <v-btn
  78. block
  79. color="primary"
  80. dark
  81. @click="snackbar = true"
  82. >
  83. Show Snackbar
  84. </v-btn>
  85. </v-card-text>
  86. <v-snackbar
  87. v-model="snackbar"
  88. :bottom="y === 'bottom'"
  89. :color="color"
  90. :left="x === 'left'"
  91. :multi-line="mode === 'multi-line'"
  92. :right="x === 'right'"
  93. :timeout="timeout"
  94. :top="y === 'top'"
  95. :vertical="mode === 'vertical'"
  96. >
  97. {{ text }}
  98. <v-btn
  99. dark
  100. text
  101. @click="snackbar = false"
  102. >
  103. Close
  104. </v-btn>
  105. </v-snackbar>
  106. </v-card>
  107. </template>
  1. <script>
  2. export default {
  3. data () {
  4. return {
  5. color: '',
  6. mode: '',
  7. snackbar: false,
  8. text: 'Hello, I\'m a snackbar',
  9. timeout: 6000,
  10. x: null,
  11. y: 'top',
  12. }
  13. },
  14. }
  15. </script>

Snackbars(消息条) - 图3

示例

下面是一些简单到复杂的例子。

多行

multi-line 属性扩展了 v-snackbar 的高度,为您提供了更多的内容空间。

template script


  1. <template>
  2. <div class="text-center">
  3. <v-btn
  4. dark
  5. color="red darken-2"
  6. @click="snackbar = true"
  7. >
  8. Open Snackbar
  9. </v-btn>
  10. <v-snackbar
  11. v-model="snackbar"
  12. :multi-line="multiLine"
  13. >
  14. {{ text }}
  15. <v-btn
  16. color="red"
  17. text
  18. @click="snackbar = false"
  19. >
  20. Close
  21. </v-btn>
  22. </v-snackbar>
  23. </div>
  24. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. multiLine: true,
  5. snackbar: false,
  6. text: 'I\'m a multi-line snackbar.',
  7. }),
  8. }
  9. </script>

Snackbars(消息条) - 图4

超时

timeout 属性允许您自定义隐藏 v-snackbar 之前的延迟。

template script


  1. <template>
  2. <div class="text-center">
  3. <v-btn
  4. dark
  5. color="orange darken-2"
  6. @click="snackbar = true"
  7. >
  8. Open Snackbar
  9. </v-btn>
  10. <v-snackbar
  11. v-model="snackbar"
  12. :timeout="timeout"
  13. >
  14. {{ text }}
  15. <v-btn
  16. color="blue"
  17. text
  18. @click="snackbar = false"
  19. >
  20. Close
  21. </v-btn>
  22. </v-snackbar>
  23. </div>
  24. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. snackbar: false,
  5. text: 'My timeout is set to 2000.',
  6. timeout: 2000,
  7. }),
  8. }
  9. </script>

Snackbars(消息条) - 图5

垂直

vertical 属性允许您堆叠您的 v-snackbar 的内容。

template script


  1. <template>
  2. <div class="text-center">
  3. <v-btn
  4. dark
  5. color="indigo"
  6. @click="snackbar = true"
  7. >
  8. Open Snackbar
  9. </v-btn>
  10. <v-snackbar
  11. v-model="snackbar"
  12. :vertical="vertical"
  13. >
  14. {{ text }}
  15. <v-btn
  16. color="indigo"
  17. text
  18. @click="snackbar = false"
  19. >
  20. Close
  21. </v-btn>
  22. </v-snackbar>
  23. </div>
  24. </template>
  1. <script>
  2. export default {
  3. data: () => ({
  4. snackbar: false,
  5. text: 'Lorem ipsum dolor sit amet',
  6. vertical: true,
  7. }),
  8. }
  9. </script>

Snackbars(消息条) - 图6