• Vue 中一些常用的指令和用法及其一些案例


    目录

    ​编辑

    一,mustache 语法

    二,Vue  ——  v-for  指令

    数据绑定:就是将数据填充到网页中

    数据响应式:在网页控制台更改页面数据的过程就叫数据响应式 

    三,Vue  —— v-once 指令

     四,Vue —— 增减小案例​​​​​​​

     五,Vue  —— v-html  指令   

    六,Vue  —— v-text  指令

     七,Vue  —— v-pre 指令

    八,Vue  —— v-cloak 指令

     九,Vue——v-bind 指令



    一,mustache 语法

    • 使用“mustache” 语法 {{ msg }}(双花括号)
    • mustache 标签将会被替换为 data 对象上对应的 msg 属性的值。
    • 只要绑定的数据对象上的 msg 属性发生改变,插值内容也会随之更新。
    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <h2>{{fistname +'-'+lastname}}h2>
    13. div>
    14. <script>
    15. const vm = new Vue({
    16. el:'#app',
    17. data(){
    18. return{
    19. fistname:'李',
    20. lastname:'华'
    21. }
    22. }
    23. })
    24. script>
    25. body>
    26. html>

     注意:

    1. mustach语法 支持 js 的数据类型
    2. mustach语法 不支持 console.log 和 alert()

    二,Vue  ——  v-for  指令

            v-for有三个值:

            v-for="数组或对象中的每一个值      in/of      数组或对象本身"

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <div>{{list}}div>
    13. 直接写渲染的结果是['李华','小明','小丽']
    14. v-for有三个值:
    15. v-for="数组或对象中的每一个值 in/of 数组或对象本身"
    16. <div v-for="item in list">{{item}}div>
    17. <div v-for="item of obj">{{item}}div>
    18. <h2 v-for="(item,index) in list" :key="index"> {{item}} h2>
    19. 在将来的项目中写v-for是需要加上:key 他的值可以写索引最好写数据中的id值
    20. div>
    21. <script>
    22. const vm = new Vue({
    23. el: '#app',
    24. data() {
    25. return {
    26. list: ['李华', '小明', '小丽'],
    27. obj: {
    28. a: 1,
    29. b: 2,
    30. c: 3
    31. },
    32. obj2: [
    33. { id: 1, realname: '李华', age: 19 },
    34. { id: 2, realname: '小丽', age: 29 },
    35. { id: 3, realname: '小明', age: 11 },
    36. { id: 4, realname: '小红', age: 16 }
    37. ]
    38. }
    39. }
    40. })
    41. script>
    42. body>
    43. html>

    数据绑定:就是将数据填充到网页中

    数据响应式:在网页控制台更改页面数据的过程就叫数据响应式 

    三,Vue  —— v-once 指令

    不需要表达式

    只渲染元素和组件一次。 显示内容之后就不再具有响应式功能(无法用数据响应式更改网页数据)

    应用场景:如果显示的数据信息后续不需要再次修改,可以使用v-once,这样可以提高性能。

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. 普通插值
    13. <h2>{{msg}}h2>
    14. v-once 只渲染一次
    15. <h2 v-once>{{msg}}h2>
    16. div>
    17. <script>
    18. const vm = new Vue({
    19. el: '#app',
    20. data() {
    21. return {
    22. msg: '我是否会改变呢?'
    23. }
    24. }
    25. })
    26. script>
    27. body>
    28. html>

     四,Vue —— 增减小案例

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <button @click="add">+button>
    13. <h1>{{count}}h1>
    14. <button @click="sub">-button>
    15. div>
    16. body>
    17. <script>
    18. const vm = new Vue({
    19. el: '#app',
    20. data() {
    21. return {
    22. count: 0
    23. }
    24. },
    25. methods: {
    26. add() { //以后所有的方法都写在methods里面
    27. this.count++
    28. },
    29. sub() {
    30. this.count--
    31. }
    32. }
    33. })
    34. script>
    35. html>

    效果图:

     五,Vue  —— v-html  指令   

    作用:填充HTML片段  但是存在安全问题  可以再本网在内部数据使用,如果是来自第三方的数据不可用

    属于:数据绑定指令

    是 innerHTML 更新的新版 作用与innerHTML 类似

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. v-html 可以解析html格式, 与innerHTML用法相似
    13. <h2 v-html="url">h2>
    14. div>
    15. <script>
    16. const vm = new Vue({
    17. el:'#app',
    18. data(){
    19. return{
    20. url:""
    21. }
    22. }
    23. })
    24. script><a href="http://www.baidu.com">百度一下a>
    25. body>
    26. html>

    六,Vue  —— v-text  指令

    作用:填充纯文本 与插值表达式相比更加简洁

    属于  数据绑定指令

    没有 v-text属性的只会插入与msg对应的data数据 下例结果为  今天周几啊?周六

    有v-text 属性会覆盖标签内所有的内容与innerText很相似然后再插msg数据

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <h2>今天周几啊?{{msg}}h2>
    13. v-text指令 与 inntext的作用相似
    14. <h2 v-text="msg"> 今天周几啊? {{msg}} h2>
    15. div>
    16. <script>
    17. const vm = new Vue({
    18. el:'#app',
    19. data(){
    20. return{
    21. msg:"周六"
    22. }
    23. }
    24. })
    25. script>
    26. body>
    27. html>

     七,Vue  —— v-pre 指令

    跳过这个元素和它的子元素的编译过程。

    属于:数据绑定指令

    v-pre 可以用来显示原始 Mustache 标签跳过编译过(分析编译过程)

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>Documenttitle>
    8. <script src="../Vue/vue.js">script>
    9. head>
    10. <body>
    11. <div id="app">
    12. <h1>{{msg}}h1>
    13. <h1 v-pre>{{msg}}h1>
    14. div>
    15. body>
    16. <script>
    17. const vm = new Vue({
    18. el:'#app',
    19. data(){
    20. return{
    21. msg:'我直接都不渲染你气不气'
    22. }
    23. }
    24. })
    25. script>
    26. html>

    八,Vue  —— v-cloak 指令

     1, 提供样式

    1.             [v-cloak]{
    2.                display:none;
    3.                 }

     2,  在插值表达式所在的标签中添加 v-cloak指令 

     执行原理:先通过样式隐藏内容,然后在内存中进行值得更新,更新好之后在显示最终的结果

    主要是为了解决闪动问题

    1. html>
    2. <html lang="en">
    3. <head>
    4. <meta charset="UTF-8">
    5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
    6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
    7. <title>解决闪动的方法title>
    8. <script src="../Vue/vue.js">script>
    9. <style>
    10. [v-cloak] {
    11. display: none;
    12. }
    13. style>
    14. head>
    15. <body>
    16. <div id="app">
    17. <div v-cloak>{{msg}}div>
    18. div>
    19. <script>
    20. const vm = new Vue({
    21. el: '#app',
    22. data: {
    23. msg: '你是李四嘛?'
    24. }
    25. })
    26. script>
    27. body>
    28. html>

     

     九,Vue——v-bind 指令

    v-bind  可以简写成   :

    含义:

    class 与 style 是 HTML 元素的属性,用于设置元素的样式,我们可以用 v-bind 来设置样式属性。

    Vue.js v-bind 在处理 class 和 style 时, 专门增强了它。表达式的结果类型除了字符串之外,还可以是对象或数组。

    声明: 下篇文章将详细介绍  v-bind指令 用法及实操小案例 不要走开广告之后更加精彩哦!

  • 相关阅读:
    美国开源数据库ScyllaDB完成4300万美元融资
    recovery模式差分(增量)升级小结
    springdatajpa关键词查询
    NLG(自然语言生成)评估指标介绍
    [附源码]计算机毕业设计-中国传统手工艺销售平台Springboot程序
    矢量(vector)瓦片与栅格(raster)瓦片对比
    Flutter 完全手册
    leetcode:21. 合并两个有序链表
    WindowsNT下的OpenGL
    代码随想录 单调栈part3
  • 原文地址:https://blog.csdn.net/qq_52499703/article/details/126004327