Vant 4官网例子使用与setup语法糖冲突解决方法

Barrage 弹幕 - Vant 4

例子:弹幕组件的使用

export default {
  setup() {
    const defaultList = [
      { id: 100, text: '轻量' },
      { id: 101, text: '可定制的' },
      { id: 102, text: '移动端' },
      { id: 103, text: 'Vue' },
      { id: 104, text: '组件库' },
      { id: 105, text: 'VantUI' },
      { id: 106, text: '666' },
    ];

    const list = ref([...defaultList]);
    const add = () => {
      list.value.push({ id: Math.random(), text: 'Barrage' });
    };

    return { list, add };
  },
};

官网的数据处理部分使用export暴露函数写的这与 setup语法糖有冲突。

<script setup>
</script>

 解决方案:

去除外层暴露函数及返回。

//原数据格式,官网提供。
export default {
  setup() {
    const defaultList = [
      { id: 100, text: '轻量' },
      { id: 101, text: '可定制的' },
      { id: 102, text: '移动端' },
      { id: 103, text: 'Vue' },
      { id: 104, text: '组件库' },
      { id: 105, text: 'VantUI' },
      { id: 106, text: '666' },
    ];

    const list = ref([...defaultList]);
    const add = () => {
      list.value.push({ id: Math.random(), text: 'Barrage' });
    };

    return { list, add };
  },

//处理后的,删除可以使用setup语法糖。
const defaultList = [
      { id: 100, text: '轻量' },
      { id: 101, text: '可定制的' },
      { id: 102, text: '移动端' },
      { id: 103, text: 'Vue' },
      { id: 104, text: '组件库' },
      { id: 105, text: 'VantUI' },
      { id: 106, text: '666' },
    ];

    const list = ref([...defaultList]);
    const add = () => {
      list.value.push({ id: Math.random(), text: 'Barrage' });
    };

 去除外层

export default {

setup() {

 return { list, add }; }, };

然后引用组件就可以愉快的玩耍了

<script setup>
const defaultList = [
      { id: 100, text: '轻量' },
      { id: 101, text: '可定制的' },
      { id: 102, text: '移动端' },
      { id: 103, text: 'Vue' },
      { id: 104, text: '组件库' },
      { id: 105, text: 'VantUI' },
      { id: 106, text: '666' },
    ];

    const list = ref([...defaultList]);
    const add = () => {
      list.value.push({ id: Math.random(), text: 'Barrage' });
    };
</script>
<template>
    <van-barrage v-model="list" ref="barrage" :auto-play="false">
  <div class="video" style="width: 100%; height: 150px"></div>
</van-barrage>
<van-space style="margin-top: 10px">
  <van-button @click="add" type="primary" size="small" :disabled="!isPlay">
    弹幕
  </van-button>
  <van-button @click="toggle()" size="small">
    {{ isPlay ? '暂停' : '开始' }}
  </van-button>
</van-space>
</template>

这个是轮播图的处理例子,其他带数据的组件都可以这样处理。

冲突的原因是setup语法糖已经帮我们对数据进行暴露处理了。

抱歉,作为AI语言模型,我无法提供完整的代码,但我可以提供一些指导。 首先,Vue3中的setup语法糖是用来替代Vue2中的选项API,它允许我们在组件中使用一些响应式数据、计算属性、方法等等。在setup函数中,我们可以使用Vue3提供的一些新API,例如ref、computed等等。 接下来,如果你要使用vant4来构建注册登录页面,你需要先安装vant4的相关组件库。在安装完成后,你可以在组件中使用vant4提供的一些组件,例如van-field、van-button等等。 下面是一个简单的注册登录页面的代码示例,仅供参考: ```html <template> <div> <van-field v-model="username" label="用户名" placeholder="请输入用户名"></van-field> <van-field v-model="password" label="密码" placeholder="请输入密码" type="password"></van-field> <<van-button type="primary" @click="login">登录</van-button> <van-button type="primary" @click="register">注册</van-button> </div> </template> <script> import { ref } from 'vue' import { Toast } from 'vant' export default { setup() { const username = ref('') const password = ref('') const login = () => { if (username.value === '' || password.value === '') { Toast('请输入用户名和密码') return } // 发送登录请求 } const register = () => { if (username.value === '' || password.value === '') { Toast('请输入用户名和密码') return } // 发送注册请求 } return { username, password, login, register } } } </script> ``` 在这个例子中,我们使用了van-field和van-button组件来创建输入框和按钮。在setup函数中,我们使用了ref函数来创建响应式的数据username和password,以及login和register方法来处理登录和注册操作。在登录和注册方法中,我们可以使用vant4提供的Toast组件来显示提示信息。 当然,这只是一个简单的例子,实际上在注册登录页面中,还需要处理表单验证、调用API接口等等。希望这个例子能够帮助你更好地理解Vue3的setup语法糖vant4使用
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值