uni-app轻松入门-2自定义组件-传值-跳转-请求

简介: 1.写着写着发现一篇文章太长了,那就分开2篇文章吧

1.前言


1.写着写着发现一篇文章太长了,那就分开2篇文章吧


2. 自定义组件


uni_moduls 里面

以常见的新闻为例

_6AOU8UZN5029XPA1E5X31M.png



3. 一步一步操作 组件内编写组件


模板就是 h1 标题 div 内容


<template>
    <view class="">
        <h1>{{title}}</h1>
        <div>{{content}}</div>
    </view>
</template>
<script>
export default{
        props:{
            title:{
                type:String,
                default:""
            },
            content:{
                type:String,
                default:""
            }
        },
        data(){
            return{
            }
        }
    }



4. 使用 引入 ,组件配置


pages/index/index.vue

引入


import  yzsNews from '@/uni_modules/yzs-news/components/yzs-news/yzs-news.vue'

使用


<yzs-news title="消防演练" content="生命第一"></yzs-news>



5. 组件内事件传递



<h1 @tap="tap1">{{title}}</h1>

方法


methods:{
        tap1(){
             console.log("调用了")
             this.$emit("changeTitle",this.title)
         }}

$emit  vue的用法


6. 父组件


使用


<yzs-news title="消防演练" content="生命第一"
        @changeTitle="change"
        ></yzs-news>

实现方法


methods: {
            change(e){
// e就是传的参数
                console.log("tap-父:",e)
            }
        },



7.请求



onLoad() {
            uni.showLoading({
                title:"加载中..."
            })
            uni.request({
                url: 'https://unidemo.dcloud.net.cn/api/news',
                method: 'GET',
                data: {},
                success: res => {
                    console.log("res:",res)
                    this.newsList = res.data
                },
                fail: () => {},
                complete: () => {
                    uni.hideLoading()
                }
            });
        },



8.模板结构


书接上文 安装过 这个uni-list插件

这里没有用云服务,所以用最简单的插件来讲解


<uni-list>
            <uni-list-item  v-for="(item, index) in newsList"
            :key="item.id"
             :title="item.title" 
             :note="item.summary" 
             :thumb="item.author_avatar"
             thumb-size="lg" 
             :rightText="item.author_name"           
             ></uni-list-item>
        </uni-list>



9. 跳转方式


跳转2种方式 一种是 标签


<navigator url=""></navigator>

一种是js 逻辑

按钮


<button type="default"  @tap="goToDetail" data-newsid="sss">跳转</button>

传参 通过data-xx

其实uni-app就是vue的语法 小程序的API

所以这种写法就很熟悉

跳转逻辑


goToDetail(e){
                console.log("e2",e.currentTarget)
                let {newsid} = e.currentTarget.dataset
                uni.navigateTo({
                    url: '../detail/detail?newsid='+newsid
                });
            }

当然详情页肯定需要自己新建的

直接在pages 右键 新建页面就行


10.具体到我这个项目


你发现标签不好使

用js跳转但是传值麻烦


<uni-list-item  v-for="(item, index) in newsList"
            :key="item.id"
             :title="item.title" 
             :note="item.summary" 
             :thumb="item.author_avatar"
             thumb-size="lg" 
             :rightText="item.author_name"
             clickable  
            link :to="'/pages/detail/detail?newsid='+item.post_id"
             ></uni-list-item>

1.这个第三方的组件需要设置clickable熟悉为true才可以触发点击事件

2.这个参数不能通过data-xx的形式传递

3.link会自带一些样式,也可以设置跳转方式


11.获取路由传参值


不管哪种方式,获取参数都一样

我这里detail.vue


onLoad(e) {
            console.log("详情页",e)
}


根据传过来的id发请求


uni.request({
                url: 'https://unidemo.dcloud.net.cn/api/news/36kr/'+e.newsid,
                method: 'GET',
                data: {},
                success: res => {
                    let {title,content} = res.data
                    console.log("详情res:",res)
                    this.title = title 
                    this.content = content 
                },
                fail: () => {},
                complete: () => {}
            });



12.rich-text


返回的报文有 标签结构 不能用 view来展示

rich-text组件  属性 nodes,值 为数组或者字符串


<template>
    <view>
        <view class="">
            {{title}}
        </view>
        <!-- 节点 -->
        <rich-text :nodes="content"></rich-text>
    </view>
