引言

微信小程序开发跟普通前端网页开发很像很像,都有三剑客htmlcss、JavaScript),但小程序也有一些它的特点。如果之前有了一些前端的基础,那小程序上手会非常快,如果没有,也没关系,下面会从零开始教你搭建一个简单实用的备忘录程序奔着一个目标结果学习,才是最高效的学习方法
如果想了解提前了解一下htmlcss欢迎康康我的文章高效入门html5高效入门css3
如果想快速体验效果app.jsonwxmlwxss、js 文件的源码下面已经给出,粘贴小程序就可以
在这里插入图片描述
以下所有内容基于 小程序官方文档个人开发经验。
 

第一步

申请一个小程账号

小程序账号注册 ,在这个网页注册自己账号后,进入 小程序后台查看记录自己AppID,有了这个你的小程序才能上线!在这里可以管理你的小程序的权限,如查看数据报表发布小程序等。
在这里插入图片描述

下载打开微信开发者工具

微信开发者工具就是开发小程序的IDE,当然也可以用VsCode,看个人习惯,新手开发者工具没毛病。 进入下面网页电脑配置下载相应安装包就行啦。
开发者工具下载
在这里插入图片描述
我们打开微信开发者工具
在这里插入图片描述
一个项目名,选一个目录,不使用服务模板选JavaScript-基础模板ok
 

第二步

小程基本文件介绍

三剑客

第三

页面创建

pages目录新建文件夹,命名为demo
在这里插入图片描述
demo文件夹下新建页,命名也是demo回车
在这里插入图片描述
直接自动生成 js、jsonwxmlwxss 四个基本文件,方便得不行!
在这里插入图片描述
有个更绝的方法进入app.json,在pages加入一个页面的地址直接生成名称的文件夹并包含四个基本文件。
在这里插入图片描述
pages/demo/demo往上移到第一位,再按一下编译发现小程序一开始进入的页面就变成了我们新建demo页,因为我们还没加代码,所以只显示一条默认地址,下面开搞!
在这里插入图片描述
在这里插入图片描述

app.json配置

我们可以看到app.json里面window代码如下
在这里插入图片描述
把它改为

"backgroundTextStyle": "dark",
"navigationBarBackgroundColor": "#f60",
"navigationBarTitleText": "第一个小程序",
"navigationBarTextStyle": "white"

编译发现上方显示栏变了,#f60是橙色
在这里插入图片描述

wxml文件配置

打开demo.wxml文件,会发现只有一条<text>pages/demo/demo.wxml</text>, 我们会发现页面中的确也只显示pages/demo/demo.wxml,试一下改动一下<view>…</view> 里面的内容,小程序页面就会显示相应内容。
实际上html文件,或wxml文件,由一个个标签< ></ >组成,标签之间就是内容,标签决定了整个页面的框架标签的种类非常多,只能在一步步学习中积累。放内容的标签可以理解容器wxml里分块容器<view> 和条状容器<text>。
要想使用逻辑,可以直接在标签里加两个双引号,如<text>{{ 10 + 20 }}</text>,页面会直接算出30.

<text>{{ 10 + 20 }}</text>  <!-- 注释-->

 

js文件配置

data: {
    mytext:"hhh",
    datalist:["111","222","333"]
},  /*注释*/

data中放的就是初始化数据,试一下放上上面的数据,在wxml中:
<view>{{ mytext }}</view> , 则 “hhh” 会被拿到并打印出来,所以双括号里还能放变量

试一下在wxml跑下面的代码:

<view wx:for="{{datalist}}"> 
    {{item}}--{{index}}
</view>

结果如下,它能把data定义datalist数组中所有数据打印出(动态数组遍历),我们的备忘录需要用到这个功能
在这里插入图片描述

wxss文件配置

每个标签可以定义一个class,如

<view class="hello"> hello </view>

这时这个hello就可以在css文件里定义样式
打开wxss

