Vue3--基础语法使用

基础语法使用

1.Mustache差值语法

我们不仅通过在Vue.createApp()中使用template来渲染数据或者标签,而且可以把template省略不写,而是把数据写在根标签下,通过{{}}的形式

  <div id="app">

    <!-- 1.基本使用 -->
    <h2>{{ message }}</h2>
    <h2>当前计数: {{ counter }} </h2>

    <!-- 2.表达式 -->
    <h2>计数双倍: {{ counter * 2 }}</h2>

    <!-- 3.三元运算符 -->
    <h2>{{ age >= 18? "成年人": "未成年人" }}</h2>

    <!-- 4.调用methods中函数 -->
    <h2>{{ formatDate(time) }}</h2>

    <!-- 5.注意: 这里不能定义语句 -->
    <!-- <h2>{{ const name = "why" }}</h2> -->

  </div>
  
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      data: function() {
        return {
          message: "Hello Vue",
          counter: 100,
          age: 22,
          time: 123
        }
      },

      methods: {
        formatDate: function(date) {
          return "2022-10-10-" + date
        }
      }
    })

    // 2.挂载app
    app.mount("#app")

2.v-once

v-once用于指定元素或者组件只渲染一次
当数据发生变化时,元素或者组件以及其所有的子元素将视为静态内容并且跳过
该指令可以用于性能优化;

 <!-- 指令: v-once -->
    <h2 v-once>
      {{ message }}
      <span>数字: {{counter}}</span>
    </h2>

3.v-text

用于更新元素的 textContent

<div id="app">
    <h2> aa {{message}} bbb</h2>
    <h2 v-text="message">aaa</h2>
</div>

4.v-html

默认情况下,如果我们展示的内容本身是 html 的,那么vue并不会对其进行特殊的解析
如果我们希望这个内容被Vue可以解析出来,那么可以使用 v-html 来展示

<div id="app">
    <h2>{{ content }}</h2>
    <h2 v-html="content"></h2>
  </div>
  
  <script src="../lib/vue.js"></script>
  <script>
    // 1.创建app
    const app = Vue.createApp({
      data: function() {
        return {
          content: `<span style="color: red; font-size: 30px;">哈哈哈</span>`
        }
      },
    })

    // 2.挂载app
    app.mount("#app")

5.v-pre

v-pre用于跳过元素和它的子元素的编译过程,显示原始的Mustache标签
跳过不需要编译的节点,加快编译的速度

6.v-cloak

这个指令保持在元素上直到关联组件实例结束编译
和 CSS 规则如 [v-cloak] { display: none } 一起用时,这个指令可以隐藏未编译的 Mustache 标签直到组件实例准备完毕

<style>
    [v-cloak] {
      display: none;
    }
  </style>
</head>
<body>

  <div id="app">
    <h2 v-cloak>{{message}}</h2>
  </div>
  
  <script src="../lib/vue.js"></script>
  <script>
    
    setTimeout(() => {
      // 1.创建app
      const app = Vue.createApp({
        data: function() {
          return {
            message: "Hello Vue"
          }
        },
      })

      // 2.挂载app
      app.mount("#app")
    }, 3000)

7.v-memo

只有赋值的那个值发生改变 才会整体改变

 <div id="app">
      <div v-memo="[name]">
        <h2>年龄:{{age}}</h2>
      </div>
      <button @click="updateInfo">改变信息</button>
    </div>
    <script src="../lib/vue.js"></script>
    <script>
      const app = Vue.createApp({
        data: function () {
          return {
            age: 18,
          };
        },
        methods: {
          updateInfo() {
            this.age = 20;
          },
        },
      });
      app.mount("#app");

8.v-bind

一.v-bind用于绑定一个或多个属性值,或者向另一个组件传递props值
v-bind可以简写为:

      <!-- 绑定img的src属性 -->
      <img v-bind:src="showImagUrl" alt="" />
      <!-- 绑定a 的href属性 -->
      <a v-bind:href="href"></a>