</template>

这个2个接口平常也可以玩




相关文章
|
人工智能 JSON 小程序
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。
|
8月前
|
JSON 自然语言处理 数据格式
使用Tabs选项卡组件快速搭建鸿蒙APP框架
ArkUI提供了很多布局组件,其中Tabs选项卡组件可以用于快速搭建鸿蒙APP框架,本文通过案例研究Tabs构建鸿蒙原生应用框架的方法和步骤。
556 5
使用Tabs选项卡组件快速搭建鸿蒙APP框架
|
12月前
|
Android开发 数据安全/隐私保护 开发者
Android自定义view之模仿登录界面文本输入框(华为云APP)
本文介绍了一款自定义输入框的实现,包含静态效果、hint值浮动动画及功能扩展。通过组合多个控件完成界面布局,使用TranslateAnimation与AlphaAnimation实现hint文字上下浮动效果,支持密码加密解密显示、去除键盘回车空格输入、光标定位等功能。代码基于Android平台,提供完整源码与attrs配置,方便复用与定制。希望对开发者有所帮助。
241 0
|
7月前
|
人工智能 小程序 搜索推荐
【一步步开发AI运动APP】十二、自定义扩展新运动项目2
本文介绍如何基于uni-app运动识别插件实现“双手并举”自定义扩展运动,涵盖动作拆解、姿态检测规则构建及运动分析器代码实现,助力开发者打造个性化AI运动APP。
|
前端开发 安全 开发工具
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
995 90
【11】flutter进行了聊天页面的开发-增加了即时通讯聊天的整体页面和组件-切换-朋友-陌生人-vip开通详细页面-即时通讯sdk准备-直播sdk准备-即时通讯有无UI集成的区别介绍-开发完整的社交APP-前端客户端开发+数据联调|以优雅草商业项目为例做开发-flutter开发-全流程-商业应用级实战开发-优雅草Alex
|
人工智能 小程序 API
【一步步开发AI运动APP】九、自定义姿态动作识别检测——之关键点追踪
本文介绍了【一步步开发AI运动APP】系列中的关键点追踪技术。此前分享的系列博文助力开发者打造了多种AI健身场景的小程序,而新系列将聚焦性能更优的AI运动APP开发。文章重点讲解了“关键点位变化追踪”能力,适用于动态运动(如跳跃)分析,弥补了静态姿态检测的不足。通过`pose-calc`插件,开发者可设置关键点(如鼻子)、追踪方向(X或Y轴)及变化幅度。示例代码展示了如何在`uni-app`框架中使用`createPointTracker`实现关键点追踪,并结合人体识别结果完成动态分析。具体实现可参考文档与Demo示例。
|
11月前
《仿盒马》app开发技术分享-- 积分页组件新增(64)
上一节我们创建了积分页,给页面添加了标题栏和积分展示的组件。这一节我们继续丰富积分页的内容,添加引导栏,积分明细展示等区域
188 0
|
11月前
《仿盒马》app开发技术分享-- 自定义标题栏&商品详情初探(9)
上一节我们实现了顶部toolbar的地址选择,会员码展示,首页的静态页面就先告一段落,这节我们来实现商品列表item的点击传值、自定义标题栏。
130 0
|
人工智能 小程序 API
【一步步开发AI运动APP】四、使用相机组件抽帧
本文介绍了如何使用`ai-camera`组件开发AI运动APP,助力开发者深耕AI运动领域。`ai-camera`是专为AI运动场景设计的相机组件,支持多平台,提供更强的抽帧处理能力和API。文章详细讲解了获取相机上下文、执行抽帧操作以及将帧保存到相册的功能实现,并附有代码示例。无论是AI运动APP还是其他场景,该组件都能满足预览、拍照、抽帧等需求。下篇将聚焦人体识别检测,敬请期待!
|
开发框架 缓存 搜索推荐
PiliPala:开源项目真香,B站用户狂喜!这个开源APP竟能自定义主题+去广告?PiliPala隐藏功能大揭秘
嗨,大家好,我是小华同学。PiliPala 是一个基于 Flutter 开发的 BiliBili 第三方客户端,提供流畅、个性化的使用体验。核心功能包括视频浏览与推荐、用户互动、丰富的播放设置、多维度搜索和个性化主题等。相比官方客户端,PiliPala 功能更丰富、性能更优、界面更美观。
1067 14