vue3---ref函数

  • 作用: 定义一个响应式的数据
  • 语法: const xxx = ref(initValue)
    • 创建一个包含响应式数据的引用对象(reference对象,简称ref对象)
    • JS中操作数据: xxx.value
    • 模板中读取数据: 不需要.value,直接:<div>{{xxx}}</div>
  • 备注:
    • 接收的数据可以是:基本类型、也可以是对象类型。
    • 基本类型的数据:响应式依靠的是类上的gettersetter完成的(object.defineProperty)
    • 对象类型的数据:内部 “ 求助 ” 了Vue3.0中的一个新函数—— reactive函数。
<template>
  <h1>个人信息</h1>
  <h2>姓名:{{ name }}</h2>
  <h2>年龄:{{ age }}</h2>
  <h3>岗位: {{ job.type }}</h3>
  <h3>薪资: {{ job.salary }}</h3>
  <button @click="changeInfo">修改信息</button>
</template>

<script>
import { ref } from 'vue'
export default {
  name: 'App',
  setup () {
    // 响应式数据需要借助ref
    // 通过ref定义的基本数据类型最后被封装成了一个实例对象RefImpl(defineProperty:getter、setter),所以修改的时候要修改属性的.value[在模版中不需要.vaule,框架帮助我们处理了])
    let name = ref('丫丫')
    let age = ref(24)
    // (通过ref定义的对象数据类型最后被封装成了一个代理对象Proxy,
    let job = ref({
      type: '前端开发',
      salary: '3k'
    })

    function changeInfo () {
      name.value = '美少女'
      age.value = 18
      job.value.type = 'ui设计师'
      job.value.salary = '30k'
    }

    return {
      name,
      age,
      job,
      changeInfo
    }
  }
}
</script>

 

### 如何安装或下载 `vue3-video-player` 插件 对于 Vue 3 的视频播放器插件,目前官方并没有直接提供名为 `vue3-video-player` 的插件。然而,可以考虑使用兼容 Vue 3 的第三方库或者手动迁移现有的 `vue-video-player` 到 Vue 3 中。 以下是实现方法: #### 方法一:寻找支持 Vue 3 的替代方案 可以通过 NPM 或 Yarn 下载其他社区开发的支持 Vue 3 的视频播放器插件。例如,`@videojs/player-vue` 是一个基于 Video.js 并支持 Vue 3 的组件[^6]。 执行以下命令来安装该插件: ```bash npm install @videojs/player-vue video.js ``` 在项目中引入并配置此插件的方法如下所示: ```javascript import { defineComponent } from &#39;vue&#39;; import &#39;@videojs/theme-classic/dist/index.css&#39;; // 引入样式文件 import PlayerVue from &#39;@videojs/player-vue&#39;; export default defineComponent({ components: { PlayerVue, }, }); ``` #### 方法二:尝试修改现有插件以适配 Vue 3 如果希望继续沿用 `vue-video-player`,则需要对其进行一些调整使其适应 Vue 3 的 Composition API 和新的生命周期钩子函数。具体操作包括但不限于更新依赖项以及修复潜在的不兼容问题。 首先卸载旧版本插件(如果有),再重新安装最新版可能已经迁移到 Vue 3 的分支上发布的包名如 `vue3-video-player-next` (假设存在)[^7]: ```bash npm uninstall vue-video-player npm install vue3-video-player-next --save ``` 接着按照新文档说明完成初始化设置,在入口文件 main.ts/main.js 添加必要的导入语句和全局注册指令: ```javascript import { createApp } from &#39;vue&#39;; import App from &#39;./App.vue&#39;; import VueVideoPlayerNext from &#39;vue3-video-player-next&#39;; import &#39;video.js/dist/video-js.css&#39;; import &#39;vue3-video-player-next/lib/custom-theme.css&#39;; const app = createApp(App); app.use(VueVideoPlayerNext); app.mount(&#39;#app&#39;); ``` 最后于模板部分定义好对应的 HTML 属性结构即可正常使用[^8]: ```html <template> <div id="example"> <video-player class="vjs-custom-skin" :options="playerOptions" ></video-player> </div> </template> <script lang="ts"> import { ref, Ref } from &#39;vue&#39;; export default { setup() { const playerOptions: Ref<any> = ref({ height: &#39;360&#39;, autoplay: false, muted: true, loop: false, preload: &#39;auto&#39;, language: &#39;en&#39;, aspectRatio: &#39;16:9&#39;, fluid: true, sources: [{ type: "video/mp4", src: "http://www.html5videoplayer.net/videos/madagascar3.mp4", // url 地址 }], }); return { playerOptions }; } }; </script> ``` --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值