form layui vue 和_在vue中使用 layui框架中的form.render()无效解决办法

下面简单介绍在vue中使用 layui框架中的form.render()无效解决办法。

近期开发的项目中前端ui框架用的是Layui,数据渲染使用vue去渲染,当我用vue渲染表单控件的数据时,

会出现控件被禁用的情况,例如:select下拉等,于是去看文档,按照文档说的写了,结果然并卵,( ̄▽ ̄)"。

搞了半天都没搞好。然后在百度搜索了vue的相关文档后菜解决了问题。

首先觉一个例子,如下面的一段代码:

var newVue({

el:"#app",

data:{

items:null},

mounted:function() {this.details();//这是layui的方法

form.render();

},

methods:{

details:function(){var _self = this;

$.ajax获取数据成功后进行表单重载

form.render();

}

}

});

上述代码按理来说应该没什么问题啊,但是vue渲染数据成功后layui的表单控件就是不能用,why?(;′⌒`)。

然后百度啊,谷歌啊,各种搜索引擎,终于解决了问题,O(∩_∩)O。看下面,

Vue updated生命周期函数:由于数据更改导致的虚拟 DOM 重新渲染和打补丁,在这之后会调用该钩子。

无论是组件本身的数据变更,还是从父组件接收到的 props 或者从vuex里面拿到的数据有变更,都会触发虚拟 DOM 重新渲染和打补丁,并在之后调用 updated。

然后只需要在vue的updated里面重新再去走一下layui的表单重载就行了。

代码:

updated:function(){

layui.use(['form'], function(){

form.render();

}

}

就这样OK,完美解决。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个使用 Vue 前端框架创建登录和注册页面的简单示例。 首先,需要创建一个 Vue 项目。可以使用 Vue CLI 工具来创建: ```bash npm install -g @vue/cli vue create my-project cd my-project ``` 然后,在 `src` 目录下创建一个 `components` 文件夹,用于存放组件。 在 `components` 文件夹,创建两个组件:`LoginForm.vue` 和 `RegisterForm.vue`。 `LoginForm.vue` 组件模板: ```html <template> <form @submit.prevent="login"> <div> <label for="email">Email:</label> <input type="email" id="email" v-model="email" required> </div> <div> <label for="password">Password:</label> <input type="password" id="password" v-model="password" required> </div> <button type="submit">Login</button> </form> </template> <script> export default { data() { return { email: '', password: '' } }, methods: { login() { // TODO: 实现登录逻辑 } } } </script> ``` `RegisterForm.vue` 组件模板: ```html <template> <form @submit.prevent="register"> <div> <label for="name">Name:</label> <input type="text" id="name" v-model="name" required> </div> <div> <label for="email">Email:</label> <input type="email" id="email" v-model="email" required> </div> <div> <label for="password">Password:</label> <input type="password" id="password" v-model="password" required> </div> <button type="submit">Register</button> </form> </template> <script> export default { data() { return { name: '', email: '', password: '' } }, methods: { register() { // TODO: 实现注册逻辑 } } } </script> ``` 接下来,在 `src` 目录下创建一个名为 `Login.vue` 的页面组件,用于渲染登录页面: ```html <template> <div> <h1>Login</h1> <LoginForm /> </div> </template> <script> import LoginForm from '@/components/LoginForm.vue' export default { components: { LoginForm } } </script> ``` 同样地,在 `src` 目录下创建一个名为 `Register.vue` 的页面组件,用于渲染注册页面: ```html <template> <div> <h1>Register</h1> <RegisterForm /> </div> </template> <script> import RegisterForm from '@/components/RegisterForm.vue' export default { components: { RegisterForm } } </script> ``` 最后,在 `App.vue` 文件添加路由,以便在浏览器访问登录和注册页面: ```html <template> <div id="app"> <router-link to="/login">Login</router-link> <router-link to="/register">Register</router-link> <router-view /> </div> </template> <script> export default { name: 'App' } </script> ``` 在 `src` 目录下创建一个名为 `router.js` 的文件,用于配置路由: ```js import Vue from 'vue' import Router from 'vue-router' import Login from '@/views/Login.vue' import Register from '@/views/Register.vue' Vue.use(Router) export default new Router({ routes: [ { path: '/login', name: 'login', component: Login }, { path: '/register', name: 'register', component: Register } ] }) ``` 最后,在 `main.js` 文件引入路由并将其挂载到 Vue 实例上: ```js import Vue from 'vue' import App from './App.vue' import router from './router' Vue.config.productionTip = false new Vue({ router, render: h => h(App) }).$mount('#app') ``` 现在,通过运行 `npm run serve` 命令,在浏览器访问 `http://localhost:8080/login` 和 `http://localhost:8080/register` 即可看到登录和注册页面了。 以上示例只是一个简单的示例,实际的登录和注册逻辑需要根据具体需求进行实现。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值