.hello{
    color:red;                         /*字体红色*/
	font-size:50px;                    /*字体大小为30像素*/
	background-color:lightblue;        /*背景为天蓝色*/
	text-align:center;                 /*居中显示*/
    }

发现hello变成了
在这里插入图片描述
也可以直接对view进行定义,这样所以的view标签都会被统一定义,class就会更灵活一点。

view{
    color:red;                         /*字体红色*/
	font-size:50px;                    /*字体大小为30像素*/
	background-color:lightblue;        /*背景为天蓝色*/
	text-align:center;                 /*居中显示*/
    }

注意!定义class样式需要前面加个小数点 . ,直接对标签操作则不需要
 

第四步

条件渲染 介绍

其实不是所有的逻辑都必须在js中定义,简单条件判断,如 if else, 可以在wxml中定义。
先在js文件的data加入

isCreated : true

然后在wxml中,加入

<view wx:if="{{isCreated}}">条件渲染if</view>
<view wx:else>条件渲染else</view>

编译,会发现 条件渲染if 被打印出,如果data中把 isCreated 改成 false,则 条件渲染else 被打印出,这就是条件渲染,选择性地显示内容
 

事件 介绍

就是按一下按键触发功能,我们叫为触发事件。我们先来创建一个按键,在wxml使用<button>标签:

<button type="primary" bindtap="handleTap">click</button>

type定义按键大小primary是正常,mini迷你bindtap=“handleTap” 把按键绑定到了一个叫 handleTap 触发事件,这个事件需要到js文件定义。
在这里插入图片描述
在js中,接着data新建一个函数 handleTap

 handleTap(){
        console.log("click")
    },

点一下编译,按一下按键发现终端打印出了click!点一下就打印一下,说明我们的事件触发功能成功
进阶一下,如果想要按一下就改变前面定义的mytext和isCreated变量怎么办easy

 handleTap(){
        console.log("click"),
        this.setData({
            mytext:"xiaoming",
            isCreated:!this.data.isCreated  //取反
        })
    },

需要注意,小程序里改变量的值必须得这么搞,直接mytext:。。。会报错
 

第五步

我们所需的基础知识已经介绍完啦,下面正式做备忘录

页面框架

先把你的wxml代码删掉,把下面这段代码粘贴进你的wxml里,编译,先看看结果,再解释

<view class="box">
    <input type="text" bindinput="handleInput" value="{{mytext}}"/>
    <button bindtap="handleAdd">add</button>
</view>

<view wx:if="{{datalist.length>0}}">
    <view wx:for="{{datalist}}" wx:key="index" class="list"> 
        <text>{{item}}</text>
        <button size="mini" bindtap="handleDelete" data-myid="{{index}}">delete</button>
    </view>
</view>

<view wx:else>空空如也</view>

在这里插入图片描述
结果应该长这样,add按键左边输入框,因为还没有css定义它的长度边框,所以看不见。从代码可以看出总共就三个大的view标签,其实功能上只有两个,下面两个组成一个条件渲染块。

第一个view标签里面包了一个<input> 标签(格式定义为输入文本绑定了一个input的事件,命名为 handleInput,就是输入框内容一旦变化就会触发最后value是定义初始化时输入框的内容)和一个<button> 标签(绑定了一个按键触发事件,命名为 handleAdd)。
下面的一大坨view里面看着很复杂其实easy啦。先条件判断一下datalist中有无数据,如果有数据(有备忘事件),就进入里面的view。

我们看到一个前面介绍过的 for 循环遍历datalist,并把里面每个数据都标上key就是wx:key=“index” 这句代码,方便之后对单独地数据进行操作(删除),当然为了在css中定义它的样式让它更好看点,给它定义一个class

再往里看,就是遍历出的每个数据,先以text标签装着数据,再在它后面跟上一个delete按键,在按键中,绑定了一个按键事件 handleDelete ,data-myid=”{{index}} 用于每个按键都带上一个id,跟前面让数据带上key是一样的道理,为了区别出每一个按键。

