avue 实现下拉框事件 自动填充其他框_Vue 模板语法、事件和表单使用

模板语法

  • 文本绑定,两个大括号,中间加上data里面的数据,message里面不仅可以是变量还可以是表达式
 
// 变量 {{ message }}
// 表达式 {{ number + 1}}
  • JS表达式(计算、拼接、只能是单个表达式)
  • 插入HTML代码(慎用!防止XSS攻击 ),我们可以直接在data里面定义html代码,但是它存在一个安全隐患,比如我们将下面的 dangerHTMl: "0085" 这句代码改变一下 dangerHTML: "0085" ,这时候的当我们点击时它执行了它里面的一个代码会弹出一个框,这是很危险的。像很多个XSS攻击就是用的这种方法,所以对于v-html我们还是要慎用。
0085"}
  • 绑定,把data里面的数据绑定到元素的属性上,最常见的就是id
91a78c039671de036d22a9c4899af56d.png

当data里面的数据改变时,它的Id也会随之改变。

changeId
​methods: { changeId: function() { this.id = 'newId'; }}
532a10d9349567bdf54079eb8854ed38.png

除了Id的绑定之外,还有其他的一些绑定:

  • v-bind:disabled => :disabled,一个元素的属性
  • 常用于表单,比如一些输入框,按钮,如下:这个时候的按钮就是一个不可点击的状态了。
changeId
f0d462b70c58ea465c4835ea93d8b680.png
  • v-bind:href 简写 :href,链接
  • v-on:click 简写 @click,点击

计算属性(缓存机制)

 data: { json: { key1: 1, key2: 2 } }, methods: { ... computed: { getJsonkey1: function() { return this.json.key1; } }, // 计算属性的缓存需要借助watch函数的监听 watch: { json: { handler: function(newVal,preVal){ console.log(JSON.stringify(preVal)); console.log(JSON.stringify(newVal)); }, deep: true, } } }

在vue里面监听json需要深度监听,因为它们是在同一个内存空间里面,地址是一样的。

这个时候打印出来的,我们会发现它们的新值和旧值都是一样的,这是由于它们是同一个内存地址我们访问时值已经改变。如果我们要改变两次的值不一样,那么我们需要用到计算属性里面的缓存。

比如先不监听json,而是监听getJsonkey1的方法,将watch的json变成getJsonkey1,这样的话我们就可以得到前后的两个值。

0736c9dfc97c495cb3602d3fc3d4a63d.png
d98d6b18906ea9f7111b3572b67fb18b.png

条件渲染

  • v-if,判断元素是否要渲染,会复用元素(不想复用需要添加key)
  • v-else-if
  • v-else
  • if else if else
testVIf: 'A',​ABchangeInputValuedata: { ... inputValue: 10805,}methods: { ... // 当我们点击按钮时,触发changeInputValue,实现累加 changeInputValue: function() { this.inputValue++; }}watch: { ... inputValue: function() { console.log(this.inputValue); }}
2f8f45836a061dfa6c8f775d79257860.png
c741e25cc9b328f7da215a047d92e020.png

复选框:

​data: { // 默认选中 checkboxValue: true}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用 Avue 的 `@change` 事件监听下拉框的选项变化,然后通过 JavaScript 代码自动填充其他。 具体实现步骤如下: 1. 在 Avue 表单定义需要联动下拉框和其他。 ```html <avue-form :model="formData" :config="formConfig"> <avue-form-item label="省份"> <avue-select v-model="formData.province" :options="provinceOptions" @change="handleProvinceChange"></avue-select> </avue-form-item> <avue-form-item label="城市"> <avue-select v-model="formData.city" :options="cityOptions" @change="handleCityChange"></avue-select> </avue-form-item> <avue-form-item label="县区"> <avue-select v-model="formData.county" :options="countyOptions"></avue-select> </avue-form-item> </avue-form> ``` 2. 在 Vue 实例定义联动数据和方法。 ```javascript export default { data() { return { // 省份选项数据 provinceOptions: [ { label: '北京市', value: '北京市' }, { label: '上海市', value: '上海市' }, { label: '广东省', value: '广东省' }, ], // 城市选项数据 cityOptions: [], // 县区选项数据 countyOptions: [], // 表单数据 formData: { province: '', city: '', county: '', }, }; }, methods: { // 省份变化时触发,更新城市选项数据 handleProvinceChange(value) { if (value === '北京市') { this.cityOptions = [ { label: '北京市', value: '北京市' }, { label: '北京市辖区', value: '北京市辖区' }, ]; } else if (value === '上海市') { this.cityOptions = [ { label: '上海市', value: '上海市' }, { label: '上海市辖区', value: '上海市辖区' }, ]; } else if (value === '广东省') { this.cityOptions = [ { label: '广州市', value: '广州市' }, { label: '深圳市', value: '深圳市' }, { label: '珠海市', value: '珠海市' }, ]; } else { this.cityOptions = []; } this.formData.city = ''; this.formData.county = ''; }, // 城市变化时触发,更新县区选项数据 handleCityChange(value) { if (value === '北京市' || value === '上海市') { this.countyOptions = [ { label: '东城区', value: '东城区' }, { label: '西城区', value: '西城区' }, { label: '崇明区', value: '崇明区' }, ]; } else if (value === '广州市') { this.countyOptions = [ { label: '天河区', value: '天河区' }, { label: '海珠区', value: '海珠区' }, { label: '番禺区', value: '番禺区' }, ]; } else if (value === '深圳市') { this.countyOptions = [ { label: '福田区', value: '福田区' }, { label: '罗湖区', value: '罗湖区' }, { label: '南山区', value: '南山区' }, ]; } else if (value === '珠海市') { this.countyOptions = [ { label: '香洲区', value: '香洲区' }, { label: '金湾区', value: '金湾区' }, { label: '斗门区', value: '斗门区' }, ]; } else { this.countyOptions = []; } this.formData.county = ''; }, }, }; ``` 3. 根据需求调用相应的方法即可实现简单的三级联动效果。 上述代码通过 `handleProvinceChange` 方法实现了当省份选项变化时更新城市选项数据,并重置城市和县区数据;通过 `handleCityChange` 方法实现了当城市选项变化时更新县区选项数据,并重置县区数据。在这两个方法,可以根据具体业务需求进行修改。 希望这个简单的示例可以帮助您实现 Avue 下拉框自动填充功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值