在5种环境中编写点击元素改变内容和颜色的JavaScript程序

本文适合初学者。为了让初学者能融会贯通JavaScript、jQuery、Vue.js、微信小程序、React这5种JavaScript框架程序的编写,作者在这5种环境中编写了点击元素改变内容和颜色的JavaScript程序,请读者仔细体会在这5种环境中实现程序功能的异同点。

  1. JavaScript
html 复制代码
<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8">

<title>第一个JavaScript程序</title>

<script>

window.onload= function(){ //表示在网页载入完毕后执行函数

var demo = document.getElementById("demo");

demo.onclick=msg; } //调用函数,函数名不能加括号

function msg() {

alert ("Hello, the WEB world!");

this.innerHTML="你点击了我";

this.style.border="3px solid red";}

</script>

</head>

<body>

<p id="demo">Click Here</p> <!--通过事件调用函数 -->

</body>

</html>
  1. jQuery写法
html 复制代码
<html>

<body>

<script src="jquery.min.js"></script> <!--引入jQuery环境-->

<script>

$(document).ready(function() {

$("#demo").click(function(){ //页面载入后执行

$(this).html("你点击了我");

$("#demo").css("color","red");

$("#demo").css("textDecoration","underline");

});

});

</script>

<p id="demo">Click Here</p> <!--通过事件调用函数 -->

</body>

</html>

jQuery中的html()函数相当于JavaScript中的innerHTML函数,事件处理函数中的("#demo")都可以改写成(this)

  1. Vue的写法 index.vue
javascript 复制代码
<template>

<p id="demo" @click="msg" :style="{color:tip}">{{title}}</p>

</template>

<script>

export default {

data() {

return {

title: '这是我的第一个项目',

tip: 'black'

}

},

methods: {

msg: function() {

//alert("Hello, the WEB world!");

this.title = "你点击了我一次";

this.tip = this.tip === 'black' ? 'red' : 'black';

}

}

}

</script>

本例中的Vue采用的是Vue构建方式写法,如果采用引入vue.js方式,将export default替换成const { createApp } = Vue;

createApp(

即可。

  1. 微信小程序写法

index.wxml中

html 复制代码
<view bindtap="handle" style="color:{{color}}">

{{title}}

<image wx:if="{{flag}}" src="../images/haibao/62.jpg" data-flag="true"/>

<view>{{person.age}}</view>

</view>

index.js中

javascript 复制代码
Page({

data:{

id:1, title: '王船山简介', flag:true,color:'black',

person:{ name:"王船山", age:"1619年10月-1692年2月" }

},

handle: function(e){

wx.showToast({ title: '你点击了我', })

this.setData({

title:'王夫之故居',color:'red',flag:!e.target.dataset.flag})

}

})

总结:JavaScript涉及到DOM操作,获取DOM元素(网页元素),Vue不涉及获取DOM元素,Vue的插值表达式{{...}}只能用来绑定元素内容,绑定属性名要用:属性名形式。而微信小程序中的插值表达式{{...}}既能绑定元素内容又能绑定元素属性值。

  1. React

使用构建方式创建项目,在App.js文件中写如下代码:

javascript 复制代码
import {useState} from "react";

function App() {

const [data,setData]=useState({css:{color:'black'},title:"会变的图片"})

function handle(e){

setData({css:{color:'red'},title:"看到变化了吗"})

console.log('点击了',e)

}

return (

<>

<h2 id="tit" onClick={handle} style={data.css}>{data.title}</h2>

</>

);

}

export default App;

React中的插值表达式为{...},插值表达式既能绑定元素内容又能绑定元素属性值。绑定属性值时,注意{}外面不要写引号。CSS属性值要写成JSON对象的形式,不能写成字符串。

相关推荐
Tanjia_kiki4 小时前
谷歌浏览器中F12编辑并重发请求
开发语言·前端·javascript
honkun64 小时前
vue 表格组件 vxe-table 实现拖拽列字段自动生成透视表汇总
前端·javascript·vue.js
新中地GIS开发老师5 小时前
WebGIS开发入门 | 从 Web 开发到地图开发,差别在哪儿?
前端·vue·webgis
IMPYLH5 小时前
HTML 的 <p> 元素
前端·javascript·html
leoZ2315 小时前
第 4 篇:布局骨架——页面壳、栅格、卡片
前端·javascript·vue.js·opencv·计算机视觉·数据挖掘·语音识别
何以解忧,唯有..5 小时前
Vue 3 模板语法详解:从插值到指令的完整指南
前端·javascript·vue.js
EasyGBS5 小时前
从接入到稳定播放:无插件直播H5视频流媒体播放器EasyPlayer.js如何撑起Web端流媒体
开发语言·前端·javascript
Carl_奕然5 小时前
【智能体】Agent的四种设计模式之:React(2026最新版)
javascript·人工智能·python·react.js·设计模式·语言模型
名为沙丁鱼的猫7295 小时前
React/JSX 编码规范
前端·javascript·react.js