datalist里面没数据,就会在页面显示“空空如也” 哈哈哈 <view wx:else>空空如也</view> 应该很容易理解

页面美化

同上,把wxss里面代码删掉,将下面的代码粘贴进去。

input{
    border:1px solid black;
    height:50px;
    /*line-height: 50px;*/
    border-radius: 10px;
}

.box{
    display: flex;
    flex-direction: row;
}

.list{
    display: flex;
    flex-direction: row;
}


.list text{
    width: 150px;
}

在这里插入图片描述
加了wxss渲染页面后,整个页面看起来就符合标准了。代码其实大家看着应该就能懂,我再啰嗦几句。

input标签,border定义它的边框,厚1px(px是像素的意思,就是1个像素的厚度),height就是输入框高度borderradius定义了边框圆角

输入框加add按键我们希望它们并排在第一行,所以对它们整体所定义的box类就可以,flexdirection: row; 就是让他们排成一行,以flex单位自动拉伸,很方便。

list类的定义同理啦。

当然各位也可以再加上点颜色或调一下大小

逻辑设计

整个页面有了,下面加入灵魂!JavaScript。
将下面代码的粘贴进去js的Page里,注意,三个事件函数跟在data的后面,整体在Page里面,别把Page删了…

    data: {
        mytext:"",
        datalist:["111","222","333"]
    },

    handleInput(evt){
        //console.log("input",evt.detail.value),
        this.setData({
            mytext:evt.detail.value
        })

    },

    handleAdd(){
        console.log(this.data.mytext),
        this.setData({
            datalist:[...this.data.datalist,this.data.mytext],
            mytext:""
        })
    },

    handleDelete(evt){
        console.log("delete",evt.target.dataset.myid),

        this.data.datalist.splice(evt.target.dataset.myid, 1)
        this.setData({
            datalist:this.data.datalist
        })    
    },

编译一下康康,整个备忘录搞定啦!将备忘事件输入输入框,按add,事件会被添加进入然后delete删除对应的事件。

handleInput函数:定义为只要输入框内容变化,就把当时的值存进mytext变量,所以一顿操作后,mytext存储最后确定的备忘事件,然后等着add函数把它取出来。(evt调用参数,可以理解为当前页面)

handleAdd函数:先用console.log把mytext的值打印出来看一看对不对,然后我们用到前面介绍的改变量的值方法setData,将mytext的值(备忘事件)加入datalist数组里,但人家数组里面正常还有别的数据呀,怎么在后面加进去呢?[…this.data.datalist,this.data.mytext], 前面那三个点很重要,就是说不管datalist前面有多少值,我只在它后面插入一个mytext,同时将mytext变量清空等待下一个备忘事件输入
所以一按下add键,datalist就会多一个数据,所以wxml中循环遍历数组时就会多生成一个view标签和delete按键,在页面实时显示出来。(页面一直处于刷新状态,不是按下了按键才刷新

handleDelete函数:先将按下delete对应的id打印出来康康。下面来个高端操作,将数组中对应id的值删掉,同时后面的值往前移一位,一行代码搞定,this.data.datalist.splice(evt.target.dataset.myid, 1), 再将这个变化了的datalist保存ok

在这里插入图片描述

END

至此,这个备忘录讲完啦,这是作为小程序入门比较高效的小项目,如果想快速体验效果,app.json、wxml、wxss、js 文件的源码上面已经给出,粘贴进去就可以。
其实小程序的开发已经有很多很多的模板,比如商场、点餐等,改改数据就行,官方开放文档也很全,但还是要多动手。
之后可能会出更多有趣项目教学,如果想看其他计算机电子学习内容欢迎来我主页逛逛呀哈哈。

原文地址:https://blog.csdn.net/weixin_45116099/article/details/124506401

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_41672.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注