Vue3+TypeScript学习笔记(二十一)

简介: 本节记录在Vue3中使用TSX相关的内容(简单过一遍,如需深入可阅读官方文档或搜索其他文章)

App.tsx

// 第一种:直接返回一个函数
     export default function(){
         return (<div>小满</div>)
     }


      // 第二种:返回一个渲染函数
       import { defineComponent } from 'vue'


       export default defineComponent({
        data() {
            return {
                age: 23,
            }
        },
        render() {
      //  使用单花括号
            return <div>{this.age}</div>
        },
       })


      // 第三种:setup函数模式
      // optionsAPI
      // 返回一个渲染函数
      // v-show支持
      // ref template自动解包,tsx并不会 ref.value
      // v-if不支持 三元表达式代替
      // map代替v-for
      // v-bind {}代替
      // props emit
      // 插槽
      const A = (_:any,{slots}:any) => (<>
        <div>{slots.default ? slots.default() : '默认值'}</div>
        <div>{slots?.foo()}</div>
        </>)
      import { defineComponent } from 'vue'
      import { ref } from 'vue'
      interface Props {
        xiaoman?: String
      }
      export default defineComponent({
        props: {
          xiaoman: String,
        },
        emits: ['on-click'],
        setup(props: Props,{emit}) {
          const flag = ref(false)
          const message = [
            {
              name: '小满1',
            },
            {
              name: '小满2',
            },
            {
              name: '小满3',
            },
          ]
          let v = ref<string>('')
          const fn = (item:any) => {
            console.log('触发了',item)
            emit('on-click',item)
          }
          const slot = {
            default:() => (<div>小满default slots</div>),
              foo:() => (<div>小满foo slots</div>)
        }
        return () => (
        <>
        {/* 三元表达式 */}
        <div>{flag.value ? <div>true</div> : <div>false</div>}</div>
      {/* map方法:对数组中每一项元素进行处理并将返回结果封装成数组 */}
      {message.map(v => {
        return <div onClick={() => fn(v)}>{v.name}</div>
                   })}
      {/* props */}
      <div>{props.xiaoman}</div>
      {/* 插槽 */}
      <A v-slots={slot}></A>
      {/* v-model */}
      <input type="text" v-model={v.value} />
        <div>{v.value}</div>
        </>
      )
        },
        })


        // 第一种和第三种用得多,第二种用得少
相关文章
|
1天前
|
JavaScript 安全 开发者
Vue3 中对 TypeScript 的支持
Vue3 中对 TypeScript 的支持
|
13天前
|
JavaScript 安全 前端开发
Vue 3 中的 TypeScript
【6月更文挑战第15天】
22 6
|
11天前
|
JavaScript 安全 前端开发
TypeScript 基础学习笔记:interface 与 type 的异同
TypeScript 基础学习笔记:interface 与 type 的异同
11 0
|
11天前
|
JavaScript 安全 编译器
TypeScript 基础学习笔记:泛型 <T> vs 断言 as
TypeScript 基础学习笔记:泛型 <T> vs 断言 as
21 0
|
1月前
|
JavaScript 前端开发
TypeScript 学习笔记(六):TypeScript 与前端框架的结合应用
笔记,进一步提升 TypeScript 编程技能。
29 1
|
1月前
|
JavaScript 前端开发 开发者
类型检查:结合TypeScript和Vue进行开发
【4月更文挑战第24天】TypeScript是JavaScript超集,提供类型注解等特性,提升代码质量和可维护性。Vue.js是一款高效前端框架,两者结合优化开发体验。本文指导如何配置和使用TypeScript与Vue:安装TypeScript和Vue CLI,创建Vue项目时选择TypeScript支持,配置`tsconfig.json`,编写`.tsx`组件,最后运行和构建项目。这种结合有助于错误检查和提升开发效率。
|
1月前
|
JavaScript 前端开发 编译器
TypeScript 学习笔记
TypeScript 学习笔记
|
1月前
|
JavaScript 前端开发 开发者
Vue工具和生态系统: Vue.js和TypeScript可以一起使用吗?
【4月更文挑战第18天】Vue.js与TypeScript兼容,官方文档支持在Vue项目中集成TypeScript。TypeScript作为JavaScript超集,提供静态类型检查和面向对象编程,增强代码准确性和健壮性。使用TypeScript能提前发现潜在错误,提升代码可读性,支持接口和泛型,使数据结构和函数更灵活。然而,不是所有Vue插件都兼容TypeScript,可能需额外配置。推荐尝试在Vue项目中使用TypeScript以提升项目质量。
38 0
|
1月前
|
JavaScript 前端开发 数据可视化
前端开发使用 Vue 3 + TypeScript + Pinia + Element Plus + ECharts
前端开发使用 Vue 3 + TypeScript + Pinia + Element Plus + ECharts
70 0
|
1月前
|
JavaScript 前端开发
在Vue中使用TypeScript的常见问题有哪些?
在Vue中使用TypeScript的常见问题有哪些?
48 2