• v-bind指令的详细介绍


    前言

    在上篇文章 http://t.csdn.cn/YdkSQ
    已经介绍了v-bind的指令相关内容了,本篇文章将详细介绍v-bind指令的 用法及其应用场景

    一,属性绑定

    1,v-bind指令的用法

    <a v-bind:href='url'>跳转a>

    简写:

    <a :href='url'>跳转a>

    注意:在工作的时候一般推荐使用简写方式

    代码展示:

    当点击默认情况下跳转百度,点击切换地址之后默认地址发生改变,再次点击百度时会跳转到腾讯官网

    1. <body>
    2. <div id="app">
    3. <a v-bind:href="url">百度a>
    4. <button v-on:click="change">点击切换地址button>
    5. div>
    6. <script src="../Vue/vue.js">script>
    7. <script>
    8. const vm = new Vue({
    9. el: "#app",
    10. data() {
    11. return {
    12. url: 'http://www.baidu.com'
    13. }
    14. },
    15. methods: {
    16. //修改URL地址
    17. change() {
    18. this.url = "http://www.qq.com"
    19. }
    20. }
    21. })
    22. script>
    23. body>

     效果图

    2,v-bind指令利用input事件实现双向绑定

    第一种写法

            <input type="text" :value="msg" v-on:input="changes">

    第二种写法

            <input type="text" :value="msg" v-on:input="msg=$event.target.value">

    第三种写法 直接使用v-model指令写

            <input type="text" v-model="msg">

    以上三种写法的实现效果都是一样的,前两中写法解释了v-model的基层运行原理

    全部代码展示:

    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>{{msg}}div>
    13. <input type="text" :value="msg" v-on:input="changes">
    14. <input type="text" :value="msg" v-on:input="msg=$event.target.value">
    15. <input type="text" v-model="msg">
    16. div>
    17. <script>
    18. const vm = new Vue({
    19. el: '#app',
    20. data() {
    21. return {
    22. msg: '你好,李焕英'
    23. }
    24. },
    25. methods: {
    26. changes: function (event) {
    27. //使用输入域中最新的数据覆盖原来的数据
    28. this.msg = event.target.value;
    29. }
    30. }
    31. })
    32. script>
    33. body>
    34. html>

    效果图

    二,样式绑定

    1,class样式绑定

            ①对象形式

    对象一般由键值对组成,我们一般用带is前缀的表示属性  is前缀的用来控制类名是否显示  一般情况下is表示一个标记位有两种情况一个是 true另一个是 false

    <div v-bind:class="{active:isActive}">div>

    多个类名添加

    在后面用逗号隔开添加就行

            <div v-bind:class="{ active : isActive,active2:isActive2}">div>

    代码展示

    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. <style>
    10. .active {
    11. background-color: brown;
    12. width: 100px;
    13. height: 100px;
    14. }
    15. /* 第二个类名 */
    16. .active2{
    17. border: 5px solid black;
    18. width: 100px;
    19. height: 100px;
    20. }
    21. style>
    22. head>
    23. <body>
    24. <div id="app">
    25. <div v-bind:class="{ active : isActive,active2:isActive2}">div>
    26. <button v-on:click="changes">切换button>
    27. div>
    28. <script>
    29. const vm = new Vue({
    30. el: '#app',
    31. data() {
    32. return {
    33. isActive: true,
    34. // isActive的值为true时页面展示class的效果
    35. isActive2:true
    36. }
    37. },
    38. methods: {
    39. changes: function () {
    40. // 控制isActive的值在true和false之间来回切换
    41. this.isActive = !this.isActive
    42. this.isActive2 = !this.isActive2
    43. }
    44. }
    45. })
    46. script>
    47. body>
    48. html>

    效果图

    ②数组形式

    首先需要定义相关的属性名 属性的值表示的是实际的类名

    如果想要添加多个类名,可以用逗号隔开在后面加

    <div v-bind:class="[activeClass,active2Class]">div>

    2,style样式绑定

          ①对象形式

    对象中可以加许多属性

            <div v-bind:style="{border:borderStyle,width:widthStyle,height:heightStyle}">div>
    

        简写可视模板阅读性强 ,且美观

            <div v-bind:style="objStyle">简写div>
    

    全部代码

    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 v-bind:style="{border:borderStyle,width:widthStyle,height:heightStyle}">div>
    13. <button v-on:click="changes">切换button>
    14. <div v-bind:style="objStyle">简写div>
    15. div>
    16. body>
    17. <script>
    18. var vm = new Vue({
    19. el: '#app',
    20. data() {
    21. return {
    22. borderStyle: '1px solid blue',
    23. widthStyle: '100px',
    24. heightStyle: '200px',
    25. // 简写代码块-----------------------------------------
    26. objStyle: {
    27. border: '1px solid blue',
    28. width: '300px',
    29. height: '300px'
    30. }
    31. // -------------------------------------------
    32. }
    33. },
    34. methods: {
    35. changes: function () {
    36. this.heightStyle = '100px'
    37. }
    38. }
    39. })
    40. script>
    41. html>

    效果图

     ②数组形式

    通过简写的方法可以放多个 属性

    <div v-bind:style="[objStyle,overrideStyles]">div>

    全部代码

    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 v-bind:style="[objStyle, overrideStyles]">div>
    13. div>
    14. body>
    15. <script>
    16. var vm = new Vue({
    17. el: '#app',
    18. data() {
    19. return {
    20. // borderStyle: '1px solid blue',
    21. // widthStyle: '100px',
    22. // heightStyle: '200px',
    23. // 简写代码块-----------------------------------------
    24. objStyle: {
    25. border: '1px solid blue',
    26. width: '300px',
    27. height: '300px'
    28. },
    29. // -------------------------------------------
    30. overrideStyles:{
    31. border:'5px solid orange',
    32. backgroundColor:'blue'
    33. }
    34. }
    35. },
    36. methods: {
    37. changes: function () {
    38. this.heightStyle = '100px';
    39. this.objStyle.width = '100px'
    40. }
    41. }
    42. })
    43. script>
    44. html>

     

  • 相关阅读:
    【OpenWrt】N1刷机过程及旁路由设置(通用)
    vue项目中常用正则大全
    React 高阶组件 和 受控组件
    低代码平台选型时,要注意哪些?
    Redis的持久化之RDB和AOF
    不小心按到键盘上的按键突然这个网没办法进入
    Updating FreeBSD repository catalogue...
    windows 2003、2008远程直接关闭远程后设置自动注销会话
    resvr.exe 电脑病毒清理
    基于JAVA小说阅读网站计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  • 原文地址:https://blog.csdn.net/qq_52499703/article/details/126007130