Vue3 setup tsx 子组件向父组件传值 emit

需求:Vue3 setup 父组件向子组件传值,子组件接收父组件传入的值;子组件向父组件传值,父组件接收的子组件传递的值。

父组件:parent.tsx

javascript 复制代码
import { defineComponent, ref, reactive } from 'vue';
import TotalPreview from './components/TotalPreview'

export default defineComponent({
  name: 'parent',
  components: { TotalPreview },
  setup() {
    const count = ref(123);
    const childNum = reactive({ num: 1 });
    const onChildClick = (val: any) => {
      childNum.num = val;
      console.log('childNum',childNum); // 打印子组件向父组件传递的值
    };
    return () => (
      <>
        <div>
          <h1>父组件接收的子组件传递的值:{childNum.num}</h1>
          <TotalPreview num={count.value} onNumClick={onChildClick} />
        </div>
      </>
    );
  },
});

子组件:TotalPreview.tsx

javascript 复制代码
import { defineComponent, ref } from 'vue';
import { Button } from 'ant-design-vue';

export default defineComponent({
  name: 'Child',
  props: { num: Number },
  emits: ["numClick"],
  setup(props, { emit }) {
    const parentNum = ref(props.num)
    const count = ref(1);
    const onclick = () => {
      count.value++
      // emit 子组件向父组件传值
      emit('numClick', count.value);
    }

    return () => (
      <div>
        <h1>{'父组件传递给子组件的值:'+parentNum.value}</h1>
        <h1>{'子组件显示count值:'+count.value}</h1>
        <Button onClick={onclick}>点击按钮改变子组件的值,并向父组件传值</Button>
      </div>
    );
  },
});

页面效果:

相关推荐
小盼江26 分钟前
水果生鲜农产品推荐系统 协同过滤余弦函数推荐水果生鲜农产品 Springboot Vue Element-UI前后端分离 代码+开发文档+视频教程
vue.js·spring boot·ui
祈澈菇凉1 小时前
如何结合使用thread-loader和cache-loader以获得最佳效果?
前端
垣宇1 小时前
Vite 和 Webpack 的区别和选择
前端·webpack·node.js
java1234_小锋1 小时前
一周学会Flask3 Python Web开发-客户端状态信息Cookie以及加密
前端·python·flask·flask3
化作繁星1 小时前
如何在 React 中测试高阶组件?
前端·javascript·react.js
初遇你时动了情1 小时前
react module.scss 避免全局冲突类似vue中scoped
vue.js·react.js·scss
Au_ust1 小时前
千峰React:函数组件使用(2)
前端·javascript·react.js
爱吃南瓜的北瓜1 小时前
npm install 卡在“sill idealTree buildDeps“
前端·npm·node.js
TTc_1 小时前
记录首次安装远古时代所需的运行环境成功npm install --save-dev node-sass
前端·npm·sass
翻滚吧键盘2 小时前
npm使用了代理,但是代理软件已经关闭导致创建失败
前端·npm·node.js