二.v-bind绑定class属性
基本绑定

      <h2 :class="classes">Hello world</h2>

2动态class可以写对象语法
{key:value}
key :要绑定的class名
value: true/false

      <button :class="{active:isActive}" @click="btnClick">我是按钮</button>
      ...
      ...
      btnClick() {
            this.isActive = !this.isActive;
          },

3.动态绑定的class和普通的class是可以同时使用的

	  <button
        class="abc cba"
        :class="getDynamicClasses()"
        @click="btnClick">
      </button>

4.动态class可以使用数组语法

      <h2 :class="['abc' ,'cba']">Hello world</h2>
      <h2 :class="['abc' ,className]">Hello world</h2>
      <h2 :class="['abc' ,className,isActive?'active':'']">Hello world</h2>
      <h2 :class="['abc' ,className,{active:isActive}]">Hello world</h2>

三.v-bind绑定style

    <div id="app">
      <!-- 普通的html写法 -->
      <h2 style="color: red; font-size: 30px">哈哈哈</h2>
      <!-- style中的某些之 来自data中 -->
      <h2 v-bind:style="{color: fontColor, fontSize: fontSize + 'px'}">
				<!-- 动态绑定属性 属性是一个对象 -->
      <h2 :style="objStyle">
        哈哈哈
      </h2>
      <h2 :style="[objStyle,{backgroundColor:'purple'}]">嘿嘿</h2>
	</div>

    <script src="../lib/vue.js"></script>
    <script>
      const app = Vue.createApp({
        data: function () {
          return {
            fontColor: "blue",
            fontSize: 30,
            objStyle:{
            	fontSize:'50px',
            	color:'green'
            	}
          };
        },
      });
      app.mount("#app");
    </script>

四.v-bind绑定属性名

	<div id="app">
      <h2 :[name]="'aaa'">Hello world</h2>
    </div>

    <script src="../lib/vue.js"></script>
    <script>
      const app = Vue.createApp({
        data: function () {
          return {
            name: "class",
          };
        },
      });
      app.mount("#app");
    </script>

五.v-bind还可以直接绑定对象

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Vue3中使用vue-baidu-map的方法如下: 1. 首先,安装vue-baidu-map依赖包。可以通过npm或者yarn进行安装。 2. 在vue组件中引入BMap,并在mounted钩子函数中创建地图实例。注意,在Vue3中,需要使用import语法引入BMap,例如:import BMap from 'BMap'。 3. 在mounted钩子函数中,使用BMap创建地图实例,并设置地图的中心点和缩放级别。 4. 添加地图标注:使用BMap.Marker创建标注实例,并将其添加到地图上。 5. 可选地,添加信息窗口:使用BMap.InfoWindow创建信息窗口实例,并使用map.openInfoWindow()方法开启信息窗口。 6. 可选地,为标注添加点击事件,当点击标注时开启信息窗口。 以下是一个示例代码: ```html <template> <div class="map"> <div id="map"></div> </div> </template> <script> import BMap from 'BMap' export default { mounted() { const map = new BMap.Map('map') const point = new BMap.Point(118.750801, 31.944156) map.centerAndZoom(point, 15) const marker = new BMap.Marker(point) map.addOverlay(marker) const opts = { width: 100, height: 50 } const infoWindow = new BMap.InfoWindow('这里显示地址详细信息', opts) marker.addEventListener('click', function() { map.openInfoWindow(infoWindow, point) }) } } </script> ``` 以上代码展示了在Vue3中使用vue-baidu-map的基本流程。你需要根据自己的需求,在上述基础上进行进一步的定制和添加功能。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [vue3 使用百度地图,踩坑日历](https://blog.csdn.net/hjg1224/article/details/121241972)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [vue-baidu-map离线百度地图,并附带jar包免费下载百度瓦片数据](https://download.csdn.net/download/HZC961850356/82034496)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_聪明勇敢有力气

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值