关于Vue页面JS+JQ无法调用页面方法与data

一、
在使用vue开发的过程中难免要整合第三方js或者jq。
但是整合后的js与jq无法使用vue页面里面的方法与data。
时常发生明明在同一个vue页面里面却无法调用到方法属性。
其实这是你的调用方式不对。
我遇到过的就是jquery-contextmenu的右击事件问题
这是我们要付给右击事件的操作,selector是id,items是右击事件 触发的方法在下面(这里的callback回调函数,方法.call(本身的this,参数S)的意思是:在这个方法里调用其他对象的方法,以其他对象替代本身对象)
图片描述
二、
这是触发事件的定义在data里面定义箭头函数,然后传给上图的方法里
图片描述

然后我们来看一下效果,当我点击添加节点可以运行但是单击添加子节点报错了。这是因为函数创建了自己的this,所以无法获取到我们想要的。而箭头函数不会创建自己的this,它只会从自己的作用域链的上一层继承this。所以能访问到我们所定义的属性值。
图片描述
三、
触发方法调用不能使用function(){}
需要使用()=>{}的方式,这个ES6特有的写法。es6 箭头函数不会有新的作用域
如果你是在第三方js中要调用vue页面的data、methods的话必须先以参数的形式转过去,然后在根据参数调用。然后vue页面就是如上所述的那种写法。

箭头函数文档

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
您可以使用Vue.js和Servlet来制作注册页面Vue.js是一个用于构建用户界面的JavaScript框架,而Servlet是Java编写的服务器端组件。 首先,您需要创建一个Vue.js项目。可以使用Vue CLI来快速搭建一个基本的Vue.js项目结构。安装Vue CLI后,执行下面的命令来创建一个新的项目: ``` vue create register-page ``` 然后,进入项目目录并安装必要的依赖: ``` cd register-page npm install ``` 接下来,您可以创建一个注册页面Vue组件。在src目录下创建一个Register.vue文件,并在其中编写注册页面的HTML和Vue代码。例如,可以创建一个包含用户名、密码和确认密码输入框的表单: ```vue <template> <div> <h2>注册页面</h2> <form @submit.prevent="register"> <div> <label for="username">用户名:</label> <input type="text" id="username" v-model="username"> </div> <div> <label for="password">密码:</label> <input type="password" id="password" v-model="password"> </div> <div> <label for="confirmPassword">确认密码:</label> <input type="password" id="confirmPassword" v-model="confirmPassword"> </div> <button type="submit">注册</button> </form> </div> </template> <script> export default { data() { return { username: '', password: '', confirmPassword: '' }; }, methods: { register() { // 在这里编写注册逻辑 } } }; </script> <style scoped> /* 在这里添加样式 */ </style> ``` 接下来,您可以使用Vue Router来创建一个路由,以便在浏览器中访问注册页面。在src目录下创建一个router.js文件,并在其中编写路由配置: ```javascript import Vue from 'vue'; import VueRouter from 'vue-router'; import Register from './Register.vue'; Vue.use(VueRouter); const routes = [ { path: '/register', component: Register } ]; const router = new VueRouter({ routes }); export default router; ``` 然后,在main.js文件中导入路由配置并将其挂载到Vue实例上: ```javascript import Vue from 'vue'; import App from './App.vue'; import router from './router'; new Vue({ router, render: h => h(App) }).$mount('#app'); ``` 最后,在Servlet中处理注册逻辑。您可以使用Java的Servlet API来处理HTTP请求和响应。根据您使用的Servlet容器,具体实现可能会有所不同。下面是一个简单的示例: ```java @WebServlet("/register") public class RegisterServlet extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { String username = request.getParameter("username"); String password = request.getParameter("password"); // 处理注册逻辑,例如将用户名和密码保存到数据库中 response.sendRedirect("/success.html"); // 注册成功后的页面 } } ``` 这只是一个简单的示例,具体的实现取决于您的需求和后端技术栈。希望对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值