使用vue的set up语法糖制作一个杨辉三角,要求有一个输入框,用户可以通过输入框输入层数,网页端可以实现对应层数的杨辉三角
时间: 2024-05-14 18:13:23 浏览: 83
vue.js实现只能输入数字的输入框
5星 · 资源好评率100%
好的,这个问题很好,让我来为您解答。
您可以使用 Vue 的 setup 语法糖以及一个输入框来制作杨辉三角,首先,我们需要先创建一个输入框,用于用户输入层数:
```
<template>
<div>
<label>请输入杨辉三角的层数:</label>
<input type="number" v-model="row">
</div>
</template>
```
接着,在 setup 函数中,我们可以监听 row 变量的变化,并且根据用户输入的层数计算出杨辉三角的每一行,并且存储在一个二维数组中:
```
<script>
export default {
setup() {
const row = Vue.ref(0)
const result = Vue.ref([])
Vue.watch(row, (val) => {
const triangle = []
for (let i = 0; i < val; i++) {
const row = []
for (let j = 0; j <= i; j++) {
if (j == 0 || j == i) {
row.push(1)
} else {
row.push(triangle[i - 1][j - 1] + triangle[i - 1][j])
}
}
triangle.push(row)
}
result.value = triangle
})
return {
row,
result,
}
},
}
</script>
```
最后,我们需要在页面上显示这个二维数组,可以使用 v-for 循环遍历每一行,然后在每一行中使用 v-for 循环遍历每个数字:
```
<template>
<div>
<label>请输入杨辉三角的层数:</label>
<input type="number" v-model="row">
<div v-if="result.length > 0">
<div v-for="(row, index) in result" :key="index">
<span v-for="(num, j) in row" :key="j">{{ num }} </span>
</div>
</div>
</div>
</template>
```
这样,一个能够根据用户输入的层数生成对应杨辉三角的 Vue 组件就完成了!
阅读全文