• vue模板语法上集


    目录

    一、插值

    文本

    html 

    vue属性

    class绑定

     表达式

    二、指令

     核心指令

    三、过滤器

    全局过滤器

    局部过滤器 

    四、计算属性&监听器


    一、插值

    文本

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>文本p>
    11. <h3>{{msg}}h3>
    12. div>
    13. <script type="text/javascript">
    14. new Vue({
    15. el:'#app',
    16. data(){
    17. return {
    18. msg:'hellow vue',
    19. }
    20. }
    21. })
    22. script>
    23. body>
    24. html>

     

     

    html 

     使用v-html指令用于输出html代码

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>htmlp>
    11. <div v-html="htmlstr">div>
    12. div>
    13. <script type="text/javascript">
    14. new Vue({
    15. el:'#app',
    16. data(){
    17. return {
    18. htmlstr:'

      html片段

      '
    19. }
    20. }
    21. })
    22. script>
    23. body>
    24. html>

     

     

    vue属性

    HTML属性中的值应使用v-bind指令

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>v-bind 属性绑定p>
    11. <input value="值" />
    12. <input v-bind:value="valuestr" />
    13. div>
    14. <script type="text/javascript">
    15. new Vue({
    16. el:'#app',
    17. data(){
    18. return {
    19. msg:'hellow vue',
    20. htmlstr:'

      html片段

      '
      ,
    21. valuestr:'vue值'
    22. }
    23. }
    24. })
    25. script>
    26. body>
    27. html>

     

     

    class绑定

    使用方式:v-bind:class="a"

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. <style>
    8. .a{
    9. color:pink;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <div id="app">
    15. <span :class="classStr">文本内容span>
    16. div>
    17. <script type="text/javascript">
    18. new Vue({
    19. el:'#app',
    20. data(){
    21. return {
    22. classStr:'a'
    23. }
    24. }
    25. })
    26. script>
    27. body>
    28. html>

     

     

     表达式

     Vue提供了完全的JavaScript表达式支持

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8" />
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. <style>
    8. .a{
    9. color:pink;
    10. }
    11. style>
    12. head>
    13. <body>
    14. <div id="app">
    15. <p>vue中可以对变量的进行二次处理p>
    16. {{str.substring(0,4)}}<br />
    17. {{num+4}}<br />
    18. {{ok?'1':'0'}}<br />
    19. <span :id="idstr+'id'">书籍信息span>
    20. <span :class="classStr">文本内容span>
    21. div>
    22. <script type="text/javascript">
    23. new Vue({
    24. el:'#app',
    25. data(){
    26. return {
    27. str:'hello world',
    28. num:6,
    29. ok:false,
    30. idstr:'book_',
    31. classStr:'a'
    32. }
    33. }
    34. })
    35. script>
    36. body>
    37. html>

     

     

    二、指令

    指的是带有“v-”前缀的特殊属性

     核心指令

    v-if|v-else|v-else-if:根据其后表达式的bool值进行判断是否渲染该元素

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    6. <title>title>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>v-ifp>
    11. 请输入分数:<input v-model="score" />
    12. 对应的结果:
    13. <span v-if="score<60">不及格span>
    14. <span v-else-if="score<70">合格span>
    15. <span v-else-if="score<80">span>
    16. <span v-else-if="score<90">优秀span>
    17. <span v-else-if="score<=100">优+span>
    18. <span v-else="">输入不合法span>
    19. div>
    20. body>
    21. <script type="text/javascript">
    22. new Vue({
    23. el:'#app',
    24. data(){
    25. return{
    26. score:0
    27. }
    28. }
    29. })
    30. script>
    31. html>

     

     v-show:与v-if类似,只是会渲染其身后表达式为false的元素,而且会给这样的元素添加css代码:style="display:none"

    v-for:类似JS的遍历

     遍历数组: v-for="item in items", items是数组,item为数组中的数组元素

    遍历对象: v-for="(value,key,index) in stu", value属性值,key属性名,index下标

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    6. <title>title>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>v-forp>
    11. <select>
    12. <option v-for="l in likes" :value="l.id">{{l.name}}option>
    13. select>
    14. <br />
    15. <div v-for="l in likes">
    16. <input type="checkbox" :value="l.id" />{{l.name}}
    17. div>
    18. div>
    19. body>
    20. <script type="text/javascript">
    21. new Vue({
    22. el:'#app',
    23. data(){
    24. return{
    25. likes:[
    26. {id:1,name:'军旗'},
    27. {id:1,name:'桌球'},
    28. {id:1,name:'乒乓球'},
    29. {id:1,name:'篮球'}
    30. ]
    31. }
    32. }
    33. })
    34. script>
    35. html>

     

     

     

    v-bind

    v-on

     v-model:用来在 input、select、textarea、checkbox、radio 等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定的元素的值  

    v-for/v-model一起绑定[多选]复选框和单选框 

    三、过滤器

    全局过滤器

    1. Vue.filter('filterName', function (value) {
    2. // value 表示要过滤的内容
    3. });

    局部过滤器 

    1. new Vue({
    2. filters:{'filterName':function(value){}}
    3. });

     

     

    四、计算属性&监听器

    计算属性

    计算属性可用于快速计算视图(View)中显示的属性。这些计算将被缓存,并且只在需要时更新

    computed:{}

    监听属性

    监听属性 watch,我们可以通过 watch 来响应数据的变化

    watch:{}

    1. html>
    2. <html>
    3. <head>
    4. <meta charset="utf-8">
    5. <title>title>
    6. <script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.10/vue.js">script>
    7. head>
    8. <body>
    9. <div id="app">
    10. <p>计算属性p>
    11. <table border="1" style="width: 600px;height: 300px;">
    12. <tr>
    13. <td>物品td>
    14. <td>单价td>
    15. <td>数量td>
    16. <td>小计td>
    17. tr>
    18. <tr>
    19. <td>帽子td>
    20. <td>{{maoziDanjia}}td>
    21. <td>
    22. <input v-model="maozi" />
    23. td>
    24. <td>
    25. {{maoziTotal}}
    26. td>
    27. tr>
    28. <tr>
    29. <td>衣服td>
    30. <td>{{yifuDanjia}}td>
    31. <td>
    32. <input v-model="yifu" />
    33. td>
    34. <td>
    35. {{yifuTotal}}
    36. td>
    37. tr>
    38. <tr>
    39. <td>裤子td>
    40. <td>{{kuziDanjia}}td>
    41. <td>
    42. <input v-model="kuzi" />
    43. td>
    44. <td>
    45. {{kuziTotal}}
    46. td>
    47. tr>
    48. <tr>
    49. <td>总价td>
    50. <td colspan="3">{{total}}td>
    51. tr>
    52. table>
    53. <p>监听属性p>
    54. 千米:<input v-model="km" />
    55. 米:<input v-model="m" />
    56. div>
    57. body>
    58. <script type="text/javascript">
    59. // 全局过滤器
    60. Vue.filter('all', function(value) {
    61. return value.substring(1, 4);
    62. });
    63. // 绑定边界 ES6具体体现
    64. new Vue({
    65. el: '#app',
    66. data() {
    67. return {
    68. maoziDanjia:10,
    69. yifuDanjia:30,
    70. kuziDanjia:20,
    71. maozi:1,
    72. yifu:1,
    73. kuzi:1,
    74. km:2,
    75. m:2000
    76. };
    77. },
    78. methods: {
    79. handle() {
    80. alert("触发事件");
    81. }
    82. },
    83. computed:{
    84. maoziTotal(){
    85. return this.maoziDanjia*this.maozi;
    86. },
    87. yifuTotal(){
    88. return this.yifuDanjia*this.yifu;
    89. },
    90. kuziTotal(){
    91. return this.kuziDanjia*this.kuzi;
    92. },
    93. total(){
    94. return this.maoziTotal+this.yifuTotal+this.kuziTotal;
    95. }
    96. },
    97. watch:{
    98. // v指的是m变量
    99. m: function(v){
    100. this.km = parseInt(v)/1000;
    101. },
    102. // v指的是km变量
    103. km: function(v){
    104. this.m = parseInt(v)*1000;
    105. }
    106. }
    107. })
    108. script>
    109. html>

     

     

  • 相关阅读:
    【C语言经典100例题-66】(用指针解决)输入3个数a,b,c,按大小顺序输出。
    C语言 深度探究C语言中的函数
    python视频帧转图像
    如何学习Arduino单片机
    PMI-ACP(103:57- 103)
    Linux调试器-gdb使用
    U9二次开发之补丁制作
    RPC远程调用框架Dubbo
    PMP刷题小结
    Vue插槽
  • 原文地址:https://blog.csdn.net/m12120426/article/details/126666868